diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 3a58ff3b9e..083b0261a5 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -9,16 +9,16 @@ Inputs to improvement? [Open an issue](https://github.com/agershun/alasql/issues
**All contributions are much welcome and greatly appreciated(!)**
-1. Fork the repo here on Github
-0. Clone your forked repo and install dependencies `git clone https://github.com/MYUSERNAME/alasql/ && cd alasql && npm install`
-0. Please work with the code from the develop branch `git checkout develop`
-0. Add a test for the issue: Copy `test/test000.js` and replace `000` with a new number.
-0. Impelement a test that reflects the issue.
-0. Run `npm test` to verify only the new test fails
-0. Implement your contributions in `src/`
-0. Run `npm test` and verify all tests are OK
-0. Commit changes to git and push to your forked repo
-0. Click "Create Pull-request" when looking at your forked repo on Github
+- Fork the repo here on Github
+- Clone your forked repo and install dependencies `git clone https://github.com/MYUSERNAME/alasql/ && cd alasql && npm install`
+- Please work with the code from the develop branch `git checkout develop`
+- Add a test for the issue: Copy `test/test000.js` and replace `000` with a new number.
+- Impelement a test that reflects the issue.
+- Run `npm test` to verify only the new test fails
+- Implement your contributions in `src/`
+- Run `npm test` and verify all tests are OK
+- Commit changes to git and push to your forked repo
+- Click "Create Pull-request" when looking at your forked repo on Github
_Please note that `npm test` will compile from `src/` before running tests_
diff --git a/.gitignore b/.gitignore
index 3cc1875a25..30ba72980b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,6 @@ node_modules/
npm-debug.log
site/
test/test604.json
+test/test251.xlsx
.versions
.npm/
diff --git a/dist/alasql-echo.js b/dist/alasql-echo.js
index f2282fd1c3..d595819f54 100644
--- a/dist/alasql-echo.js
+++ b/dist/alasql-echo.js
@@ -1,18 +1,18 @@
-// Plugin sample
-
-var yy = alasql.yy;
-
-yy.Echo = function (params) { return yy.extend(this, params); }
-yy.Echo.prototype.toString = function() {
- var s = 'TEST '+this.expr.toString();
- return s;
-}
-
-yy.Echo.prototype.execute = function (databaseid, params, cb) {
-// var self = this;
- // console.log(76336,this.expr.toJS());
- var fn = new Function('params, alasql','return '+this.expr.toJS());
- var res = fn(params, alasql);
- if(cb) res = cb(res);
- return res;
+// Plugin sample
+
+var yy = alasql.yy;
+
+yy.Echo = function (params) { return yy.extend(this, params); }
+yy.Echo.prototype.toString = function() {
+ var s = 'TEST '+this.expr.toString();
+ return s;
+}
+
+yy.Echo.prototype.execute = function (databaseid, params, cb) {
+// var self = this;
+ // console.log(76336,this.expr.toJS());
+ var fn = new Function('params, alasql','return '+this.expr.toJS());
+ var res = fn(params, alasql);
+ if(cb) res = cb(res);
+ return res;
}
\ No newline at end of file
diff --git a/dist/alasql-md.js b/dist/alasql-md.js
deleted file mode 100644
index d0728eadc6..0000000000
--- a/dist/alasql-md.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- Markdown export functions from the result table
- @function
- @param {string} filename
- @param {object} opts
- @param {array} data
- @param {array} columns
- @param {callback} cb
- @return {number}
-
-*/
-alasql.into.MD = function(filename, opts, data, columns, cb) {
-
- // If columns is empty then generate columns
- if(columns.length == 0 && data.length > 0) {
- columns = Object.keys(data[0]).map(function(columnid){return {columnid:columnid}});
- };
-
- // If one parameter then filename is opts
- if(typeof filename == 'object') {
- opts = filename;
- filename = undefined;
- };
-
- /** @todo Add columns and lines generation */
-
- /** @type {number} */
- var res = data.length;
- /** @type {string} */
- var s = '';
- if(data.length > 0) {
- var key = columns[0].columnid;
- s += data.map(function(d){
- return d[key];
- }).join('\n');
- }
-
- // Save file
- res = alasql.utils.saveFile(filename,s);
- // Process callback
- if(cb) res = cb(res);
- return res;
-};
diff --git a/dist/alasql-prolog.js b/dist/alasql-prolog.js
index b7e3dd286f..0e66c9ef05 100644
--- a/dist/alasql-prolog.js
+++ b/dist/alasql-prolog.js
@@ -1,40 +1,40 @@
-// Prolog plugin
-
-var yy = alasql.yy;
-
-yy.Term = function (params) { return yy.extend(this, params); }
-yy.Term.prototype.toString = function() {
- var s = this.termid;
- if(this.args && this.args.length > 0) {
- s += '('+this.args.map(function(arg){
- return arg.toString();
- })+')';
- }
- return s;
-};
-
-yy.AddRule = function (params) { return yy.extend(this, params); }
-yy.AddRule.prototype.toString = function() {
- var s = '';
- if(this.left) s += this.left.toString();
- s += ':-';
- s += this.right.map(function(r){return r.toString()}).join(',');
- return s;
-};
-
-yy.AddRule.prototype.execute = function (databaseid, params, cb) {
-// var self = this;
-// console.log(this.expr.toJS());
-// var fn = new Function('params, alasql','return '+this.expr.toJS());
-// var res = fn(params, alasql);
- var res = 1;
- var objects = alasql.databases[databaseid].objects;
- var rule = {};
- if(!this.left) {
- this.right.forEach(function(term){
- rule.$class = term.termid;
- });
- }
- if(cb) res = cb(res);
- return res;
+// Prolog plugin
+
+var yy = alasql.yy;
+
+yy.Term = function (params) { return yy.extend(this, params); }
+yy.Term.prototype.toString = function() {
+ var s = this.termid;
+ if(this.args && this.args.length > 0) {
+ s += '('+this.args.map(function(arg){
+ return arg.toString();
+ })+')';
+ }
+ return s;
+};
+
+yy.AddRule = function (params) { return yy.extend(this, params); }
+yy.AddRule.prototype.toString = function() {
+ var s = '';
+ if(this.left) s += this.left.toString();
+ s += ':-';
+ s += this.right.map(function(r){return r.toString()}).join(',');
+ return s;
+};
+
+yy.AddRule.prototype.execute = function (databaseid, params, cb) {
+// var self = this;
+// console.log(this.expr.toJS());
+// var fn = new Function('params, alasql','return '+this.expr.toJS());
+// var res = fn(params, alasql);
+ var res = 1;
+ var objects = alasql.databases[databaseid].objects;
+ var rule = {};
+ if(!this.left) {
+ this.right.forEach(function(term){
+ rule.$class = term.termid;
+ });
+ }
+ if(cb) res = cb(res);
+ return res;
};
\ No newline at end of file
diff --git a/dist/alasql-worker.js b/dist/alasql-worker.js
index 4737febb2c..2f74e98b17 100755
--- a/dist/alasql-worker.js
+++ b/dist/alasql-worker.js
@@ -1,245 +1,245 @@
-//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
-/*
-@module alasql
-@version 0.4.11-develop-d00d3b02undefined
-
-AlaSQL - JavaScript SQL database
-© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
-
-@license
-The MIT License (MIT)
-
-Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-/*
-//
-// AlaSQL Workker
-// Date: 13.04.2014
-// (c) 2014-2015, Andrey Gershun
-//
-*/
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof exports === 'object') {
- module.exports = factory();
- } else {
- root.alasql = factory();
- }
-}(this, function () {
-
-/**
- Main procedure for worker
- @function
- @param {string} sql SQL statement
- @param {object} params List of parameters (can be omitted)
- @param {callback} cb Callback function
- @return {object} Query result
-*/
-function alasql(sql,params,cb){
-
- params = params||[];
-
- // Avoid setting params if not needed even with callback
- if(typeof params === 'function'){
- scope = cb;
- cb = params;
- params = [];
- }
-
- if(typeof params !== 'object'){
- params = [params];
- }
-
- // Increase last request id
- var id = alasql.lastid++;
- // Save callback
- alasql.buffer[id] = cb;
- // Send a message to worker
- alasql.webworker.postMessage({id:id,sql:sql,params:params});
-}
-
-
-alasql.options = {};
-alasql.options.progress = function(){};
-
-isArray = function(obj){
- return "[object Array]"===Object.prototype.toString.call(obj);
-}
-
-alasql.promise = function() {
- throw new Error('Please include a Promise/A+ library');
-}
-
-// From src/18promise.js
-if(typeof Promise !== "undefined"){
- var promiseExec = function(sql, params, counterStep, counterTotal){
- return new Promise(function(resolve, reject){
- alasql(sql, params, function(data,err) {
- if(err) {
- reject(err);
- } else {
- if (counterStep && counterTotal && alasql.options.progress !== false) {
- alasql.options.progress(counterStep, counterTotal);
- }
- resolve(data);
- }
- });
- });
- }
-
- var promiseAll = function(sqlParamsArray){
- if(sqlParamsArray.length<1){
- return ;
- }
-
- var active, sql, params;
-
- var execArray = [];
-
- for (var i = 0; i < sqlParamsArray.length; i++) {
- active = sqlParamsArray[i];
-
- if(typeof active === 'string'){
- active = [active];
- }
-
- if(!isArray(active) || active.length<1 || 2 1) {
- var sql =
- 'REQUIRE ' +
- paths
- .map(function(p) {
- return '"' + p + '"';
- })
- .join(',');
- alasql(sql, [], cb);
- }
- } else if (path === false) {
- delete alasql.webworker;
- return;
- }
- };
-}
-
-
-/* WebWorker */
-/** @type {number} */
-alasql.lastid = 0;
-
-/** @type {object} */
-alasql.buffer = {};
-
-alasql.worker();
-
-return alasql;
-}));
+//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
+/*
+@module alasql
+@version 0.4.11-update-dependencies-ac1eccc0undefined
+
+AlaSQL - JavaScript SQL database
+© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
+
+@license
+The MIT License (MIT)
+
+Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+/*
+//
+// AlaSQL Workker
+// Date: 13.04.2014
+// (c) 2014-2015, Andrey Gershun
+//
+*/
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define([], factory);
+ } else if (typeof exports === 'object') {
+ module.exports = factory();
+ } else {
+ root.alasql = factory();
+ }
+}(this, function () {
+
+/**
+ Main procedure for worker
+ @function
+ @param {string} sql SQL statement
+ @param {object} params List of parameters (can be omitted)
+ @param {callback} cb Callback function
+ @return {object} Query result
+*/
+function alasql(sql,params,cb){
+
+ params = params||[];
+
+ // Avoid setting params if not needed even with callback
+ if(typeof params === 'function'){
+ scope = cb;
+ cb = params;
+ params = [];
+ }
+
+ if(typeof params !== 'object'){
+ params = [params];
+ }
+
+ // Increase last request id
+ var id = alasql.lastid++;
+ // Save callback
+ alasql.buffer[id] = cb;
+ // Send a message to worker
+ alasql.webworker.postMessage({id:id,sql:sql,params:params});
+}
+
+
+alasql.options = {};
+alasql.options.progress = function(){};
+
+isArray = function(obj){
+ return "[object Array]"===Object.prototype.toString.call(obj);
+}
+
+alasql.promise = function() {
+ throw new Error('Please include a Promise/A+ library');
+}
+
+// From src/18promise.js
+if(typeof Promise !== "undefined"){
+ var promiseExec = function(sql, params, counterStep, counterTotal){
+ return new Promise(function(resolve, reject){
+ alasql(sql, params, function(data,err) {
+ if(err) {
+ reject(err);
+ } else {
+ if (counterStep && counterTotal && alasql.options.progress !== false) {
+ alasql.options.progress(counterStep, counterTotal);
+ }
+ resolve(data);
+ }
+ });
+ });
+ }
+
+ var promiseAll = function(sqlParamsArray){
+ if(sqlParamsArray.length<1){
+ return ;
+ }
+
+ var active, sql, params;
+
+ var execArray = [];
+
+ for (var i = 0; i < sqlParamsArray.length; i++) {
+ active = sqlParamsArray[i];
+
+ if(typeof active === 'string'){
+ active = [active];
+ }
+
+ if(!isArray(active) || active.length<1 || 2 1) {
+ var sql =
+ 'REQUIRE ' +
+ paths
+ .map(function(p) {
+ return '"' + p + '"';
+ })
+ .join(',');
+ alasql(sql, [], cb);
+ }
+ } else if (path === false) {
+ delete alasql.webworker;
+ return;
+ }
+ };
+}
+
+
+/* WebWorker */
+/** @type {number} */
+alasql.lastid = 0;
+
+/** @type {object} */
+alasql.buffer = {};
+
+alasql.worker();
+
+return alasql;
+}));
diff --git a/dist/alasql-worker.min.js b/dist/alasql-worker.min.js
index ab6048961d..c5c27cfee9 100755
--- a/dist/alasql-worker.min.js
+++ b/dist/alasql-worker.min.js
@@ -1,2 +1,2 @@
-//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
-!function(r,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():r.alasql=e()}(this,function(){function r(e,t,o){t=t||[],"function"==typeof t&&(scope=o,o=t,t=[]),"object"!=typeof t&&(t=[t]);var n=r.lastid++;r.buffer[n]=o,r.webworker.postMessage({id:n,sql:e,params:t})}if(r.options={},r.options.progress=function(){},isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)},r.promise=function(){throw new Error("Please include a Promise/A+ library")},"undefined"!=typeof Promise){var e=function(e,t,o,n){return new Promise(function(s,i){r(e,t,function(e,t){t?i(t):(o&&n&&!1!==r.options.progress&&r.options.progress(o,n),s(e))})})},t=function(r){if(!(r.length<1)){for(var t,o,n,s=[],i=0;i1){r("REQUIRE "+t.map(function(r){return'"'+r+'"'}).join(","),[],o)}}else if(!1===e)return void delete r.webworker}),r.lastid=0,r.buffer={},r.worker(),r});
\ No newline at end of file
+//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
+!function(r,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():r.alasql=e()}(this,function(){function a(r,e,t){"function"==typeof(e=e||[])&&(scope=t,t=e,e=[]),"object"!=typeof e&&(e=[e]);var o=a.lastid++;a.buffer[o]=t,a.webworker.postMessage({id:o,sql:r,params:e})}if(a.options={},a.options.progress=function(){},isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)},a.promise=function(){throw new Error("Please include a Promise/A+ library")},"undefined"!=typeof Promise){function i(r,e,n,s){return new Promise(function(t,o){a(r,e,function(r,e){e?o(e):(n&&s&&!1!==a.options.progress&&a.options.progress(n,s),t(r))})})}a.promise=function(r,e){if("undefined"==typeof Promise)throw new Error("Please include a Promise/A+ library");if("string"==typeof r)return i(r,e);if(!isArray(r)||r.length<1||void 0!==e)throw new Error("Error in .promise parameters");return function(r){if(!(r.length<1)){for(var e,t,o,n=[],s=0;s {
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable;
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable;
- catch(onRejected?: (error: any) => U | Thenable): Thenable;
- }
-
- // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions
- interface userDefinedFunction {
- (x: any): any;
- }
- interface userDefinedFunctionLookUp {
- [x: string]: userDefinedFunction;
- }
- // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions
- interface userAggregator {
- (value: any, accumulator: any, stage: number): any;
- }
- interface userAggregatorLookUp {
- [x: string]: userAggregator;
- }
-
- interface AlaSQL {
- options: AlaSQLOptions;
- error: Error;
- (sql: any, params?: any, cb?: AlaSQLCallback, scope?: any): any;
- parse(sql: any): AlaSQLAST;
- promise(sql: any, params?: any): Thenable;
- fn: userDefinedFunctionLookUp;
- aggr: userAggregatorLookUp;
- autoval(tablename: string, colname: string, getNext?:boolean): number;
- yy:{};
- setXLSX(xlsxlib: typeof xlsx): void;
- }
-}
-
-declare var alasql: alaSQLSpace.AlaSQL;
-declare module 'alasql' {
- export = alasql;
-}
+// Project: https://github.com/agershun/alasql
+
+import * as xlsx from "xlsx";
+
+declare namespace alaSQLSpace {
+ interface AlaSQLCallback {
+ (data?: any, err?: Error): void;
+ }
+
+ interface AlaSQLOptions {
+ errorlog: boolean;
+ valueof: boolean;
+ dropifnotexists: boolean; // drop database in any case
+ datetimeformat: string; // how to handle DATE and DATETIME types
+ casesensitive: boolean; // table and column names are case sensitive and converted to lower-case
+ logtarget: string; // target for log. Values: 'console', 'output', 'id' of html tag
+ logprompt: boolean; // print SQL at log
+ modifier: any; // values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX
+ columnlookup: number; // how many rows to lookup to define columns
+ autovertex: boolean; // create vertex if not found
+ usedbo: boolean; // use dbo as current database (for partial T-SQL comaptibility)
+ autocommit: boolean; // the AUTOCOMMIT ON | OFF
+ cache: boolean; // use cache
+ nocount: boolean; // for SET NOCOUNT OFF
+ nan: boolean; // check for NaN and convert it to undefined
+ angularjs: boolean;
+ tsql: boolean;
+ mysql: boolean;
+ postgres: boolean;
+ oracle: boolean;
+ sqlite: boolean;
+ orientdb: boolean;
+ }
+
+ // compiled Statement
+ interface AlaSQLStatement {
+ (params?: any, cb?: AlaSQLCallback, scope?: any): any;
+ }
+
+ // abstract Syntax Tree
+ interface AlaSQLAST {
+ compile(databaseid: string): AlaSQLStatement;
+ }
+
+ // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/es6-promise/es6-promise.d.ts
+ interface Thenable {
+ then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable;
+ then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable;
+ catch(onRejected?: (error: any) => U | Thenable): Thenable;
+ }
+
+ // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions
+ interface userDefinedFunction {
+ (x: any): any;
+ }
+ interface userDefinedFunctionLookUp {
+ [x: string]: userDefinedFunction;
+ }
+ // see https://github.com/agershun/alasql/wiki/User%20Defined%20Functions
+ interface userAggregator {
+ (value: any, accumulator: any, stage: number): any;
+ }
+ interface userAggregatorLookUp {
+ [x: string]: userAggregator;
+ }
+
+ interface AlaSQL {
+ options: AlaSQLOptions;
+ error: Error;
+ (sql: any, params?: any, cb?: AlaSQLCallback, scope?: any): any;
+ parse(sql: any): AlaSQLAST;
+ promise(sql: any, params?: any): Thenable;
+ fn: userDefinedFunctionLookUp;
+ aggr: userAggregatorLookUp;
+ autoval(tablename: string, colname: string, getNext?:boolean): number;
+ yy:{};
+ setXLSX(xlsxlib: typeof xlsx): void;
+ }
+}
+
+declare var alasql: alaSQLSpace.AlaSQL;
+declare module 'alasql' {
+ export = alasql;
+}
diff --git a/dist/alasql.fs.js b/dist/alasql.fs.js
index c6d3016d65..77ef275c48 100755
--- a/dist/alasql.fs.js
+++ b/dist/alasql.fs.js
@@ -1,3151 +1,3152 @@
-//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
-/*
-@module alasql
-@version 0.4.11-develop-d00d3b02undefined
-
-AlaSQL - JavaScript SQL database
-© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
-
-@license
-The MIT License (MIT)
-
-Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-/* eslint-disable */
-
-"use strict";
-
-/**
- @fileoverview AlaSQL JavaScript SQL library
- @see http://github.com/agershun/alasql
-*/
-
-/**
- Callback from statement
- @callback statement-callback
- @param {object} data Result data
-*/
-
-/**
- UMD envelope for AlaSQL
-*/
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof exports === 'object') {
- /** alasql main function */
- module.exports = factory();
- } else {
- root.alasql = factory();
- }
-}(this, function () {
-
-/**
- AlaSQL - Main Alasql class
- @function
- @param {string|function|object} sql - SQL-statement or data object for fuent interface
- @param {object} params - SQL parameters
- @param {function} cb - callback function
- @param {object} scope - Scope for nested queries
- @return {any} - Result data object
-
- @example
- Standard sync call:
- alasql('CREATE TABLE one');
- Query:
- var res = alasql('SELECT * FROM one');
- Call with parameters:
- var res = alasql('SELECT * FROM ?',[data]);
- Standard async call with callback function:
- alasql('SELECT * FROM ?',[data],function(res){
- console.log(data);
- });
- Call with scope for subquery (to pass common values):
- var scope = {one:{a:2,b;20}}
- alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope);
- Call for fluent interface with data object:
- alasql(data).Where(function(x){return x.a == 10}).exec();
- Call for fluent interface without data object:
- alasql().From(data).Where(function(x){return x.a == 10}).exec();
- */
-
-var alasql = function(sql, params, cb, scope) {
-
- params = params||[];
-
- if(typeof importScripts !== 'function' && alasql.webworker) {
- var id = alasql.lastid++;
- alasql.buffer[id] = cb;
- alasql.webworker.postMessage({id:id,sql:sql,params:params});
- return;
- }
-
- if(arguments.length === 0) {
- // Without arguments - Fluent interface
- return new yy.Select({
- columns:[new yy.Column({columnid:'*'})],
- from: [new yy.ParamValue({param:0})]
- });
- } else if(arguments.length === 1){
- // Access promise notation without using `.promise(...)`
- if(sql.constructor === Array){
- return alasql.promise(sql);
- }
- }
- // Avoid setting params if not needed even with callback
- if(typeof params === 'function'){
- scope = cb;
- cb = params;
- params = [];
- }
-
- if(typeof params !== 'object'){
- params = [params];
- }
-
- // Standard interface
- // alasql('#sql');
- if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") {
- sql = document.querySelector(sql).textContent;
- } else if(typeof sql === 'object' && sql instanceof HTMLElement) {
- sql = sql.textContent;
- } else if(typeof sql === 'function') {
- // to run multiline functions
- sql = sql.toString();
- sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1];
- }
- // Run SQL
- return alasql.exec(sql, params, cb, scope);
-};
-
-/**
- Current version of alasql
- @constant {string}
-*/
-alasql.version = '0.4.11-develop-d00d3b02undefined';
-
-/**
- Debug flag
- @type {boolean}
-*/
-alasql.debug = undefined; // Initial debug variable
-
-/*only-for-browser/*
-var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to
-var __dirname = '';
-//*/
-
-/* parser generated by jison 0.4.18 */
-/*
- Returns a Parser object of the following structure:
-
- Parser: {
- yy: {}
- }
-
- Parser.prototype: {
- yy: {},
- trace: function(),
- symbols_: {associative list: name ==> number},
- terminals_: {associative list: number ==> name},
- productions_: [...],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
- table: [...],
- defaultActions: {...},
- parseError: function(str, hash),
- parse: function(input),
-
- lexer: {
- EOF: 1,
- parseError: function(str, hash),
- setInput: function(input),
- input: function(),
- unput: function(str),
- more: function(),
- less: function(n),
- pastInput: function(),
- upcomingInput: function(),
- showPosition: function(),
- test_match: function(regex_match_array, rule_index),
- next: function(),
- lex: function(),
- begin: function(condition),
- popState: function(),
- _currentRules: function(),
- topState: function(),
- pushState: function(condition),
-
- options: {
- ranges: boolean (optional: true ==> token location info will include a .range[] member)
- flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
- backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
- },
-
- performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
- rules: [...],
- conditions: {associative list: name ==> set},
- }
- }
-
- token location info (@$, _$, etc.): {
- first_line: n,
- last_line: n,
- first_column: n,
- last_column: n,
- range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
- }
-
- the parseError function receives a 'hash' object with these members for lexer and parser errors: {
- text: (matched text)
- token: (the produced terminal token, if any)
- line: (yylineno)
- }
- while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
- loc: (yylloc)
- expected: (string describing the set of expected tokens)
- recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
- }
-*/
-var alasqlparser = (function(){
-var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764];
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1},
-terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},
-productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],
-performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
-/* this == yyval */
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:
-
- if (alasql.options.casesensitive) this.$ = $$[$0];
- else this.$ = $$[$0].toLowerCase();
-
-break;
-case 2:
- this.$ = doubleq($$[$0].substr(1,$$[$0].length-2));
-break;
-case 3:
- this.$ = $$[$0].toLowerCase()
-break;
-case 4:
- this.$ = $$[$0]
-break;
-case 5:
- this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1]
-break;
-case 6:
- return new yy.Statements({statements:$$[$0-1]});
-break;
-case 7:
- this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
-break;
-case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756:
- this.$ = [$$[$0]];
-break;
-case 10:
- this.$ = $$[$0]; $$[$0].explain = true;
-break;
-case 11:
- this.$ = $$[$0]; $$[$0].explain = true;
-break;
-case 12:
-
- this.$ = $$[$0];
-
- // TODO combine exists and queries
- if(yy.exists) this.$.exists = yy.exists;
- delete yy.exists;
- if(yy.queries) this.$.queries = yy.queries;
- delete yy.queries;
-
-break;
-case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567:
- this.$ = undefined;
-break;
-case 68:
- this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
-break;
-case 69: case 565:
- $$[$0-2].push($$[$0]); this.$=$$[$0-2];
-break;
-case 71:
- this.$ = {name:$$[$0-4], select:$$[$0-1]};
-break;
-case 72:
-
- yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
- this.$ = $$[$0-9];
-/* if(yy.exists) this.$.exists = yy.exists;
- delete yy.exists;
- if(yy.queries) this.$.queries = yy.queries;
- delete yy.queries;
-*/
-break;
-case 73:
-
- this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
- yy.extend(this.$,$$[$0-1]);
-
-break;
-case 74:
- this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}};
-break;
-case 75:
- this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}};
-break;
-case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662:
- this.$ = $$[$0-1];
-break;
-case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749:
- this.$ = $$[$0];
-break;
-case 79: case 84: case 731: case 755:
- this.$ = $$[$0-2]; this.$.push($$[$0]);
-break;
-case 81:
- this.$ = {expr:$$[$0]};
-break;
-case 82:
- this.$ = {expr:$$[$0-2],as:$$[$0]};
-break;
-case 83:
- this.$ = {removecolumns:$$[$0]};
-break;
-case 87:
- this.$ = {like:$$[$0]};
-break;
-case 90: case 104:
- this.$ = {srchid:"PROP", args: [$$[$0]]};
-break;
-case 91:
- this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
-break;
-case 92:
-
- var dir = $$[$0-1];
- if(!dir) dir = 'ASC';
- this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
-
-break;
-case 93:
- this.$ = {srchid:"PARENT"};
-break;
-case 94:
- this.$ = {srchid:"APROP", args: [$$[$0]]};
-break;
-case 95:
- this.$ = {selid:"ROOT"};
-break;
-case 96:
- this.$ = {srchid:"EQ", args: [$$[$0]]};
-break;
-case 97:
- this.$ = {srchid:"LIKE", args: [$$[$0]]};
-break;
-case 98: case 99:
- this.$ = {selid:"WITH", args: $$[$0-1]};
-break;
-case 100:
- this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
-break;
-case 101:
- this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
-break;
-case 102:
- this.$ = {selid:"OF", args:[$$[$0-1]]};
-break;
-case 103:
- this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
-break;
-case 105:
- this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
-break;
-case 106:
- this.$ = {srchid:"CHILD"};
-break;
-case 107:
- this.$ = {srchid:"VERTEX"};
-break;
-case 108:
- this.$ = {srchid:"EDGE"};
-break;
-case 109:
- this.$ = {srchid:"REF"};
-break;
-case 110:
- this.$ = {srchid:"SHARP", args:[$$[$0]]};
-break;
-case 111:
- this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
-break;
-case 112:
- this.$ = {srchid:"ATTR"};
-break;
-case 113:
- this.$ = {srchid:"OUT"};
-break;
-case 114:
- this.$ = {srchid:"IN"};
-break;
-case 115:
- this.$ = {srchid:"OUTOUT"};
-break;
-case 116:
- this.$ = {srchid:"ININ"};
-break;
-case 117:
- this.$ = {srchid:"CONTENT"};
-break;
-case 118:
- this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
-break;
-case 119:
- this.$ = {srchid:"AT", args:[$$[$0]]};
-break;
-case 120:
- this.$ = {srchid:"AS", args:[$$[$0]]};
-break;
-case 121:
- this.$ = {srchid:"SET", args:$$[$0-1]};
-break;
-case 122:
- this.$ = {selid:"TO", args:[$$[$0]]};
-break;
-case 123:
- this.$ = {srchid:"VALUE"};
-break;
-case 124:
- this.$ = {srchid:"ROW", args:$$[$0-1]};
-break;
-case 125:
- this.$ = {srchid:"CLASS", args:[$$[$0]]};
-break;
-case 126:
- this.$ = {selid:$$[$0],args:[$$[$0-1]] };
-break;
-case 127:
- this.$ = {selid:"NOT",args:$$[$0-1] };
-break;
-case 128:
- this.$ = {selid:"IF",args:$$[$0-1] };
-break;
-case 129:
- this.$ = {selid:$$[$0-3],args:$$[$0-1] };
-break;
-case 130:
- this.$ = {selid:'DISTINCT',args:$$[$0-1] };
-break;
-case 131:
- this.$ = {selid:'UNION',args:$$[$0-1] };
-break;
-case 132:
- this.$ = {selid:'UNIONALL',args:$$[$0-1] };
-break;
-case 133:
- this.$ = {selid:'ALL',args:[$$[$0-1]] };
-break;
-case 134:
- this.$ = {selid:'ANY',args:[$$[$0-1]] };
-break;
-case 135:
- this.$ = {selid:'INTERSECT',args:$$[$0-1] };
-break;
-case 136:
- this.$ = {selid:'EXCEPT',args:$$[$0-1] };
-break;
-case 137:
- this.$ = {selid:'AND',args:$$[$0-1] };
-break;
-case 138:
- this.$ = {selid:'OR',args:$$[$0-1] };
-break;
-case 139:
- this.$ = {selid:'PATH',args:[$$[$0-1]] };
-break;
-case 140:
- this.$ = {srchid:'RETURN',args:$$[$0-1] };
-break;
-case 141:
- this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] };
-break;
-case 142:
- this.$ = $$[$0-2]; this.$.push($$[$0]);
-break;
-case 144:
- this.$ = "PLUS";
-break;
-case 145:
- this.$ = "STAR";
-break;
-case 146:
- this.$ = "QUESTION";
-break;
-case 148:
- this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]);
-break;
-case 149:
- this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
-break;
-case 150:
- this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
-break;
-case 151:
-
- if(!$$[$0]) {
- this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
- } else {
- this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
- }
-
-break;
-case 152:
- if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]};
-break;
-case 153:
- this.$ = {modifier:'VALUE'}
-break;
-case 154:
- this.$ = {modifier:'ROW'}
-break;
-case 155:
- this.$ = {modifier:'COLUMN'}
-break;
-case 156:
- this.$ = {modifier:'MATRIX'}
-break;
-case 157:
- this.$ = {modifier:'TEXTSTRING'}
-break;
-case 158:
- this.$ = {modifier:'INDEX'}
-break;
-case 159:
- this.$ = {modifier:'RECORDSET'}
-break;
-case 160:
- this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)};
-break;
-case 161:
- this.$ = {top: $$[$0-1]};
-break;
-case 163: case 330: case 523: case 524: case 724:
-this.$ = undefined;
-break;
-case 164: case 165: case 166: case 167:
-this.$ = {into: $$[$0]}
-break;
-case 168:
-
- var s = $$[$0];
- s = s.substr(1,s.length-2);
- var x3 = s.substr(-3).toUpperCase();
- var x4 = s.substr(-4).toUpperCase();
- if(s[0] == '#') {
- this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
- this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- } else if(x4=='XLSX' || x4 == 'JSON') {
- this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- }
-
-break;
-case 169:
- this.$ = { from: $$[$0] };
-break;
-case 170:
- this.$ = { from: $$[$0-1], joins: $$[$0] };
-break;
-case 171:
- this.$ = { from: $$[$0-2], joins: $$[$0-1] };
-break;
-case 173:
- this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]});
-break;
-case 174:
- this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]});
-break;
-case 175:
- this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]});
-break;
-case 176:
- this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]});
-break;
-case 178: case 243: case 452: case 530: case 531:
- this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
-break;
-case 179:
- this.$ = $$[$0-2]; this.$.as = $$[$0]
-break;
-case 180:
- this.$ = $$[$0-3]; this.$.as = $$[$0]
-break;
-case 181:
- this.$ = $$[$0-1]; this.$.as = 'default'
-break;
-case 182:
- this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0]
-break;
-case 183:
- this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
-break;
-case 184:
- this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
-break;
-case 186: case 638: case 641:
- this.$ = $$[$0-2];
-break;
-case 187: case 191: case 195: case 198:
- this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
-break;
-case 188: case 192: case 196: case 199:
- this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
-break;
-case 189: case 190: case 194: case 197:
- this.$ = $$[$0]; $$[$0].as = 'default';
-break;
-case 193:
- this.$ = {inserted:true}; /*$$[$0].as = 'default'*/;
-break;
-case 200:
-
- var s = $$[$0];
- s = s.substr(1,s.length-2);
- var x3 = s.substr(-3).toUpperCase();
- var x4 = s.substr(-4).toUpperCase();
- var r;
- if(s[0] == '#') {
- r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
- r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else if(x4=='XLSX' || x4 == 'JSON') {
- r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else {
- throw new Error('Unknown string in FROM clause');
- };
- this.$ = r;
-
-break;
-case 201:
-
- if($$[$0-2] == 'INFORMATION_SCHEMA') {
- this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});
- } else {
- this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});
- }
-
-break;
-case 202:
- this.$ = new yy.Table({tableid: $$[$0]});
-break;
-case 203: case 204:
- this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
-break;
-case 207:
- this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
-break;
-case 208:
- this.$ = {table: $$[$0]};
-break;
-case 209:
- this.$ = {table: $$[$0-1], as: $$[$0] } ;
-break;
-case 210:
- this.$ = {table: $$[$0-2], as: $$[$0] } ;
-break;
-case 211:
- this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})};
-break;
-case 212:
- this.$ = {param: $$[$0-1], as: $$[$0] } ;
-break;
-case 213:
- this.$ = {param: $$[$0-2], as: $$[$0] } ;
-break;
-case 214:
- this.$ = {select: $$[$0-2], as: $$[$0]} ;
-break;
-case 215:
- this.$ = {select: $$[$0-3], as: $$[$0] } ;
-break;
-case 216:
- this.$ = {func:$$[$0], as:'default'};
-break;
-case 217:
- this.$ = {func:$$[$0-1], as: $$[$0]};
-break;
-case 218:
- this.$ = {func:$$[$0-2], as: $$[$0]};
-break;
-case 219:
- this.$ = {variable:$$[$0],as:'default'};
-break;
-case 220:
- this.$ = {variable:$$[$0-1],as:$$[$0]};
-break;
-case 221:
- this.$ = {variable:$$[$0-2],as:$$[$0]}
-break;
-case 222:
- this.$ = { joinmode: $$[$0] } ;
-break;
-case 223:
- this.$ = {joinmode: $$[$0-1], natural:true} ;
-break;
-case 224: case 225:
- this.$ = "INNER";
-break;
-case 226: case 227:
- this.$ = "LEFT";
-break;
-case 228: case 229:
- this.$ = "RIGHT";
-break;
-case 230: case 231:
- this.$ = "OUTER";
-break;
-case 232:
- this.$ = "SEMI";
-break;
-case 233:
- this.$ = "ANTI";
-break;
-case 234:
- this.$ = "CROSS";
-break;
-case 235:
- this.$ = {on: $$[$0]};
-break;
-case 236: case 697:
- this.$ = {using: $$[$0]};
-break;
-case 239:
- this.$ = {where: new yy.Expression({expression:$$[$0]})};
-break;
-case 241:
- this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
-break;
-case 244:
- this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
-break;
-case 245:
- this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
-break;
-case 246:
- this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
-break;
-case 249:
- this.$ = {having:$$[$0]}
-break;
-case 251:
- this.$ = {union: $$[$0]} ;
-break;
-case 252:
- this.$ = {unionall: $$[$0]} ;
-break;
-case 253:
- this.$ = {except: $$[$0]} ;
-break;
-case 254:
- this.$ = {intersect: $$[$0]} ;
-break;
-case 255:
- this.$ = {union: $$[$0], corresponding:true} ;
-break;
-case 256:
- this.$ = {unionall: $$[$0], corresponding:true} ;
-break;
-case 257:
- this.$ = {except: $$[$0], corresponding:true} ;
-break;
-case 258:
- this.$ = {intersect: $$[$0], corresponding:true} ;
-break;
-case 260:
- this.$ = {order:$$[$0]}
-break;
-case 262:
- this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
-break;
-case 263:
- this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
-break;
-case 264:
- this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
-break;
-case 265:
- this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
-break;
-case 266:
- this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
-break;
-case 268:
- this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]);
-break;
-case 269:
- this.$ = {limit:$$[$0-2],offset:$$[$0-6]};
-break;
-case 271:
- this.$ = {offset:$$[$0]};
-break;
-case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688:
- $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
-break;
-case 274: case 276: case 278:
- $$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
-break;
-case 275: case 277: case 279:
- $$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
-break;
-case 281:
- this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
-break;
-case 282:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
-break;
-case 283:
- this.$ = new yy.Column({columnid:$$[$0]});
-break;
-case 284:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
-break;
-case 285: case 286:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
-break;
-case 287:
- this.$ = new yy.Column({columnid: $$[$0]});
-break;
-case 302:
- this.$ = new yy.DomainValueValue();
-break;
-case 303:
- this.$ = new yy.Json({value:$$[$0]});
-break;
-case 306: case 307: case 308:
-
- if(!yy.queries) yy.queries = [];
- yy.queries.push($$[$0-1]);
- $$[$0-1].queriesidx = yy.queries.length;
- this.$ = $$[$0-1];
-
-break;
-case 309:
-this.$ = $$[$0]
-break;
-case 310:
- this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
-break;
-case 311:
- this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 312:
- this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 313:
- this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 314:
- this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
-break;
-case 315:
- this.$ = $$[$0]; yy.extend(this.$,{newid:true});
-break;
-case 316:
- this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
-break;
-case 317:
- this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
-break;
-case 318:
- this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
-break;
-case 319:
- this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
-break;
-case 326:
- this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
-break;
-case 327:
-
- if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {
- this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});
- } else {
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});
- }
-
-break;
-case 328:
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
-break;
-case 329:
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
- over:$$[$0]});
-break;
-case 331: case 332:
- this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
-break;
-case 333:
- this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
-break;
-case 334:
- this.$ = {partition:$$[$0]};
-break;
-case 335:
- this.$ = {order:$$[$0]};
-break;
-case 336:
- this.$ = "SUM";
-break;
-case 337:
- this.$ = "COUNT";
-break;
-case 338:
- this.$ = "MIN";
-break;
-case 339: case 544:
- this.$ = "MAX";
-break;
-case 340:
- this.$ = "AVG";
-break;
-case 341:
- this.$ = "FIRST";
-break;
-case 342:
- this.$ = "LAST";
-break;
-case 343:
- this.$ = "AGGR";
-break;
-case 344:
- this.$ = "ARRAY";
-break;
-case 345:
-
- var funcid = $$[$0-4];
- var exprlist = $$[$0-1];
- if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
- this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
- } else if(alasql.aggr[$$[$0-4]]) {
- this.$ = new yy.AggrValue({aggregatorid: 'REDUCE',
- funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });
- } else {
- this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
- };
-
-break;
-case 346:
- this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
-break;
-case 347:
- this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] })
-break;
-case 348:
- this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] })
-break;
-case 349:
- this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
-break;
-case 350:
- this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
-break;
-case 351:
- this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
-break;
-case 352:
- this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
-break;
-case 353:
- this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]});
-break;
-case 355:
- $$[$0-2].push($$[$0]); this.$ = $$[$0-2]
-break;
-case 356:
- this.$ = new yy.NumValue({value:+$$[$0]});
-break;
-case 357:
- this.$ = new yy.LogicValue({value:true});
-break;
-case 358:
- this.$ = new yy.LogicValue({value:false});
-break;
-case 359:
- this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
-break;
-case 360:
- this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
-break;
-case 361:
- this.$ = new yy.NullValue({value:undefined});
-break;
-case 362:
- this.$ = new yy.VarValue({variable:$$[$0]});
-break;
-case 363:
-
- if(!yy.exists) yy.exists = [];
- this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
- yy.exists.push($$[$0-1]);
-
-break;
-case 364:
- this.$ = new yy.ArrayValue({value:$$[$0-1]});
-break;
-case 365: case 366:
- this.$ = new yy.ParamValue({param: $$[$0]});
-break;
-case 367:
-
- if(typeof yy.question == 'undefined') yy.question = 0;
- this.$ = new yy.ParamValue({param: yy.question++});
-
-break;
-case 368:
-
- if(typeof yy.question == 'undefined') yy.question = 0;
- this.$ = new yy.ParamValue({param: yy.question++, array:true});
-
-break;
-case 369:
- this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
-break;
-case 370:
- this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
-break;
-case 371: case 699: case 700:
- this.$ = $$[$0-1]; this.$.push($$[$0]);
-break;
-case 373:
- this.$ = {when: $$[$0-2], then: $$[$0] };
-break;
-case 376: case 377:
- this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]});
-break;
-case 378:
- this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]});
-break;
-case 379:
- this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
-break;
-case 380:
- this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]});
-break;
-case 381:
- this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] });
-break;
-case 382:
- this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] });
-break;
-case 383:
- this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]});
-break;
-case 384:
- this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]});
-break;
-case 385:
- this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]});
-break;
-case 386:
- this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]});
-break;
-case 387:
- this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]});
-break;
-case 388:
- this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
-break;
-case 389:
- this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
-break;
-case 390:
- this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]});
-break;
-case 391:
- this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]});
-break;
-case 392:
- this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]});
-break;
-case 393:
- this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]});
-break;
-case 394: case 395: case 397:
- this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
-break;
-case 396:
- this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
-break;
-case 398: case 399: case 401:
- this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
-break;
-case 400:
- this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
-break;
-case 402:
- this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]});
-break;
-case 403:
- this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]});
-break;
-case 404:
- this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]});
-break;
-case 405:
- this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]});
-break;
-case 406:
- this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]});
-break;
-case 407:
- this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
-break;
-case 408:
- this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]});
-break;
-case 409:
- this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]});
-break;
-case 410:
- this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]});
-break;
-case 411:
- this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]});
-break;
-case 412:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 413:
-
- this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});
-
-break;
-case 414:
-
- if($$[$0-2].op == 'BETWEEN1') {
-
- if($$[$0-2].left.op == 'AND') {
- this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
- new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]})
- });
- } else {
- this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]});
- }
-
- } else if($$[$0-2].op == 'NOT BETWEEN1') {
- if($$[$0-2].left.op == 'AND') {
- this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
- new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]})
- });
- } else {
- this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]});
- }
- } else {
- this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});
- }
-
-break;
-case 415:
- this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]});
-break;
-case 416:
- this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]});
-break;
-case 417:
- this.$ = new yy.UniOp({op:'-' , right:$$[$0]});
-break;
-case 418:
- this.$ = new yy.UniOp({op:'+' , right:$$[$0]});
-break;
-case 419:
- this.$ = new yy.UniOp({op:'~' , right:$$[$0]});
-break;
-case 420:
- this.$ = new yy.UniOp({op:'#' , right:$$[$0]});
-break;
-case 421:
- this.$ = new yy.UniOp({right: $$[$0-1]});
-break;
-case 422:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 423:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 424:
- this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]});
-break;
-case 425:
- this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]});
-break;
-case 426:
- this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]});
-break;
-case 427:
- this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]});
-break;
-case 428: case 430:
- this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]});
-break;
-case 429: case 431:
- this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]});
-break;
-case 432:
-
-/* var expr = $$[$0];
- if(expr.left && expr.left.op == 'AND') {
- this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });
- } else {
-*/
- this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] });
-
-break;
-case 433:
-
- this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] });
-
-break;
-case 434:
- this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]});
-break;
-case 435:
-
- this.$ = new yy.Op({
- op:'IS',
- left:$$[$0-2],
- right: new yy.UniOp({
- op:'NOT',
- right:new yy.NullValue({value:undefined})
- })
- });
-
-break;
-case 436:
- this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ;
-break;
-case 437: case 438:
- this.$ = $$[$0];
-break;
-case 439:
- this.$ = $$[$0-1];
-break;
-case 446:
- this.$ = 'ALL';
-break;
-case 447:
- this.$ = 'SOME';
-break;
-case 448:
- this.$ = 'ANY';
-break;
-case 449:
- this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]});
-break;
-case 450:
- this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]});
-break;
-case 453:
- this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]})
-break;
-case 454:
- this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]})
-break;
-case 455:
- this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]});
-break;
-case 456:
- this.$ = new yy.Delete({table:$$[$0]});
-break;
-case 457:
- this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]});
-break;
-case 458:
- this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]});
-break;
-case 459: case 461:
- this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true});
-break;
-case 460: case 462:
- this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true});
-break;
-case 463:
- this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ;
-break;
-case 464:
- this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]});
-break;
-case 465:
- this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]});
-break;
-case 466:
- this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]});
-break;
-case 467:
- this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true});
-break;
-case 468:
- this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]});
-break;
-case 473:
- this.$ = [$$[$0-1]];
-break;
-case 476:
-this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1])
-break;
-case 477: case 478: case 480: case 488:
-this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
-break;
-case 489:
-
- this.$ = new yy.CreateTable({table:$$[$0-4]});
- yy.extend(this.$,$$[$0-7]);
- yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-5]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,$$[$0]);
-
-break;
-case 490:
-
- this.$ = new yy.CreateTable({table:$$[$0]});
- yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,$$[$0-1]);
-
-break;
-case 492:
- this.$ = {class:true};
-break;
-case 502:
- this.$ = {temporary:true};
-break;
-case 504:
- this.$ = {ifnotexists: true};
-break;
-case 505:
- this.$ = {columns: $$[$0-2], constraints: $$[$0]};
-break;
-case 506:
- this.$ = {columns: $$[$0]};
-break;
-case 507:
- this.$ = {as: $$[$0]}
-break;
-case 508: case 532:
- this.$ = [$$[$0]];
-break;
-case 510: case 511: case 512: case 513: case 514:
- $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0];
-break;
-case 517:
- this.$ = {type: 'CHECK', expression: $$[$0-1]};
-break;
-case 518:
- this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
-break;
-case 519:
- this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]};
-break;
-case 525:
-
- this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
-
-break;
-case 534:
- this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
-break;
-case 535:
- this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]);
-break;
-case 536:
- this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''});
-break;
-case 537:
- this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]}
-break;
-case 538:
- this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]}
-break;
-case 539:
- this.$ = {dbtypeid: $$[$0]}
-break;
-case 540:
- this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]}
-break;
-case 541:
- this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']';
-break;
-case 543: case 750:
- this.$ = +$$[$0];
-break;
-case 545:
-this.$ = undefined
-break;
-case 547:
-
- yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1];
-
-break;
-case 550:
-this.$ = {primarykey:true};
-break;
-case 551: case 552:
-this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}};
-break;
-case 553:
- this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}}
-break;
-case 554:
- this.$ = {identity: {value:1,step:1}}
-break;
-case 555: case 557:
-this.$ = {"default":$$[$0]};
-break;
-case 556:
-this.$ = {"default":$$[$0-1]};
-break;
-case 558:
-this.$ = {null:true};
-break;
-case 559:
-this.$ = {notnull:true};
-break;
-case 560:
-this.$ = {check:$$[$0]};
-break;
-case 561:
-this.$ = {unique:true};
-break;
-case 562:
-this.$ = {"onupdate":$$[$0]};
-break;
-case 563:
-this.$ = {"onupdate":$$[$0-1]};
-break;
-case 564:
- this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]);
-break;
-case 568:
- this.$ = {ifexists: true};
-break;
-case 569:
- this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]});
-break;
-case 570:
- this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]});
-break;
-case 571:
- this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]});
-break;
-case 572:
- this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]});
-break;
-case 573:
- this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]});
-break;
-case 574:
- this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]});
-break;
-case 575:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() });
-break;
-case 576:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] });
-break;
-case 577:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] });
-break;
-case 578:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]});
-break;
-case 579:
- this.$ = new yy.DetachDatabase({databaseid:$$[$0]});
-break;
-case 580:
- this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]);
-break;
-case 581:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]);
-break;
-case 582:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]);
-break;
-case 583:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),
- as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]);
-break;
-case 584:
-this.$ = undefined;
-break;
-case 586: case 587:
- this.$ = new yy.UseDatabase({databaseid: $$[$0] });
-break;
-case 588:
- this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]);
-break;
-case 589: case 590:
- this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]);
-break;
-case 591:
- this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]})
-break;
-case 592:
- this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true})
-break;
-case 593:
- this.$ = new yy.DropIndex({indexid:$$[$0]});
-break;
-case 594:
- this.$ = new yy.ShowDatabases();
-break;
-case 595:
- this.$ = new yy.ShowDatabases({like:$$[$0]});
-break;
-case 596:
- this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() });
-break;
-case 597:
- this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]});
-break;
-case 598:
- this.$ = new yy.ShowTables();
-break;
-case 599:
- this.$ = new yy.ShowTables({like:$$[$0]});
-break;
-case 600:
- this.$ = new yy.ShowTables({databaseid: $$[$0]});
-break;
-case 601:
- this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]});
-break;
-case 602:
- this.$ = new yy.ShowColumns({table: $$[$0]});
-break;
-case 603:
- this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]});
-break;
-case 604:
- this.$ = new yy.ShowIndex({table: $$[$0]});
-break;
-case 605:
- this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]});
-break;
-case 606:
- this.$ = new yy.ShowCreateTable({table: $$[$0]});
-break;
-case 607:
- this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]});
-break;
-case 608:
-
- this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]});
- yy.extend(this.$,$$[$0-9]);
- yy.extend(this.$,$$[$0-7]);
-
-break;
-case 609:
-
- this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]});
- yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-4]);
-
-break;
-case 613:
- this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]);
-break;
-case 614: case 760:
- this.$ = new yy.ExpressionStatement({expression:$$[$0]});
-break;
-case 615:
- this.$ = new yy.Source({url:$$[$0].value});
-break;
-case 616:
- this.$ = new yy.Assert({value:$$[$0]});
-break;
-case 617:
- this.$ = new yy.Assert({value:$$[$0].value});
-break;
-case 618:
- this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]});
-break;
-case 620: case 631: case 633:
- this.$ = $$[$0].value;
-break;
-case 621: case 629:
- this.$ = +$$[$0].value;
-break;
-case 622:
- this.$ = (!!$$[$0].value);
-break;
-case 630:
- this.$ = ""+$$[$0].value;
-break;
-case 639:
- this.$ = {};
-break;
-case 642:
- this.$ = [];
-break;
-case 643:
- yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2];
-break;
-case 645:
- this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0];
-break;
-case 646: case 647:
- this.$ = {}; this.$[$$[$0-2]] = $$[$0];
-break;
-case 650:
- this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]});
-break;
-case 651:
- this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]});
-break;
-case 652:
- this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]});
-break;
-case 653:
- this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]});
-break;
-case 654:
- this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]});
-break;
-case 655:
- this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]});
-break;
-case 656:
-this.$ = '@';
-break;
-case 657:
-this.$ = '$';
-break;
-case 663:
- this.$ = true;
-break;
-case 664:
- this.$ = false;
-break;
-case 665:
- this.$ = new yy.CommitTransaction();
-break;
-case 666:
- this.$ = new yy.RollbackTransaction();
-break;
-case 667:
- this.$ = new yy.BeginTransaction();
-break;
-case 668:
- this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]});
- if($$[$0-1].exists) this.$.exists = $$[$0-1].exists;
- if($$[$0-1].queries) this.$.queries = $$[$0-1].queries;
-
-break;
-case 669:
-
- this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 670:
-this.$ = $$[$0];
-break;
-case 671:
- this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 672:
- this.$ = new yy.Continue();
-break;
-case 673:
- this.$ = new yy.Break();
-break;
-case 674:
- this.$ = new yy.BeginEnd({statements:$$[$0-1]});
-break;
-case 675:
- this.$ = new yy.Print({exprs:$$[$0]});
-break;
-case 676:
- this.$ = new yy.Print({select:$$[$0]});
-break;
-case 677:
- this.$ = new yy.Require({paths:$$[$0]});
-break;
-case 678:
- this.$ = new yy.Require({plugins:$$[$0]});
-break;
-case 679: case 680:
-this.$ = $$[$0].toUpperCase();
-break;
-case 681:
- this.$ = new yy.Echo({expr:$$[$0]});
-break;
-case 686:
- this.$ = new yy.Declare({declares:$$[$0]});
-break;
-case 689:
- this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]);
-break;
-case 690:
- this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]);
-break;
-case 691:
- this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
-break;
-case 692:
- this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
-break;
-case 693:
- this.$ = new yy.TruncateTable({table:$$[$0]});
-break;
-case 694:
-
- this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);
-
-break;
-case 695: case 696:
- this.$ = {into: $$[$0]};
-break;
-case 698:
- this.$ = {on:$$[$0]};
-break;
-case 703:
- this.$ = {matched:true, action:$$[$0]}
-break;
-case 704:
- this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]}
-break;
-case 705:
- this.$ = {delete:true};
-break;
-case 706:
- this.$ = {update:$$[$0]};
-break;
-case 707: case 708:
- this.$ = {matched:false, bytarget: true, action:$$[$0]}
-break;
-case 709: case 710:
- this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]}
-break;
-case 711:
- this.$ = {matched:false, bysource: true, action:$$[$0]}
-break;
-case 712:
- this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]}
-break;
-case 713:
- this.$ = {insert:true, values:$$[$0]};
-break;
-case 714:
- this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]};
-break;
-case 715:
- this.$ = {insert:true, defaultvalues:true};
-break;
-case 716:
- this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]};
-break;
-case 718:
- this.$ = {output:{columns:$$[$0]}}
-break;
-case 719:
- this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}}
-break;
-case 720:
- this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}}
-break;
-case 721:
- this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}}
-break;
-case 722:
-
- this.$ = new yy.CreateVertex({class:$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]});
- yy.extend(this.$,$$[$0]);
-
-break;
-case 725:
- this.$ = {sets:$$[$0]};
-break;
-case 726:
- this.$ = {content:$$[$0]};
-break;
-case 727:
- this.$ = {select:$$[$0]};
-break;
-case 728:
-
- this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]});
- yy.extend(this.$,$$[$0]);
-
-break;
-case 729:
- this.$ = new yy.CreateGraph({graph:$$[$0]});
-break;
-case 730:
- this.$ = new yy.CreateGraph({from:$$[$0]});
-break;
-case 733:
-
- this.$ = $$[$0-2];
- if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]});
- if($$[$0]) this.$.as = $$[$0];
-
-break;
-case 734:
-
- this.$ = {source:$$[$0-6], target: $$[$0]};
- if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]});
- if($$[$0-2]) this.$.as = $$[$0-2];
- yy.extend(this.$,$$[$0-4]);
-
-break;
-case 735:
-
- this.$ = {source:$$[$0-5], target: $$[$0]};
- if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]});
- if($$[$0-1]) this.$.as = $$[$0-2];
-
-break;
-case 736:
-
- this.$ = {source:$$[$0-2], target: $$[$0]};
-
-break;
-case 740:
- this.$ = {vars:$$[$0], method:$$[$0-1]};
-break;
-case 743: case 744:
-
- var s3 = $$[$0-1];
- this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$$[$0]};
-
-break;
-case 745:
-
- var s2 = $$[$0-1];
- this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), class:$$[$0]};
-
-break;
-case 746:
-
- var s1 = $$[$0-1];
- this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), class:$$[$0]};
-
-break;
-case 747:
-
- this.$ = {class:$$[$0]};
-
-break;
-case 753:
- this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]});
-break;
-case 754:
- this.$ = new yy.AddRule({right:$$[$0]});
-break;
-case 757:
- this.$ = new yy.Term({termid:$$[$0]});
-break;
-case 758:
- this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]});
-break;
-case 761:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 762:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]});
-
-break;
-case 763:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 764: case 765: case 767:
- this.$ = 'AFTER';
-break;
-case 766:
- this.$ = 'BEFORE';
-break;
-case 768:
- this.$ = 'INSTEADOF';
-break;
-case 769:
- this.$ = 'INSERT';
-break;
-case 770:
- this.$ = 'DELETE';
-break;
-case 771:
- this.$ = 'UPDATE';
-break;
-case 772:
- this.$ = new yy.DropTrigger({trigger:$$[$0]});
-break;
-case 773:
- this.$ = new yy.Reindex({indexid:$$[$0]});
-break;
-case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085:
-this.$ = [];
-break;
-case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086:
-$$[$0-1].push($$[$0]);
-break;
-case 1061: case 1063:
-this.$ = [$$[$0]];
-break;
-}
-},
-table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])],
-defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},
-parseError: function parseError(str, hash) {
- if (hash.recoverable) {
- this.trace(str);
- } else {
- var error = new Error(str);
- error.hash = hash;
- throw error;
- }
-},
-parse: function parse(input) {
- var self = this,
- stack = [0],
- tstack = [], // token stack
- vstack = [null], // semantic value stack
- lstack = [], // location stack
- table = this.table,
- yytext = '',
- yylineno = 0,
- yyleng = 0,
- recovering = 0,
- TERROR = 2,
- EOF = 1;
-
- var args = lstack.slice.call(arguments, 1);
-
- //this.reductionCount = this.shiftCount = 0;
-
- var lexer = Object.create(this.lexer);
- var sharedState = { yy: {} };
- // copy state
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
-
- lexer.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer;
- sharedState.yy.parser = this;
- if (typeof lexer.yylloc == 'undefined') {
- lexer.yylloc = {};
- }
- var yyloc = lexer.yylloc;
- lstack.push(yyloc);
-
- var ranges = lexer.options && lexer.options.ranges;
-
- if (typeof sharedState.yy.parseError === 'function') {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
-
- function popStack (n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
-
-_token_stack:
- var lex = function () {
- var token;
- token = lexer.lex() || EOF;
- // if token isn't its numeric value, convert
- if (typeof token !== 'number') {
- token = self.symbols_[token] || token;
- }
- return token;
- }
-
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- // retreive state number from top of stack
- state = stack[stack.length - 1];
-
- // use default actions if available
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol === null || typeof symbol == 'undefined') {
- symbol = lex();
- }
- // read action for current state and first input
- action = table[state] && table[state][symbol];
- }
-
-_handle_error:
- // handle parse error
- if (typeof action === 'undefined' || !action.length || !action[0]) {
- var error_rule_depth;
- var errStr = '';
-
- // Return the rule stack depth where the nearest error rule can be found.
- // Return FALSE when no error recovery rule was found.
- function locateNearestErrorRecoveryRule(state) {
- var stack_probe = stack.length - 1;
- var depth = 0;
-
- // try to recover from error
- for(;;) {
- // check for error recovery rule in this state
- if ((TERROR.toString()) in table[state]) {
- return depth;
- }
- if (state === 0 || stack_probe < 2) {
- return false; // No suitable error recovery rule available.
- }
- stack_probe -= 2; // popStack(1): [symbol, action]
- state = stack[stack_probe];
- ++depth;
- }
- }
-
- if (!recovering) {
- // first see if there's any chance at hitting an error recovery rule:
- error_rule_depth = locateNearestErrorRecoveryRule(state);
-
- // Report error
- expected = [];
- for (p in table[state]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'"+this.terminals_[p]+"'");
- }
- }
- if (lexer.showPosition) {
- errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'";
- } else {
- errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
- (symbol == EOF ? "end of input" :
- ("'"+(this.terminals_[symbol] || symbol)+"'"));
- }
- this.parseError(errStr, {
- text: lexer.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer.yylineno,
- loc: yyloc,
- expected: expected,
- recoverable: (error_rule_depth !== false)
- });
- } else if (preErrorSymbol !== EOF) {
- error_rule_depth = locateNearestErrorRecoveryRule(state);
- }
-
- // just recovered from another error
- if (recovering == 3) {
- if (symbol === EOF || preErrorSymbol === EOF) {
- throw new Error(errStr || 'Parsing halted while starting to recover from another error.');
- }
-
- // discard current lookahead and grab another
- yyleng = lexer.yyleng;
- yytext = lexer.yytext;
- yylineno = lexer.yylineno;
- yyloc = lexer.yylloc;
- symbol = lex();
- }
-
- // try to recover from error
- if (error_rule_depth === false) {
- throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');
- }
- popStack(error_rule_depth);
-
- preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token
- symbol = TERROR; // insert generic error symbol as new lookahead
- state = stack[stack.length-1];
- action = table[state] && table[state][TERROR];
- recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
- }
-
- // this shouldn't happen, unless resolve defaults are off
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
- }
-
- switch (action[0]) {
- case 1: // shift
- //this.shiftCount++;
-
- stack.push(symbol);
- vstack.push(lexer.yytext);
- lstack.push(lexer.yylloc);
- stack.push(action[1]); // push state
- symbol = null;
- if (!preErrorSymbol) { // normal execution/no error
- yyleng = lexer.yyleng;
- yytext = lexer.yytext;
- yylineno = lexer.yylineno;
- yyloc = lexer.yylloc;
- if (recovering > 0) {
- recovering--;
- }
- } else {
- // error just occurred, resume old lookahead f/ before error
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
-
- case 2:
- // reduce
- //this.reductionCount++;
-
- len = this.productions_[action[1]][1];
-
- // perform semantic action
- yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
- // default location, uses first token for firsts, last for lasts
- yyval._$ = {
- first_line: lstack[lstack.length-(len||1)].first_line,
- last_line: lstack[lstack.length-1].last_line,
- first_column: lstack[lstack.length-(len||1)].first_column,
- last_column: lstack[lstack.length-1].last_column
- };
- if (ranges) {
- yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]];
- }
- r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
-
- if (typeof r !== 'undefined') {
- return r;
- }
-
- // pop off stack
- if (len) {
- stack = stack.slice(0,-1*len*2);
- vstack = vstack.slice(0, -1*len);
- lstack = lstack.slice(0, -1*len);
- }
-
- stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- // goto new state = table[STATE][NONTERMINAL]
- newState = table[stack[stack.length-2]][stack[stack.length-1]];
- stack.push(newState);
- break;
-
- case 3:
- // accept
- return true;
- }
-
- }
-
- return true;
-}};
-
-// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
-// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText))
-
-var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"]
-
-parser.parseError = function(str, hash) {
- if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) {
- return
- }
- throw new SyntaxError(str)
-}
-/* generated by jison-lex 0.3.4 */
-var lexer = (function(){
-var lexer = ({
-
-EOF:1,
-
-parseError:function parseError(str, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-
-// resets the lexer, sets new input
-setInput:function (input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0,0];
- }
- this.offset = 0;
- return this;
- },
-
-// consumes and returns one char from the input
-input:function () {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
-
- this._input = this._input.slice(1);
- return ch;
- },
-
-// unshifts one char (or a string) into the input
-unput:function (ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
-
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- //this.yyleng -= len;
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
-
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
-
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ?
- (lines.length === oldLines.length ? this.yylloc.first_column : 0)
- + oldLines[oldLines.length - lines.length].length - lines[0].length :
- this.yylloc.first_column - len
- };
-
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
-
-// When called from action, caches matched text and appends it on next action
-more:function () {
- this._more = true;
- return this;
- },
-
-// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
-reject:function () {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
-
- }
- return this;
- },
-
-// retain first n characters of the match
-less:function (n) {
- this.unput(this.match.slice(n));
- },
-
-// displays already matched input, i.e. for error messages
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-
-// displays upcoming input, i.e. for error messages
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
- },
-
-// displays the character position where the lexing error occurred, i.e. for error messages
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c + "^";
- },
-
-// test the lexed token: return FALSE when not a match, otherwise return token
-test_match:function (match, indexed_rule) {
- var token,
- lines,
- backup;
-
- if (this.options.backtrack_lexer) {
- // save context
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
-
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ?
- lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
- this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token) {
- return token;
- } else if (this._backtrack) {
- // recover context
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false; // rule action called reject() implying the next rule should be tested instead.
- }
- return false;
- },
-
-// return next match in input
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
-
- var token,
- match,
- tempMatch,
- index;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i = 0; i < rules.length; i++) {
- tempMatch = this._input.match(this.rules[rules[i]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i;
- if (this.options.backtrack_lexer) {
- token = this.test_match(tempMatch, rules[i]);
- if (token !== false) {
- return token;
- } else if (this._backtrack) {
- match = false;
- continue; // rule action called reject() implying a rule MISmatch.
- } else {
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token = this.test_match(match, rules[index]);
- if (token !== false) {
- return token;
- }
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
-
-// return next match that has a token
-lex:function lex() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
-
-// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-
-// pop the previously active lexer condition state off the condition stack
-popState:function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
-
-// produce the lexer rule set which is active for the currently active lexer condition state
-_currentRules:function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
-
-// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
-topState:function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
-
-// alias for begin(condition)
-pushState:function pushState(condition) {
- this.begin(condition);
- },
-
-// return the number of states currently on the stack
-stateStackSize:function stateStackSize() {
- return this.conditionStack.length;
- },
-options: {"case-insensitive":true},
-performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-var YYSTATE=YY_START;
-switch($avoiding_name_collisions) {
-case 0:return 266
-break;
-case 1:return 302
-break;
-case 2:return 420
-break;
-case 3:return 299
-break;
-case 4:return 5
-break;
-case 5:return 5
-break;
-case 6:return 296
-break;
-case 7:return 296
-break;
-case 8:return 132
-break;
-case 9:return 132
-break;
-case 10:return /* its a COMMENT */
-break;
-case 11:/* skip whitespace */
-break;
-case 12:return 316
-break;
-case 13:return 319
-break;
-case 14:yy_.yytext = 'VALUE';return 89
-break;
-case 15:yy_.yytext = 'VALUE';return 189
-break;
-case 16:yy_.yytext = 'ROW';return 189
-break;
-case 17:yy_.yytext = 'COLUMN';return 189
-break;
-case 18:yy_.yytext = 'MATRIX';return 189
-break;
-case 19:yy_.yytext = 'INDEX';return 189
-break;
-case 20:yy_.yytext = 'RECORDSET';return 189
-break;
-case 21:yy_.yytext = 'TEXT';return 189
-break;
-case 22:yy_.yytext = 'SELECT';return 189
-break;
-case 23:return 520
-break;
-case 24:return 381
-break;
-case 25:return 402
-break;
-case 26:return 515
-break;
-case 27:return 287
-break;
-case 28:return 269
-break;
-case 29:return 269
-break;
-case 30:return 164
-break;
-case 31:return 400
-break;
-case 32:return 170
-break;
-case 33:return 229
-break;
-case 34:return 166
-break;
-case 35:return 207
-break;
-case 36:return 288
-break;
-case 37:return 76
-break;
-case 38:return 418
-break;
-case 39:return 242
-break;
-case 40:return 404
-break;
-case 41:return 356
-break;
-case 42:return 284
-break;
-case 43:return 514
-break;
-case 44:return 437
-break;
-case 45:return 330
-break;
-case 46:return 441
-break;
-case 47:return 331
-break;
-case 48:return 315
-break;
-case 49:return 119
-break;
-case 50:return 112
-break;
-case 51:return 315
-break;
-case 52:return 112
-break;
-case 53:return 315
-break;
-case 54:return 112
-break;
-case 55:return 315
-break;
-case 56:return 508
-break;
-case 57:return 303
-break;
-case 58:return 271
-break;
-case 59:return 368
-break;
-case 60:return 130
-break;
-case 61:return 'CLOSE'
-break;
-case 62:return 243
-break;
-case 63:return 190
-break;
-case 64:return 190
-break;
-case 65:return 434
-break;
-case 66:return 367
-break;
-case 67:return 470
-break;
-case 68:return 440
-break;
-case 69:return 273
-break;
-case 70:return 240
-break;
-case 71:return 281
-break;
-case 72:return 267
-break;
-case 73:return 206
-break;
-case 74:return 238
-break;
-case 75:return 265
-break;
-case 76:return 'CURSOR'
-break;
-case 77:return 405
-break;
-case 78:return 291
-break;
-case 79:return 292
-break;
-case 80:return 448
-break;
-case 81:return 343
-break;
-case 82:return 338
-break;
-case 83:return 'DELETED'
-break;
-case 84:return 242
-break;
-case 85:return 406
-break;
-case 86:return 185
-break;
-case 87:return 396
-break;
-case 88:return 447
-break;
-case 89:return 135
-break;
-case 90:return 306
-break;
-case 91:return 389
-break;
-case 92:return 310
-break;
-case 93:return 314
-break;
-case 94:return 169
-break;
-case 95:return 508
-break;
-case 96:return 508
-break;
-case 97:return 298
-break;
-case 98:return 14
-break;
-case 99:return 295
-break;
-case 100:return 249
-break;
-case 101:return 285
-break;
-case 102:return 95
-break;
-case 103:return 373
-break;
-case 104:return 183
-break;
-case 105:return 227
-break;
-case 106:return 268
-break;
-case 107:return 313
-break;
-case 108:return 602
-break;
-case 109:return 472
-break;
-case 110:return 232
-break;
-case 111:return 236
-break;
-case 112:return 239
-break;
-case 113:return 156
-break;
-case 114:return 356
-break;
-case 115:return 332
-break;
-case 116:return 99
-break;
-case 117:return 193
-break;
-case 118:return 212
-break;
-case 119:return 224
-break;
-case 120:return 516
-break;
-case 121:return 339
-break;
-case 122:return 213
-break;
-case 123:return 168
-break;
-case 124:return 293
-break;
-case 125:return 198
-break;
-case 126:return 223
-break;
-case 127:return 370
-break;
-case 128:return 286
-break;
-case 129:return 'LET'
-break;
-case 130:return 225
-break;
-case 131:return 112
-break;
-case 132:return 245
-break;
-case 133:return 460
-break;
-case 134:return 191
-break;
-case 135:return 283
-break;
-case 136:return 390
-break;
-case 137:return 282
-break;
-case 138:return 452
-break;
-case 139:return 169
-break;
-case 140:return 403
-break;
-case 141:return 222
-break;
-case 142:return 645
-break;
-case 143:return 270
-break;
-case 144:return 244
-break;
-case 145:return 380
-break;
-case 146:return 154
-break;
-case 147:return 297
-break;
-case 148:return 433
-break;
-case 149:return 230
-break;
-case 150:return 415
-break;
-case 151:return 129
-break;
-case 152:return 247
-break;
-case 153:return 'OPEN'
-break;
-case 154:return 416
-break;
-case 155:return 171
-break;
-case 156:return 118
-break;
-case 157:return 208
-break;
-case 158:return 276
-break;
-case 159:return 172
-break;
-case 160:return 279
-break;
-case 161:return 765
-break;
-case 162:return 93
-break;
-case 163:return 16
-break;
-case 164:return 369
-break;
-case 165:return 442
-break;
-case 166:return 678
-break;
-case 167:return 15
-break;
-case 168:return 414
-break;
-case 169:return 194
-break;
-case 170:return 'REDUCE'
-break;
-case 171:return 374
-break;
-case 172:return 311
-break;
-case 173:return 517
-break;
-case 174:return 682
-break;
-case 175:return 107
-break;
-case 176:return 401
-break;
-case 177:return 175
-break;
-case 178:return 290
-break;
-case 179:return 443
-break;
-case 180:return 687
-break;
-case 181:return 173
-break;
-case 182:return 173
-break;
-case 183:return 226
-break;
-case 184:return 436
-break;
-case 185:return 237
-break;
-case 186:return 150
-break;
-case 187:return 766
-break;
-case 188:return 405
-break;
-case 189:return 89
-break;
-case 190:return 228
-break;
-case 191:return 146
-break;
-case 192:return 146
-break;
-case 193:return 409
-break;
-case 194:return 334
-break;
-case 195:return 417
-break;
-case 196:return 'STRATEGY'
-break;
-case 197:return 'STORE'
-break;
-case 198:return 280
-break;
-case 199:return 353
-break;
-case 200:return 353
-break;
-case 201:return 463
-break;
-case 202:return 357
-break;
-case 203:return 357
-break;
-case 204:return 192
-break;
-case 205:return 309
-break;
-case 206:return 'TIMEOUT'
-break;
-case 207:return 148
-break;
-case 208:return 195
-break;
-case 209:return 435
-break;
-case 210:return 435
-break;
-case 211:return 509
-break;
-case 212:return 294
-break;
-case 213:return 451
-break;
-case 214:return 162
-break;
-case 215:return 187
-break;
-case 216:return 98
-break;
-case 217:return 335
-break;
-case 218:return 408
-break;
-case 219:return 231
-break;
-case 220:return 149
-break;
-case 221:return 344
-break;
-case 222:return 134
-break;
-case 223:return 410
-break;
-case 224:return 308
-break;
-case 225:return 128
-break;
-case 226:return 439
-break;
-case 227:return 72
-break;
-case 228:return 435 /* Is this keyword required? */
-break;
-case 229:return 131
-break;
-case 230:return 131
-break;
-case 231:return 115
-break;
-case 232:return 137
-break;
-case 233:return 179
-break;
-case 234:return 317
-break;
-case 235:return 180
-break;
-case 236:return 133
-break;
-case 237:return 138
-break;
-case 238:return 326
-break;
-case 239:return 323
-break;
-case 240:return 325
-break;
-case 241:return 322
-break;
-case 242:return 320
-break;
-case 243:return 318
-break;
-case 244:return 319
-break;
-case 245:return 142
-break;
-case 246:return 141
-break;
-case 247:return 139
-break;
-case 248:return 321
-break;
-case 249:return 324
-break;
-case 250:return 140
-break;
-case 251:return 124
-break;
-case 252:return 324
-break;
-case 253:return 77
-break;
-case 254:return 78
-break;
-case 255:return 145
-break;
-case 256:return 424
-break;
-case 257:return 426
-break;
-case 258:return 300
-break;
-case 259:return 505
-break;
-case 260:return 507
-break;
-case 261:return 122
-break;
-case 262:return 116
-break;
-case 263:return 74
-break;
-case 264:return 333
-break;
-case 265:return 152
-break;
-case 266:return 764
-break;
-case 267:return 143
-break;
-case 268:return 181
-break;
-case 269:return 136
-break;
-case 270:return 123
-break;
-case 271:return 312
-break;
-case 272:return 4
-break;
-case 273:return 10
-break;
-case 274:return 'INVALID'
-break;
-}
-},
-rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],
-conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}}
-});
-return lexer;
-})();
-parser.lexer = lexer;
-function Parser () {
- this.yy = {};
-}
-Parser.prototype = parser;parser.Parser = Parser;
-return new Parser;
-})();
-
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = alasqlparser;
-exports.Parser = alasqlparser.Parser;
-exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); };
-exports.main = function commonjsMain(args) {
- if (!args[1]) {
- console.log('Usage: '+args[0]+' FILE');
- process.exit(1);
- }
- var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
- return exports.parser.parse(source);
-};
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(process.argv.slice(1));
-}
+//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
+/*
+@module alasql
+@version 0.4.11-update-dependencies-ac1eccc0undefined
+
+AlaSQL - JavaScript SQL database
+© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
+
+@license
+The MIT License (MIT)
+
+Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+/* eslint-disable */
+
+"use strict";
+
+/**
+ @fileoverview AlaSQL JavaScript SQL library
+ @see http://github.com/agershun/alasql
+*/
+
+/**
+ Callback from statement
+ @callback statement-callback
+ @param {object} data Result data
+*/
+
+/**
+ UMD envelope for AlaSQL
+*/
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define([], factory);
+ } else if (typeof exports === 'object') {
+ /** alasql main function */
+ module.exports = factory();
+ } else {
+ root.alasql = factory();
+ }
+}(this, function () {
+
+/**
+ AlaSQL - Main Alasql class
+ @function
+ @param {string|function|object} sql - SQL-statement or data object for fuent interface
+ @param {object} params - SQL parameters
+ @param {function} cb - callback function
+ @param {object} scope - Scope for nested queries
+ @return {any} - Result data object
+
+ @example
+ Standard sync call:
+ alasql('CREATE TABLE one');
+ Query:
+ var res = alasql('SELECT * FROM one');
+ Call with parameters:
+ var res = alasql('SELECT * FROM ?',[data]);
+ Standard async call with callback function:
+ alasql('SELECT * FROM ?',[data],function(res){
+ console.log(data);
+ });
+ Call with scope for subquery (to pass common values):
+ var scope = {one:{a:2,b;20}}
+ alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope);
+ Call for fluent interface with data object:
+ alasql(data).Where(function(x){return x.a == 10}).exec();
+ Call for fluent interface without data object:
+ alasql().From(data).Where(function(x){return x.a == 10}).exec();
+ */
+
+var alasql = function(sql, params, cb, scope) {
+
+ params = params||[];
+
+ if(typeof importScripts !== 'function' && alasql.webworker) {
+ var id = alasql.lastid++;
+ alasql.buffer[id] = cb;
+ alasql.webworker.postMessage({id:id,sql:sql,params:params});
+ return;
+ }
+
+ if(arguments.length === 0) {
+ // Without arguments - Fluent interface
+ return new yy.Select({
+ columns:[new yy.Column({columnid:'*'})],
+ from: [new yy.ParamValue({param:0})]
+ });
+ } else if(arguments.length === 1){
+ // Access promise notation without using `.promise(...)`
+ if(sql.constructor === Array){
+ return alasql.promise(sql);
+ }
+ }
+ // Avoid setting params if not needed even with callback
+ if(typeof params === 'function'){
+ scope = cb;
+ cb = params;
+ params = [];
+ }
+
+ if(typeof params !== 'object'){
+ params = [params];
+ }
+
+ // Standard interface
+ // alasql('#sql');
+ if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") {
+ sql = document.querySelector(sql).textContent;
+ } else if(typeof sql === 'object' && sql instanceof HTMLElement) {
+ sql = sql.textContent;
+ } else if(typeof sql === 'function') {
+ // to run multiline functions
+ sql = sql.toString();
+ sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1];
+ }
+ // Run SQL
+ return alasql.exec(sql, params, cb, scope);
+};
+
+/**
+ Current version of alasql
+ @constant {string}
+*/
+alasql.version = '0.4.11-update-dependencies-ac1eccc0undefined';
+
+/**
+ Debug flag
+ @type {boolean}
+*/
+alasql.debug = undefined; // Initial debug variable
+
+/*only-for-browser/*
+var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to
+var __dirname = '';
+//*/
+
+/* parser generated by jison 0.4.18 */
+/*
+ Returns a Parser object of the following structure:
+
+ Parser: {
+ yy: {}
+ }
+
+ Parser.prototype: {
+ yy: {},
+ trace: function(),
+ symbols_: {associative list: name ==> number},
+ terminals_: {associative list: number ==> name},
+ productions_: [...],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
+ table: [...],
+ defaultActions: {...},
+ parseError: function(str, hash),
+ parse: function(input),
+
+ lexer: {
+ EOF: 1,
+ parseError: function(str, hash),
+ setInput: function(input),
+ input: function(),
+ unput: function(str),
+ more: function(),
+ less: function(n),
+ pastInput: function(),
+ upcomingInput: function(),
+ showPosition: function(),
+ test_match: function(regex_match_array, rule_index),
+ next: function(),
+ lex: function(),
+ begin: function(condition),
+ popState: function(),
+ _currentRules: function(),
+ topState: function(),
+ pushState: function(condition),
+
+ options: {
+ ranges: boolean (optional: true ==> token location info will include a .range[] member)
+ flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
+ backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
+ },
+
+ performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
+ rules: [...],
+ conditions: {associative list: name ==> set},
+ }
+ }
+
+ token location info (@$, _$, etc.): {
+ first_line: n,
+ last_line: n,
+ first_column: n,
+ last_column: n,
+ range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
+ }
+
+ the parseError function receives a 'hash' object with these members for lexer and parser errors: {
+ text: (matched text)
+ token: (the produced terminal token, if any)
+ line: (yylineno)
+ }
+ while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
+ loc: (yylloc)
+ expected: (string describing the set of expected tokens)
+ recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
+ }
+*/
+var alasqlparser = (function(){
+var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764];
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1},
+terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},
+productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],
+performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
+/* this == yyval */
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1:
+
+ if (alasql.options.casesensitive) this.$ = $$[$0];
+ else this.$ = $$[$0].toLowerCase();
+
+break;
+case 2:
+ this.$ = doubleq($$[$0].substr(1,$$[$0].length-2));
+break;
+case 3:
+ this.$ = $$[$0].toLowerCase()
+break;
+case 4:
+ this.$ = $$[$0]
+break;
+case 5:
+ this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1]
+break;
+case 6:
+ return new yy.Statements({statements:$$[$0-1]});
+break;
+case 7:
+ this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
+break;
+case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756:
+ this.$ = [$$[$0]];
+break;
+case 10:
+ this.$ = $$[$0]; $$[$0].explain = true;
+break;
+case 11:
+ this.$ = $$[$0]; $$[$0].explain = true;
+break;
+case 12:
+
+ this.$ = $$[$0];
+
+ // TODO combine exists and queries
+ if(yy.exists) this.$.exists = yy.exists;
+ delete yy.exists;
+ if(yy.queries) this.$.queries = yy.queries;
+ delete yy.queries;
+
+break;
+case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567:
+ this.$ = undefined;
+break;
+case 68:
+ this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
+break;
+case 69: case 565:
+ $$[$0-2].push($$[$0]); this.$=$$[$0-2];
+break;
+case 71:
+ this.$ = {name:$$[$0-4], select:$$[$0-1]};
+break;
+case 72:
+
+ yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
+ this.$ = $$[$0-9];
+/* if(yy.exists) this.$.exists = yy.exists;
+ delete yy.exists;
+ if(yy.queries) this.$.queries = yy.queries;
+ delete yy.queries;
+*/
+break;
+case 73:
+
+ this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
+ yy.extend(this.$,$$[$0-1]);
+
+break;
+case 74:
+ this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}};
+break;
+case 75:
+ this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}};
+break;
+case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662:
+ this.$ = $$[$0-1];
+break;
+case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749:
+ this.$ = $$[$0];
+break;
+case 79: case 84: case 731: case 755:
+ this.$ = $$[$0-2]; this.$.push($$[$0]);
+break;
+case 81:
+ this.$ = {expr:$$[$0]};
+break;
+case 82:
+ this.$ = {expr:$$[$0-2],as:$$[$0]};
+break;
+case 83:
+ this.$ = {removecolumns:$$[$0]};
+break;
+case 87:
+ this.$ = {like:$$[$0]};
+break;
+case 90: case 104:
+ this.$ = {srchid:"PROP", args: [$$[$0]]};
+break;
+case 91:
+ this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
+break;
+case 92:
+
+ var dir = $$[$0-1];
+ if(!dir) dir = 'ASC';
+ this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
+
+break;
+case 93:
+ this.$ = {srchid:"PARENT"};
+break;
+case 94:
+ this.$ = {srchid:"APROP", args: [$$[$0]]};
+break;
+case 95:
+ this.$ = {selid:"ROOT"};
+break;
+case 96:
+ this.$ = {srchid:"EQ", args: [$$[$0]]};
+break;
+case 97:
+ this.$ = {srchid:"LIKE", args: [$$[$0]]};
+break;
+case 98: case 99:
+ this.$ = {selid:"WITH", args: $$[$0-1]};
+break;
+case 100:
+ this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
+break;
+case 101:
+ this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
+break;
+case 102:
+ this.$ = {selid:"OF", args:[$$[$0-1]]};
+break;
+case 103:
+ this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
+break;
+case 105:
+ this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
+break;
+case 106:
+ this.$ = {srchid:"CHILD"};
+break;
+case 107:
+ this.$ = {srchid:"VERTEX"};
+break;
+case 108:
+ this.$ = {srchid:"EDGE"};
+break;
+case 109:
+ this.$ = {srchid:"REF"};
+break;
+case 110:
+ this.$ = {srchid:"SHARP", args:[$$[$0]]};
+break;
+case 111:
+ this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
+break;
+case 112:
+ this.$ = {srchid:"ATTR"};
+break;
+case 113:
+ this.$ = {srchid:"OUT"};
+break;
+case 114:
+ this.$ = {srchid:"IN"};
+break;
+case 115:
+ this.$ = {srchid:"OUTOUT"};
+break;
+case 116:
+ this.$ = {srchid:"ININ"};
+break;
+case 117:
+ this.$ = {srchid:"CONTENT"};
+break;
+case 118:
+ this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
+break;
+case 119:
+ this.$ = {srchid:"AT", args:[$$[$0]]};
+break;
+case 120:
+ this.$ = {srchid:"AS", args:[$$[$0]]};
+break;
+case 121:
+ this.$ = {srchid:"SET", args:$$[$0-1]};
+break;
+case 122:
+ this.$ = {selid:"TO", args:[$$[$0]]};
+break;
+case 123:
+ this.$ = {srchid:"VALUE"};
+break;
+case 124:
+ this.$ = {srchid:"ROW", args:$$[$0-1]};
+break;
+case 125:
+ this.$ = {srchid:"CLASS", args:[$$[$0]]};
+break;
+case 126:
+ this.$ = {selid:$$[$0],args:[$$[$0-1]] };
+break;
+case 127:
+ this.$ = {selid:"NOT",args:$$[$0-1] };
+break;
+case 128:
+ this.$ = {selid:"IF",args:$$[$0-1] };
+break;
+case 129:
+ this.$ = {selid:$$[$0-3],args:$$[$0-1] };
+break;
+case 130:
+ this.$ = {selid:'DISTINCT',args:$$[$0-1] };
+break;
+case 131:
+ this.$ = {selid:'UNION',args:$$[$0-1] };
+break;
+case 132:
+ this.$ = {selid:'UNIONALL',args:$$[$0-1] };
+break;
+case 133:
+ this.$ = {selid:'ALL',args:[$$[$0-1]] };
+break;
+case 134:
+ this.$ = {selid:'ANY',args:[$$[$0-1]] };
+break;
+case 135:
+ this.$ = {selid:'INTERSECT',args:$$[$0-1] };
+break;
+case 136:
+ this.$ = {selid:'EXCEPT',args:$$[$0-1] };
+break;
+case 137:
+ this.$ = {selid:'AND',args:$$[$0-1] };
+break;
+case 138:
+ this.$ = {selid:'OR',args:$$[$0-1] };
+break;
+case 139:
+ this.$ = {selid:'PATH',args:[$$[$0-1]] };
+break;
+case 140:
+ this.$ = {srchid:'RETURN',args:$$[$0-1] };
+break;
+case 141:
+ this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] };
+break;
+case 142:
+ this.$ = $$[$0-2]; this.$.push($$[$0]);
+break;
+case 144:
+ this.$ = "PLUS";
+break;
+case 145:
+ this.$ = "STAR";
+break;
+case 146:
+ this.$ = "QUESTION";
+break;
+case 148:
+ this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]);
+break;
+case 149:
+ this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
+break;
+case 150:
+ this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
+break;
+case 151:
+
+ if(!$$[$0]) {
+ this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
+ } else {
+ this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
+ }
+
+break;
+case 152:
+ if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]};
+break;
+case 153:
+ this.$ = {modifier:'VALUE'}
+break;
+case 154:
+ this.$ = {modifier:'ROW'}
+break;
+case 155:
+ this.$ = {modifier:'COLUMN'}
+break;
+case 156:
+ this.$ = {modifier:'MATRIX'}
+break;
+case 157:
+ this.$ = {modifier:'TEXTSTRING'}
+break;
+case 158:
+ this.$ = {modifier:'INDEX'}
+break;
+case 159:
+ this.$ = {modifier:'RECORDSET'}
+break;
+case 160:
+ this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)};
+break;
+case 161:
+ this.$ = {top: $$[$0-1]};
+break;
+case 163: case 330: case 523: case 524: case 724:
+this.$ = undefined;
+break;
+case 164: case 165: case 166: case 167:
+this.$ = {into: $$[$0]}
+break;
+case 168:
+
+ var s = $$[$0];
+ s = s.substr(1,s.length-2);
+ var x3 = s.substr(-3).toUpperCase();
+ var x4 = s.substr(-4).toUpperCase();
+ if(s[0] == '#') {
+ this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
+ this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ } else if(x4=='XLSX' || x4 == 'JSON') {
+ this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ }
+
+break;
+case 169:
+ this.$ = { from: $$[$0] };
+break;
+case 170:
+ this.$ = { from: $$[$0-1], joins: $$[$0] };
+break;
+case 171:
+ this.$ = { from: $$[$0-2], joins: $$[$0-1] };
+break;
+case 173:
+ this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]});
+break;
+case 174:
+ this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]});
+break;
+case 175:
+ this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]});
+break;
+case 176:
+ this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]});
+break;
+case 178: case 243: case 452: case 530: case 531:
+ this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
+break;
+case 179:
+ this.$ = $$[$0-2]; this.$.as = $$[$0]
+break;
+case 180:
+ this.$ = $$[$0-3]; this.$.as = $$[$0]
+break;
+case 181:
+ this.$ = $$[$0-1]; this.$.as = 'default'
+break;
+case 182:
+ this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0]
+break;
+case 183:
+ this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
+break;
+case 184:
+ this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
+break;
+case 186: case 638: case 641:
+ this.$ = $$[$0-2];
+break;
+case 187: case 191: case 195: case 198:
+ this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
+break;
+case 188: case 192: case 196: case 199:
+ this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
+break;
+case 189: case 190: case 194: case 197:
+ this.$ = $$[$0]; $$[$0].as = 'default';
+break;
+case 193:
+ this.$ = {inserted:true}; /*$$[$0].as = 'default'*/;
+break;
+case 200:
+
+ var s = $$[$0];
+ s = s.substr(1,s.length-2);
+ var x3 = s.substr(-3).toUpperCase();
+ var x4 = s.substr(-4).toUpperCase();
+ var r;
+ if(s[0] == '#') {
+ r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
+ r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else if(x4=='XLSX' || x4 == 'JSON') {
+ r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else {
+ throw new Error('Unknown string in FROM clause');
+ };
+ this.$ = r;
+
+break;
+case 201:
+
+ if($$[$0-2] == 'INFORMATION_SCHEMA') {
+ this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});
+ } else {
+ this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});
+ }
+
+break;
+case 202:
+ this.$ = new yy.Table({tableid: $$[$0]});
+break;
+case 203: case 204:
+ this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
+break;
+case 207:
+ this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
+break;
+case 208:
+ this.$ = {table: $$[$0]};
+break;
+case 209:
+ this.$ = {table: $$[$0-1], as: $$[$0] } ;
+break;
+case 210:
+ this.$ = {table: $$[$0-2], as: $$[$0] } ;
+break;
+case 211:
+ this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})};
+break;
+case 212:
+ this.$ = {param: $$[$0-1], as: $$[$0] } ;
+break;
+case 213:
+ this.$ = {param: $$[$0-2], as: $$[$0] } ;
+break;
+case 214:
+ this.$ = {select: $$[$0-2], as: $$[$0]} ;
+break;
+case 215:
+ this.$ = {select: $$[$0-3], as: $$[$0] } ;
+break;
+case 216:
+ this.$ = {func:$$[$0], as:'default'};
+break;
+case 217:
+ this.$ = {func:$$[$0-1], as: $$[$0]};
+break;
+case 218:
+ this.$ = {func:$$[$0-2], as: $$[$0]};
+break;
+case 219:
+ this.$ = {variable:$$[$0],as:'default'};
+break;
+case 220:
+ this.$ = {variable:$$[$0-1],as:$$[$0]};
+break;
+case 221:
+ this.$ = {variable:$$[$0-2],as:$$[$0]}
+break;
+case 222:
+ this.$ = { joinmode: $$[$0] } ;
+break;
+case 223:
+ this.$ = {joinmode: $$[$0-1], natural:true} ;
+break;
+case 224: case 225:
+ this.$ = "INNER";
+break;
+case 226: case 227:
+ this.$ = "LEFT";
+break;
+case 228: case 229:
+ this.$ = "RIGHT";
+break;
+case 230: case 231:
+ this.$ = "OUTER";
+break;
+case 232:
+ this.$ = "SEMI";
+break;
+case 233:
+ this.$ = "ANTI";
+break;
+case 234:
+ this.$ = "CROSS";
+break;
+case 235:
+ this.$ = {on: $$[$0]};
+break;
+case 236: case 697:
+ this.$ = {using: $$[$0]};
+break;
+case 239:
+ this.$ = {where: new yy.Expression({expression:$$[$0]})};
+break;
+case 241:
+ this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
+break;
+case 244:
+ this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
+break;
+case 245:
+ this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
+break;
+case 246:
+ this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
+break;
+case 249:
+ this.$ = {having:$$[$0]}
+break;
+case 251:
+ this.$ = {union: $$[$0]} ;
+break;
+case 252:
+ this.$ = {unionall: $$[$0]} ;
+break;
+case 253:
+ this.$ = {except: $$[$0]} ;
+break;
+case 254:
+ this.$ = {intersect: $$[$0]} ;
+break;
+case 255:
+ this.$ = {union: $$[$0], corresponding:true} ;
+break;
+case 256:
+ this.$ = {unionall: $$[$0], corresponding:true} ;
+break;
+case 257:
+ this.$ = {except: $$[$0], corresponding:true} ;
+break;
+case 258:
+ this.$ = {intersect: $$[$0], corresponding:true} ;
+break;
+case 260:
+ this.$ = {order:$$[$0]}
+break;
+case 262:
+ this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
+break;
+case 263:
+ this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
+break;
+case 264:
+ this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
+break;
+case 265:
+ this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
+break;
+case 266:
+ this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
+break;
+case 268:
+ this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]);
+break;
+case 269:
+ this.$ = {limit:$$[$0-2],offset:$$[$0-6]};
+break;
+case 271:
+ this.$ = {offset:$$[$0]};
+break;
+case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688:
+ $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
+break;
+case 274: case 276: case 278:
+ $$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
+break;
+case 275: case 277: case 279:
+ $$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
+break;
+case 281:
+ this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
+break;
+case 282:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
+break;
+case 283:
+ this.$ = new yy.Column({columnid:$$[$0]});
+break;
+case 284:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
+break;
+case 285: case 286:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
+break;
+case 287:
+ this.$ = new yy.Column({columnid: $$[$0]});
+break;
+case 302:
+ this.$ = new yy.DomainValueValue();
+break;
+case 303:
+ this.$ = new yy.Json({value:$$[$0]});
+break;
+case 306: case 307: case 308:
+
+ if(!yy.queries) yy.queries = [];
+ yy.queries.push($$[$0-1]);
+ $$[$0-1].queriesidx = yy.queries.length;
+ this.$ = $$[$0-1];
+
+break;
+case 309:
+this.$ = $$[$0]
+break;
+case 310:
+ this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
+break;
+case 311:
+ this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 312:
+ this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 313:
+ this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 314:
+ this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
+break;
+case 315:
+ this.$ = $$[$0]; yy.extend(this.$,{newid:true});
+break;
+case 316:
+ this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
+break;
+case 317:
+ this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
+break;
+case 318:
+ this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
+break;
+case 319:
+ this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
+break;
+case 326:
+ this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
+break;
+case 327:
+
+ if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {
+ this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});
+ } else {
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});
+ }
+
+break;
+case 328:
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
+break;
+case 329:
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
+ over:$$[$0]});
+break;
+case 331: case 332:
+ this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
+break;
+case 333:
+ this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
+break;
+case 334:
+ this.$ = {partition:$$[$0]};
+break;
+case 335:
+ this.$ = {order:$$[$0]};
+break;
+case 336:
+ this.$ = "SUM";
+break;
+case 337:
+ this.$ = "COUNT";
+break;
+case 338:
+ this.$ = "MIN";
+break;
+case 339: case 544:
+ this.$ = "MAX";
+break;
+case 340:
+ this.$ = "AVG";
+break;
+case 341:
+ this.$ = "FIRST";
+break;
+case 342:
+ this.$ = "LAST";
+break;
+case 343:
+ this.$ = "AGGR";
+break;
+case 344:
+ this.$ = "ARRAY";
+break;
+case 345:
+
+ var funcid = $$[$0-4];
+ var exprlist = $$[$0-1];
+ if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
+ this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
+ } else if(alasql.aggr[$$[$0-4]]) {
+ this.$ = new yy.AggrValue({aggregatorid: 'REDUCE',
+ funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });
+ } else {
+ this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
+ };
+
+break;
+case 346:
+ this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
+break;
+case 347:
+ this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] })
+break;
+case 348:
+ this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] })
+break;
+case 349:
+ this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
+break;
+case 350:
+ this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
+break;
+case 351:
+ this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
+break;
+case 352:
+ this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
+break;
+case 353:
+ this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]});
+break;
+case 355:
+ $$[$0-2].push($$[$0]); this.$ = $$[$0-2]
+break;
+case 356:
+ this.$ = new yy.NumValue({value:+$$[$0]});
+break;
+case 357:
+ this.$ = new yy.LogicValue({value:true});
+break;
+case 358:
+ this.$ = new yy.LogicValue({value:false});
+break;
+case 359:
+ this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
+break;
+case 360:
+ this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
+break;
+case 361:
+ this.$ = new yy.NullValue({value:undefined});
+break;
+case 362:
+ this.$ = new yy.VarValue({variable:$$[$0]});
+break;
+case 363:
+
+ if(!yy.exists) yy.exists = [];
+ this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
+ yy.exists.push($$[$0-1]);
+
+break;
+case 364:
+ this.$ = new yy.ArrayValue({value:$$[$0-1]});
+break;
+case 365: case 366:
+ this.$ = new yy.ParamValue({param: $$[$0]});
+break;
+case 367:
+
+ if(typeof yy.question == 'undefined') yy.question = 0;
+ this.$ = new yy.ParamValue({param: yy.question++});
+
+break;
+case 368:
+
+ if(typeof yy.question == 'undefined') yy.question = 0;
+ this.$ = new yy.ParamValue({param: yy.question++, array:true});
+
+break;
+case 369:
+ this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
+break;
+case 370:
+ this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
+break;
+case 371: case 699: case 700:
+ this.$ = $$[$0-1]; this.$.push($$[$0]);
+break;
+case 373:
+ this.$ = {when: $$[$0-2], then: $$[$0] };
+break;
+case 376: case 377:
+ this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]});
+break;
+case 378:
+ this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]});
+break;
+case 379:
+ this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
+break;
+case 380:
+ this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]});
+break;
+case 381:
+ this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] });
+break;
+case 382:
+ this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] });
+break;
+case 383:
+ this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]});
+break;
+case 384:
+ this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]});
+break;
+case 385:
+ this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]});
+break;
+case 386:
+ this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]});
+break;
+case 387:
+ this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]});
+break;
+case 388:
+ this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
+break;
+case 389:
+ this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
+break;
+case 390:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]});
+break;
+case 391:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]});
+break;
+case 392:
+ this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]});
+break;
+case 393:
+ this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]});
+break;
+case 394: case 395: case 397:
+ this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
+break;
+case 396:
+ this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
+break;
+case 398: case 399: case 401:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
+break;
+case 400:
+ this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
+break;
+case 402:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]});
+break;
+case 403:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]});
+break;
+case 404:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]});
+break;
+case 405:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]});
+break;
+case 406:
+ this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]});
+break;
+case 407:
+ this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
+break;
+case 408:
+ this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]});
+break;
+case 409:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]});
+break;
+case 410:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]});
+break;
+case 411:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]});
+break;
+case 412:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 413:
+
+ this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});
+
+break;
+case 414:
+
+ if($$[$0-2].op == 'BETWEEN1') {
+
+ if($$[$0-2].left.op == 'AND') {
+ this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
+ new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]})
+ });
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]});
+ }
+
+ } else if($$[$0-2].op == 'NOT BETWEEN1') {
+ if($$[$0-2].left.op == 'AND') {
+ this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
+ new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]})
+ });
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]});
+ }
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});
+ }
+
+break;
+case 415:
+ this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]});
+break;
+case 416:
+ this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]});
+break;
+case 417:
+ this.$ = new yy.UniOp({op:'-' , right:$$[$0]});
+break;
+case 418:
+ this.$ = new yy.UniOp({op:'+' , right:$$[$0]});
+break;
+case 419:
+ this.$ = new yy.UniOp({op:'~' , right:$$[$0]});
+break;
+case 420:
+ this.$ = new yy.UniOp({op:'#' , right:$$[$0]});
+break;
+case 421:
+ this.$ = new yy.UniOp({right: $$[$0-1]});
+break;
+case 422:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 423:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 424:
+ this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]});
+break;
+case 425:
+ this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]});
+break;
+case 426:
+ this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]});
+break;
+case 427:
+ this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]});
+break;
+case 428: case 430:
+ this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]});
+break;
+case 429: case 431:
+ this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]});
+break;
+case 432:
+
+/* var expr = $$[$0];
+ if(expr.left && expr.left.op == 'AND') {
+ this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });
+ } else {
+*/
+ this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] });
+
+break;
+case 433:
+
+ this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] });
+
+break;
+case 434:
+ this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]});
+break;
+case 435:
+
+ this.$ = new yy.Op({
+ op:'IS',
+ left:$$[$0-2],
+ right: new yy.UniOp({
+ op:'NOT',
+ right:new yy.NullValue({value:undefined})
+ })
+ });
+
+break;
+case 436:
+ this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ;
+break;
+case 437: case 438:
+ this.$ = $$[$0];
+break;
+case 439:
+ this.$ = $$[$0-1];
+break;
+case 446:
+ this.$ = 'ALL';
+break;
+case 447:
+ this.$ = 'SOME';
+break;
+case 448:
+ this.$ = 'ANY';
+break;
+case 449:
+ this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]});
+break;
+case 450:
+ this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]});
+break;
+case 453:
+ this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]})
+break;
+case 454:
+ this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]})
+break;
+case 455:
+ this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]});
+break;
+case 456:
+ this.$ = new yy.Delete({table:$$[$0]});
+break;
+case 457:
+ this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]});
+break;
+case 458:
+ this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]});
+break;
+case 459: case 461:
+ this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true});
+break;
+case 460: case 462:
+ this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true});
+break;
+case 463:
+ this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ;
+break;
+case 464:
+ this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]});
+break;
+case 465:
+ this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]});
+break;
+case 466:
+ this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]});
+break;
+case 467:
+ this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true});
+break;
+case 468:
+ this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]});
+break;
+case 473:
+ this.$ = [$$[$0-1]];
+break;
+case 476:
+this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1])
+break;
+case 477: case 478: case 480: case 488:
+this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
+break;
+case 489:
+
+ this.$ = new yy.CreateTable({table:$$[$0-4]});
+ yy.extend(this.$,$$[$0-7]);
+ yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-5]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 490:
+
+ this.$ = new yy.CreateTable({table:$$[$0]});
+ yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,$$[$0-1]);
+
+break;
+case 492:
+ this.$ = {class:true};
+break;
+case 502:
+ this.$ = {temporary:true};
+break;
+case 504:
+ this.$ = {ifnotexists: true};
+break;
+case 505:
+ this.$ = {columns: $$[$0-2], constraints: $$[$0]};
+break;
+case 506:
+ this.$ = {columns: $$[$0]};
+break;
+case 507:
+ this.$ = {as: $$[$0]}
+break;
+case 508: case 532:
+ this.$ = [$$[$0]];
+break;
+case 510: case 511: case 512: case 513: case 514:
+ $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0];
+break;
+case 517:
+ this.$ = {type: 'CHECK', expression: $$[$0-1]};
+break;
+case 518:
+ this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
+break;
+case 519:
+ this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]};
+break;
+case 525:
+
+ this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
+
+break;
+case 534:
+ this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
+break;
+case 535:
+ this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]);
+break;
+case 536:
+ this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''});
+break;
+case 537:
+ this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]}
+break;
+case 538:
+ this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]}
+break;
+case 539:
+ this.$ = {dbtypeid: $$[$0]}
+break;
+case 540:
+ this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]}
+break;
+case 541:
+ this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']';
+break;
+case 543: case 750:
+ this.$ = +$$[$0];
+break;
+case 545:
+this.$ = undefined
+break;
+case 547:
+
+ yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1];
+
+break;
+case 550:
+this.$ = {primarykey:true};
+break;
+case 551: case 552:
+this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}};
+break;
+case 553:
+ this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}}
+break;
+case 554:
+ this.$ = {identity: {value:1,step:1}}
+break;
+case 555: case 557:
+this.$ = {"default":$$[$0]};
+break;
+case 556:
+this.$ = {"default":$$[$0-1]};
+break;
+case 558:
+this.$ = {null:true};
+break;
+case 559:
+this.$ = {notnull:true};
+break;
+case 560:
+this.$ = {check:$$[$0]};
+break;
+case 561:
+this.$ = {unique:true};
+break;
+case 562:
+this.$ = {"onupdate":$$[$0]};
+break;
+case 563:
+this.$ = {"onupdate":$$[$0-1]};
+break;
+case 564:
+ this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]);
+break;
+case 568:
+ this.$ = {ifexists: true};
+break;
+case 569:
+ this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]});
+break;
+case 570:
+ this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]});
+break;
+case 571:
+ this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]});
+break;
+case 572:
+ this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]});
+break;
+case 573:
+ this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]});
+break;
+case 574:
+ this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]});
+break;
+case 575:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() });
+break;
+case 576:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] });
+break;
+case 577:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] });
+break;
+case 578:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]});
+break;
+case 579:
+ this.$ = new yy.DetachDatabase({databaseid:$$[$0]});
+break;
+case 580:
+ this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]);
+break;
+case 581:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]);
+break;
+case 582:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]);
+break;
+case 583:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),
+ as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]);
+break;
+case 584:
+this.$ = undefined;
+break;
+case 586: case 587:
+ this.$ = new yy.UseDatabase({databaseid: $$[$0] });
+break;
+case 588:
+ this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]);
+break;
+case 589: case 590:
+ this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]);
+break;
+case 591:
+ this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]})
+break;
+case 592:
+ this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true})
+break;
+case 593:
+ this.$ = new yy.DropIndex({indexid:$$[$0]});
+break;
+case 594:
+ this.$ = new yy.ShowDatabases();
+break;
+case 595:
+ this.$ = new yy.ShowDatabases({like:$$[$0]});
+break;
+case 596:
+ this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() });
+break;
+case 597:
+ this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]});
+break;
+case 598:
+ this.$ = new yy.ShowTables();
+break;
+case 599:
+ this.$ = new yy.ShowTables({like:$$[$0]});
+break;
+case 600:
+ this.$ = new yy.ShowTables({databaseid: $$[$0]});
+break;
+case 601:
+ this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]});
+break;
+case 602:
+ this.$ = new yy.ShowColumns({table: $$[$0]});
+break;
+case 603:
+ this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]});
+break;
+case 604:
+ this.$ = new yy.ShowIndex({table: $$[$0]});
+break;
+case 605:
+ this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]});
+break;
+case 606:
+ this.$ = new yy.ShowCreateTable({table: $$[$0]});
+break;
+case 607:
+ this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]});
+break;
+case 608:
+
+ this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]});
+ yy.extend(this.$,$$[$0-9]);
+ yy.extend(this.$,$$[$0-7]);
+
+break;
+case 609:
+
+ this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]});
+ yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-4]);
+
+break;
+case 613:
+ this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]);
+break;
+case 614: case 760:
+ this.$ = new yy.ExpressionStatement({expression:$$[$0]});
+break;
+case 615:
+ this.$ = new yy.Source({url:$$[$0].value});
+break;
+case 616:
+ this.$ = new yy.Assert({value:$$[$0]});
+break;
+case 617:
+ this.$ = new yy.Assert({value:$$[$0].value});
+break;
+case 618:
+ this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]});
+break;
+case 620: case 631: case 633:
+ this.$ = $$[$0].value;
+break;
+case 621: case 629:
+ this.$ = +$$[$0].value;
+break;
+case 622:
+ this.$ = (!!$$[$0].value);
+break;
+case 630:
+ this.$ = ""+$$[$0].value;
+break;
+case 639:
+ this.$ = {};
+break;
+case 642:
+ this.$ = [];
+break;
+case 643:
+ yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2];
+break;
+case 645:
+ this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0];
+break;
+case 646: case 647:
+ this.$ = {}; this.$[$$[$0-2]] = $$[$0];
+break;
+case 650:
+ this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]});
+break;
+case 651:
+ this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]});
+break;
+case 652:
+ this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]});
+break;
+case 653:
+ this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]});
+break;
+case 654:
+ this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]});
+break;
+case 655:
+ this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]});
+break;
+case 656:
+this.$ = '@';
+break;
+case 657:
+this.$ = '$';
+break;
+case 663:
+ this.$ = true;
+break;
+case 664:
+ this.$ = false;
+break;
+case 665:
+ this.$ = new yy.CommitTransaction();
+break;
+case 666:
+ this.$ = new yy.RollbackTransaction();
+break;
+case 667:
+ this.$ = new yy.BeginTransaction();
+break;
+case 668:
+ this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]});
+ if($$[$0-1].exists) this.$.exists = $$[$0-1].exists;
+ if($$[$0-1].queries) this.$.queries = $$[$0-1].queries;
+
+break;
+case 669:
+
+ this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 670:
+this.$ = $$[$0];
+break;
+case 671:
+ this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 672:
+ this.$ = new yy.Continue();
+break;
+case 673:
+ this.$ = new yy.Break();
+break;
+case 674:
+ this.$ = new yy.BeginEnd({statements:$$[$0-1]});
+break;
+case 675:
+ this.$ = new yy.Print({exprs:$$[$0]});
+break;
+case 676:
+ this.$ = new yy.Print({select:$$[$0]});
+break;
+case 677:
+ this.$ = new yy.Require({paths:$$[$0]});
+break;
+case 678:
+ this.$ = new yy.Require({plugins:$$[$0]});
+break;
+case 679: case 680:
+this.$ = $$[$0].toUpperCase();
+break;
+case 681:
+ this.$ = new yy.Echo({expr:$$[$0]});
+break;
+case 686:
+ this.$ = new yy.Declare({declares:$$[$0]});
+break;
+case 689:
+ this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]);
+break;
+case 690:
+ this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]);
+break;
+case 691:
+ this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
+break;
+case 692:
+ this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
+break;
+case 693:
+ this.$ = new yy.TruncateTable({table:$$[$0]});
+break;
+case 694:
+
+ this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);
+
+break;
+case 695: case 696:
+ this.$ = {into: $$[$0]};
+break;
+case 698:
+ this.$ = {on:$$[$0]};
+break;
+case 703:
+ this.$ = {matched:true, action:$$[$0]}
+break;
+case 704:
+ this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]}
+break;
+case 705:
+ this.$ = {delete:true};
+break;
+case 706:
+ this.$ = {update:$$[$0]};
+break;
+case 707: case 708:
+ this.$ = {matched:false, bytarget: true, action:$$[$0]}
+break;
+case 709: case 710:
+ this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]}
+break;
+case 711:
+ this.$ = {matched:false, bysource: true, action:$$[$0]}
+break;
+case 712:
+ this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]}
+break;
+case 713:
+ this.$ = {insert:true, values:$$[$0]};
+break;
+case 714:
+ this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]};
+break;
+case 715:
+ this.$ = {insert:true, defaultvalues:true};
+break;
+case 716:
+ this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]};
+break;
+case 718:
+ this.$ = {output:{columns:$$[$0]}}
+break;
+case 719:
+ this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}}
+break;
+case 720:
+ this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}}
+break;
+case 721:
+ this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}}
+break;
+case 722:
+
+ this.$ = new yy.CreateVertex({class:$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]});
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 725:
+ this.$ = {sets:$$[$0]};
+break;
+case 726:
+ this.$ = {content:$$[$0]};
+break;
+case 727:
+ this.$ = {select:$$[$0]};
+break;
+case 728:
+
+ this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]});
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 729:
+ this.$ = new yy.CreateGraph({graph:$$[$0]});
+break;
+case 730:
+ this.$ = new yy.CreateGraph({from:$$[$0]});
+break;
+case 733:
+
+ this.$ = $$[$0-2];
+ if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]});
+ if($$[$0]) this.$.as = $$[$0];
+
+break;
+case 734:
+
+ this.$ = {source:$$[$0-6], target: $$[$0]};
+ if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]});
+ if($$[$0-2]) this.$.as = $$[$0-2];
+ yy.extend(this.$,$$[$0-4]);
+
+break;
+case 735:
+
+ this.$ = {source:$$[$0-5], target: $$[$0]};
+ if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]});
+ if($$[$0-1]) this.$.as = $$[$0-2];
+
+break;
+case 736:
+
+ this.$ = {source:$$[$0-2], target: $$[$0]};
+
+break;
+case 740:
+ this.$ = {vars:$$[$0], method:$$[$0-1]};
+break;
+case 743: case 744:
+
+ var s3 = $$[$0-1];
+ this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), class:$$[$0]};
+
+break;
+case 745:
+
+ var s2 = $$[$0-1];
+ this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), class:$$[$0]};
+
+break;
+case 746:
+
+ var s1 = $$[$0-1];
+ this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), class:$$[$0]};
+
+break;
+case 747:
+
+ this.$ = {class:$$[$0]};
+
+break;
+case 753:
+ this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]});
+break;
+case 754:
+ this.$ = new yy.AddRule({right:$$[$0]});
+break;
+case 757:
+ this.$ = new yy.Term({termid:$$[$0]});
+break;
+case 758:
+ this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]});
+break;
+case 761:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 762:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]});
+
+break;
+case 763:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 764: case 765: case 767:
+ this.$ = 'AFTER';
+break;
+case 766:
+ this.$ = 'BEFORE';
+break;
+case 768:
+ this.$ = 'INSTEADOF';
+break;
+case 769:
+ this.$ = 'INSERT';
+break;
+case 770:
+ this.$ = 'DELETE';
+break;
+case 771:
+ this.$ = 'UPDATE';
+break;
+case 772:
+ this.$ = new yy.DropTrigger({trigger:$$[$0]});
+break;
+case 773:
+ this.$ = new yy.Reindex({indexid:$$[$0]});
+break;
+case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085:
+this.$ = [];
+break;
+case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086:
+$$[$0-1].push($$[$0]);
+break;
+case 1061: case 1063:
+this.$ = [$$[$0]];
+break;
+}
+},
+table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])],
+defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},
+parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+},
+parse: function parse(input) {
+ var self = this,
+ stack = [0],
+ tstack = [], // token stack
+ vstack = [null], // semantic value stack
+ lstack = [], // location stack
+ table = this.table,
+ yytext = '',
+ yylineno = 0,
+ yyleng = 0,
+ recovering = 0,
+ TERROR = 2,
+ EOF = 1;
+
+ var args = lstack.slice.call(arguments, 1);
+
+ //this.reductionCount = this.shiftCount = 0;
+
+ var lexer = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ // copy state
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+
+ lexer.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer;
+ sharedState.yy.parser = this;
+ if (typeof lexer.yylloc == 'undefined') {
+ lexer.yylloc = {};
+ }
+ var yyloc = lexer.yylloc;
+ lstack.push(yyloc);
+
+ var ranges = lexer.options && lexer.options.ranges;
+
+ if (typeof sharedState.yy.parseError === 'function') {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+
+ function popStack (n) {
+ stack.length = stack.length - 2 * n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+
+_token_stack:
+ var lex = function () {
+ var token;
+ token = lexer.lex() || EOF;
+ // if token isn't its numeric value, convert
+ if (typeof token !== 'number') {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+
+ var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ // retreive state number from top of stack
+ state = stack[stack.length - 1];
+
+ // use default actions if available
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == 'undefined') {
+ symbol = lex();
+ }
+ // read action for current state and first input
+ action = table[state] && table[state][symbol];
+ }
+
+_handle_error:
+ // handle parse error
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
+ var error_rule_depth;
+ var errStr = '';
+
+ // Return the rule stack depth where the nearest error rule can be found.
+ // Return FALSE when no error recovery rule was found.
+ var locateNearestErrorRecoveryRule = function(state) {
+ var stack_probe = stack.length - 1;
+ var depth = 0;
+
+ // try to recover from error
+ for(;;) {
+ // check for error recovery rule in this state
+ if ((TERROR.toString()) in table[state]) {
+ return depth;
+ }
+ if (state === 0 || stack_probe < 2) {
+ return false; // No suitable error recovery rule available.
+ }
+ stack_probe -= 2; // popStack(1): [symbol, action]
+ state = stack[stack_probe];
+ ++depth;
+ }
+ }
+
+ if (!recovering) {
+ // first see if there's any chance at hitting an error recovery rule:
+ error_rule_depth = locateNearestErrorRecoveryRule(state);
+
+ // Report error
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'"+this.terminals_[p]+"'");
+ }
+ }
+ if (lexer.showPosition) {
+ errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'";
+ } else {
+ errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
+ (symbol == EOF ? "end of input" :
+ ("'"+(this.terminals_[symbol] || symbol)+"'"));
+ }
+ this.parseError(errStr, {
+ text: lexer.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer.yylineno,
+ loc: yyloc,
+ expected: expected,
+ recoverable: (error_rule_depth !== false)
+ });
+ } else if (preErrorSymbol !== EOF) {
+ error_rule_depth = locateNearestErrorRecoveryRule(state);
+ }
+
+ // just recovered from another error
+ if (recovering == 3) {
+ if (symbol === EOF || preErrorSymbol === EOF) {
+ throw new Error(errStr || 'Parsing halted while starting to recover from another error.');
+ }
+
+ // discard current lookahead and grab another
+ yyleng = lexer.yyleng;
+ yytext = lexer.yytext;
+ yylineno = lexer.yylineno;
+ yyloc = lexer.yylloc;
+ symbol = lex();
+ }
+
+ // try to recover from error
+ if (error_rule_depth === false) {
+ throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');
+ }
+ popStack(error_rule_depth);
+
+ preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token
+ symbol = TERROR; // insert generic error symbol as new lookahead
+ state = stack[stack.length-1];
+ action = table[state] && table[state][TERROR];
+ recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
+ }
+
+ // this shouldn't happen, unless resolve defaults are off
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
+ }
+
+ switch (action[0]) {
+ case 1: // shift
+ //this.shiftCount++;
+
+ stack.push(symbol);
+ vstack.push(lexer.yytext);
+ lstack.push(lexer.yylloc);
+ stack.push(action[1]); // push state
+ symbol = null;
+ if (!preErrorSymbol) { // normal execution/no error
+ yyleng = lexer.yyleng;
+ yytext = lexer.yytext;
+ yylineno = lexer.yylineno;
+ yyloc = lexer.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ // error just occurred, resume old lookahead f/ before error
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+
+ case 2:
+ // reduce
+ //this.reductionCount++;
+
+ len = this.productions_[action[1]][1];
+
+ // perform semantic action
+ yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
+ // default location, uses first token for firsts, last for lasts
+ yyval._$ = {
+ first_line: lstack[lstack.length-(len||1)].first_line,
+ last_line: lstack[lstack.length-1].last_line,
+ first_column: lstack[lstack.length-(len||1)].first_column,
+ last_column: lstack[lstack.length-1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]];
+ }
+ r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
+
+ if (typeof r !== 'undefined') {
+ return r;
+ }
+
+ // pop off stack
+ if (len) {
+ stack = stack.slice(0,-1*len*2);
+ vstack = vstack.slice(0, -1*len);
+ lstack = lstack.slice(0, -1*len);
+ }
+
+ stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ // goto new state = table[STATE][NONTERMINAL]
+ newState = table[stack[stack.length-2]][stack[stack.length-1]];
+ stack.push(newState);
+ break;
+
+ case 3:
+ // accept
+ return true;
+ }
+
+ }
+
+ return true;
+}};
+
+// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
+// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText))
+
+var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"]
+
+parser.parseError = function(str, hash) {
+ if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) {
+ return
+ }
+ throw new SyntaxError(str)
+}
+/* generated by jison-lex 0.3.4 */
+var lexer = (function(){
+var lexer = ({
+
+EOF:1,
+
+parseError:function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+
+// resets the lexer, sets new input
+setInput:function (input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0,0];
+ }
+ this.offset = 0;
+ return this;
+ },
+
+// consumes and returns one char from the input
+input:function () {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+
+ this._input = this._input.slice(1);
+ return ch;
+ },
+
+// unshifts one char (or a string) into the input
+unput:function (ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ //this.yyleng -= len;
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ?
+ (lines.length === oldLines.length ? this.yylloc.first_column : 0)
+ + oldLines[oldLines.length - lines.length].length - lines[0].length :
+ this.yylloc.first_column - len
+ };
+
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+
+// When called from action, caches matched text and appends it on next action
+more:function () {
+ this._more = true;
+ return this;
+ },
+
+// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+reject:function () {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+
+ }
+ return this;
+ },
+
+// retain first n characters of the match
+less:function (n) {
+ this.unput(this.match.slice(n));
+ },
+
+// displays already matched input, i.e. for error messages
+pastInput:function () {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+ },
+
+// displays upcoming input, i.e. for error messages
+upcomingInput:function () {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20-next.length);
+ }
+ return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
+ },
+
+// displays the character position where the lexing error occurred, i.e. for error messages
+showPosition:function () {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+
+// test the lexed token: return FALSE when not a match, otherwise return token
+test_match:function (match, indexed_rule) {
+ var token,
+ lines,
+ backup;
+
+ if (this.options.backtrack_lexer) {
+ // save context
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ?
+ lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
+ this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ // recover context
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false; // rule action called reject() implying the next rule should be tested instead.
+ }
+ return false;
+ },
+
+// return next match in input
+next:function () {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+
+ var token,
+ match,
+ tempMatch,
+ index;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue; // rule action called reject() implying a rule MISmatch.
+ } else {
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+
+// return next match that has a token
+lex:function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+
+// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+begin:function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+
+// pop the previously active lexer condition state off the condition stack
+popState:function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+
+// produce the lexer rule set which is active for the currently active lexer condition state
+_currentRules:function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+
+// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+topState:function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+
+// alias for begin(condition)
+pushState:function pushState(condition) {
+ this.begin(condition);
+ },
+
+// return the number of states currently on the stack
+stateStackSize:function stateStackSize() {
+ return this.conditionStack.length;
+ },
+options: {"case-insensitive":true},
+performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+var YYSTATE=YY_START;
+switch($avoiding_name_collisions) {
+case 0:return 266
+break;
+case 1:return 302
+break;
+case 2:return 420
+break;
+case 3:return 299
+break;
+case 4:return 5
+break;
+case 5:return 5
+break;
+case 6:return 296
+break;
+case 7:return 296
+break;
+case 8:return 132
+break;
+case 9:return 132
+break;
+case 10:return /* its a COMMENT */
+break;
+case 11:/* skip whitespace */
+break;
+case 12:return 316
+break;
+case 13:return 319
+break;
+case 14:yy_.yytext = 'VALUE';return 89
+break;
+case 15:yy_.yytext = 'VALUE';return 189
+break;
+case 16:yy_.yytext = 'ROW';return 189
+break;
+case 17:yy_.yytext = 'COLUMN';return 189
+break;
+case 18:yy_.yytext = 'MATRIX';return 189
+break;
+case 19:yy_.yytext = 'INDEX';return 189
+break;
+case 20:yy_.yytext = 'RECORDSET';return 189
+break;
+case 21:yy_.yytext = 'TEXT';return 189
+break;
+case 22:yy_.yytext = 'SELECT';return 189
+break;
+case 23:return 520
+break;
+case 24:return 381
+break;
+case 25:return 402
+break;
+case 26:return 515
+break;
+case 27:return 287
+break;
+case 28:return 269
+break;
+case 29:return 269
+break;
+case 30:return 164
+break;
+case 31:return 400
+break;
+case 32:return 170
+break;
+case 33:return 229
+break;
+case 34:return 166
+break;
+case 35:return 207
+break;
+case 36:return 288
+break;
+case 37:return 76
+break;
+case 38:return 418
+break;
+case 39:return 242
+break;
+case 40:return 404
+break;
+case 41:return 356
+break;
+case 42:return 284
+break;
+case 43:return 514
+break;
+case 44:return 437
+break;
+case 45:return 330
+break;
+case 46:return 441
+break;
+case 47:return 331
+break;
+case 48:return 315
+break;
+case 49:return 119
+break;
+case 50:return 112
+break;
+case 51:return 315
+break;
+case 52:return 112
+break;
+case 53:return 315
+break;
+case 54:return 112
+break;
+case 55:return 315
+break;
+case 56:return 508
+break;
+case 57:return 303
+break;
+case 58:return 271
+break;
+case 59:return 368
+break;
+case 60:return 130
+break;
+case 61:return 'CLOSE'
+break;
+case 62:return 243
+break;
+case 63:return 190
+break;
+case 64:return 190
+break;
+case 65:return 434
+break;
+case 66:return 367
+break;
+case 67:return 470
+break;
+case 68:return 440
+break;
+case 69:return 273
+break;
+case 70:return 240
+break;
+case 71:return 281
+break;
+case 72:return 267
+break;
+case 73:return 206
+break;
+case 74:return 238
+break;
+case 75:return 265
+break;
+case 76:return 'CURSOR'
+break;
+case 77:return 405
+break;
+case 78:return 291
+break;
+case 79:return 292
+break;
+case 80:return 448
+break;
+case 81:return 343
+break;
+case 82:return 338
+break;
+case 83:return 'DELETED'
+break;
+case 84:return 242
+break;
+case 85:return 406
+break;
+case 86:return 185
+break;
+case 87:return 396
+break;
+case 88:return 447
+break;
+case 89:return 135
+break;
+case 90:return 306
+break;
+case 91:return 389
+break;
+case 92:return 310
+break;
+case 93:return 314
+break;
+case 94:return 169
+break;
+case 95:return 508
+break;
+case 96:return 508
+break;
+case 97:return 298
+break;
+case 98:return 14
+break;
+case 99:return 295
+break;
+case 100:return 249
+break;
+case 101:return 285
+break;
+case 102:return 95
+break;
+case 103:return 373
+break;
+case 104:return 183
+break;
+case 105:return 227
+break;
+case 106:return 268
+break;
+case 107:return 313
+break;
+case 108:return 602
+break;
+case 109:return 472
+break;
+case 110:return 232
+break;
+case 111:return 236
+break;
+case 112:return 239
+break;
+case 113:return 156
+break;
+case 114:return 356
+break;
+case 115:return 332
+break;
+case 116:return 99
+break;
+case 117:return 193
+break;
+case 118:return 212
+break;
+case 119:return 224
+break;
+case 120:return 516
+break;
+case 121:return 339
+break;
+case 122:return 213
+break;
+case 123:return 168
+break;
+case 124:return 293
+break;
+case 125:return 198
+break;
+case 126:return 223
+break;
+case 127:return 370
+break;
+case 128:return 286
+break;
+case 129:return 'LET'
+break;
+case 130:return 225
+break;
+case 131:return 112
+break;
+case 132:return 245
+break;
+case 133:return 460
+break;
+case 134:return 191
+break;
+case 135:return 283
+break;
+case 136:return 390
+break;
+case 137:return 282
+break;
+case 138:return 452
+break;
+case 139:return 169
+break;
+case 140:return 403
+break;
+case 141:return 222
+break;
+case 142:return 645
+break;
+case 143:return 270
+break;
+case 144:return 244
+break;
+case 145:return 380
+break;
+case 146:return 154
+break;
+case 147:return 297
+break;
+case 148:return 433
+break;
+case 149:return 230
+break;
+case 150:return 415
+break;
+case 151:return 129
+break;
+case 152:return 247
+break;
+case 153:return 'OPEN'
+break;
+case 154:return 416
+break;
+case 155:return 171
+break;
+case 156:return 118
+break;
+case 157:return 208
+break;
+case 158:return 276
+break;
+case 159:return 172
+break;
+case 160:return 279
+break;
+case 161:return 765
+break;
+case 162:return 93
+break;
+case 163:return 16
+break;
+case 164:return 369
+break;
+case 165:return 442
+break;
+case 166:return 678
+break;
+case 167:return 15
+break;
+case 168:return 414
+break;
+case 169:return 194
+break;
+case 170:return 'REDUCE'
+break;
+case 171:return 374
+break;
+case 172:return 311
+break;
+case 173:return 517
+break;
+case 174:return 682
+break;
+case 175:return 107
+break;
+case 176:return 401
+break;
+case 177:return 175
+break;
+case 178:return 290
+break;
+case 179:return 443
+break;
+case 180:return 687
+break;
+case 181:return 173
+break;
+case 182:return 173
+break;
+case 183:return 226
+break;
+case 184:return 436
+break;
+case 185:return 237
+break;
+case 186:return 150
+break;
+case 187:return 766
+break;
+case 188:return 405
+break;
+case 189:return 89
+break;
+case 190:return 228
+break;
+case 191:return 146
+break;
+case 192:return 146
+break;
+case 193:return 409
+break;
+case 194:return 334
+break;
+case 195:return 417
+break;
+case 196:return 'STRATEGY'
+break;
+case 197:return 'STORE'
+break;
+case 198:return 280
+break;
+case 199:return 353
+break;
+case 200:return 353
+break;
+case 201:return 463
+break;
+case 202:return 357
+break;
+case 203:return 357
+break;
+case 204:return 192
+break;
+case 205:return 309
+break;
+case 206:return 'TIMEOUT'
+break;
+case 207:return 148
+break;
+case 208:return 195
+break;
+case 209:return 435
+break;
+case 210:return 435
+break;
+case 211:return 509
+break;
+case 212:return 294
+break;
+case 213:return 451
+break;
+case 214:return 162
+break;
+case 215:return 187
+break;
+case 216:return 98
+break;
+case 217:return 335
+break;
+case 218:return 408
+break;
+case 219:return 231
+break;
+case 220:return 149
+break;
+case 221:return 344
+break;
+case 222:return 134
+break;
+case 223:return 410
+break;
+case 224:return 308
+break;
+case 225:return 128
+break;
+case 226:return 439
+break;
+case 227:return 72
+break;
+case 228:return 435 /* Is this keyword required? */
+break;
+case 229:return 131
+break;
+case 230:return 131
+break;
+case 231:return 115
+break;
+case 232:return 137
+break;
+case 233:return 179
+break;
+case 234:return 317
+break;
+case 235:return 180
+break;
+case 236:return 133
+break;
+case 237:return 138
+break;
+case 238:return 326
+break;
+case 239:return 323
+break;
+case 240:return 325
+break;
+case 241:return 322
+break;
+case 242:return 320
+break;
+case 243:return 318
+break;
+case 244:return 319
+break;
+case 245:return 142
+break;
+case 246:return 141
+break;
+case 247:return 139
+break;
+case 248:return 321
+break;
+case 249:return 324
+break;
+case 250:return 140
+break;
+case 251:return 124
+break;
+case 252:return 324
+break;
+case 253:return 77
+break;
+case 254:return 78
+break;
+case 255:return 145
+break;
+case 256:return 424
+break;
+case 257:return 426
+break;
+case 258:return 300
+break;
+case 259:return 505
+break;
+case 260:return 507
+break;
+case 261:return 122
+break;
+case 262:return 116
+break;
+case 263:return 74
+break;
+case 264:return 333
+break;
+case 265:return 152
+break;
+case 266:return 764
+break;
+case 267:return 143
+break;
+case 268:return 181
+break;
+case 269:return 136
+break;
+case 270:return 123
+break;
+case 271:return 312
+break;
+case 272:return 4
+break;
+case 273:return 10
+break;
+case 274:return 'INVALID'
+break;
+}
+},
+rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],
+conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}}
+});
+return lexer;
+})();
+parser.lexer = lexer;
+function Parser () {
+ this.yy = {};
+}
+Parser.prototype = parser;parser.Parser = Parser;
+return new Parser;
+})();
+
+if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
+exports.parser = alasqlparser;
+exports.Parser = alasqlparser.Parser;
+exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); };
+exports.main = function commonjsMain(args) {
+ if (!args[1]) {
+ console.log('Usage: '+args[0]+' FILE');
+ process.exit(1);
+ }
+ var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
+ return exports.parser.parse(source);
+};
+if (typeof module !== 'undefined' && require.main === module) {
+ exports.main(process.argv.slice(1));
+}
}
-/**
- 12prettyflag.js - prettify
- @todo move this functionality to plugin
-*/
-
-/**
- Pretty flag - nice HTML output or standard text without any tags
- @type {boolean}
-*/
-
-alasql.prettyflag = false;
-
-/**
- Pretty output of SQL functions
- @function
- @param {string} sql SQL statement
- @param {boolean} flag value
- @return {string} HTML or text string with pretty output
-*/
-alasql.pretty = function(sql, flag) {
- var pf = alasql.prettyflag;
- alasql.prettyflag = !flag;
- var s = alasql.parse(sql).toString();
- alasql.prettyflag = pf;
- return s;
-};
+/**
+ 12prettyflag.js - prettify
+ @todo move this functionality to plugin
+*/
+
+/**
+ Pretty flag - nice HTML output or standard text without any tags
+ @type {boolean}
+*/
+
+alasql.prettyflag = false;
+
+/**
+ Pretty output of SQL functions
+ @function
+ @param {string} sql SQL statement
+ @param {boolean} flag value
+ @return {string} HTML or text string with pretty output
+*/
+
+alasql.pretty = function(sql, flag) {
+ var pf = alasql.prettyflag;
+ alasql.prettyflag = !flag;
+ var s = alasql.parse(sql).toString();
+ alasql.prettyflag = pf;
+ return s;
+};
/*jshint unused:false*/
/*
@@ -4141,13 +4142,13 @@ if (!Array.isArray) {
*/
var xlsnc = (utils.xlsnc = function(i) {
- var addr = String.fromCharCode(65 + i % 26);
+ var addr = String.fromCharCode(65 + (i % 26));
if (i >= 26) {
i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
if (i > 26) {
i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
}
}
return addr;
@@ -4312,90 +4313,90 @@ var getXLSX = function() {
// set AlaSQl path
alasql.path = alasql.utils.findAlaSQLPath();
-/**
- Strip all comments.
- @function
- @param {string} str
- @return {string}
- Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js
- I just replaced JavaScript's '//' to SQL's '--' and remove other stuff
-
- @todo Fixed [aaa/*bbb] for column names
- @todo Bug if -- comments in the last line
- @todo Check if it possible to model it with Jison parser
- @todo Remove unused code
- */
-
-/* global alasql */
-
-alasql.utils.uncomment = function(str) {
- // Add some padding so we can always look ahead and behind by two chars
- str = ('__' + str + '__').split('');
- var quote = false,
- quoteSign,
- // regularExpression = false,
- // characterClass = false,
- blockComment = false,
- lineComment = false;
- // preserveComment = false;
-
- for (var i = 0, l = str.length; i < l; i++) {
-
- // When checking for quote escaping, we also need to check that the
- // escape sign itself is not escaped, as otherwise '\\' would cause
- // the wrong impression of an unclosed string:
- var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\';
-
- if (quote) {
- if (str[i] === quoteSign && unescaped) {
- quote = false;
- }
-
- } else if (blockComment) {
- // Is the block comment closing?
- if (str[i] === '*' && str[i + 1] === '/') {
- // if (!preserveComment)
- str[i] = str[i + 1] = '';
- blockComment /* = preserveComment*/ = false;
- // Increase by 1 to skip closing '/', as it would be mistaken
- // for a regexp otherwise
- i++;
- } else {
- //if (!preserveComment) {
- str[i] = '';
- }
- } else if (lineComment) {
- // One-line comments end with the line-break
- if (str[i + 1] === '\n' || str[i + 1] === '\r') {
- lineComment = false;
- }
- str[i] = '';
- } else {
- if (str[i] === '"' || str[i] === "'") {
- quote = true;
- quoteSign = str[i];
- } else if (str[i] === '[' && str[i - 1] !== '@') {
- quote = true;
- quoteSign = ']';
- // } else if (str[i] === '-' && str[i + 1] === '-') {
- // str[i] = '';
- // lineComment = true;
- } else if (str[i] === '/' && str[i + 1] === '*') {
- // Do not filter out conditional comments /*@ ... */
- // and comments marked as protected /*! ... */
- // preserveComment = /[@!]/.test(str[i + 2]);
- // if (!preserveComment)
- str[i] = '';
- blockComment = true;
-
- }
- }
- }
- // Remove padding again.
- str = str.join('').slice(2, -2);
-
- return str;
-};
+/**
+ Strip all comments.
+ @function
+ @param {string} str
+ @return {string}
+ Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js
+ I just replaced JavaScript's '//' to SQL's '--' and remove other stuff
+
+ @todo Fixed [aaa/*bbb] for column names
+ @todo Bug if -- comments in the last line
+ @todo Check if it possible to model it with Jison parser
+ @todo Remove unused code
+ */
+
+/* global alasql */
+
+alasql.utils.uncomment = function(str) {
+ // Add some padding so we can always look ahead and behind by two chars
+ str = ('__' + str + '__').split('');
+ var quote = false,
+ quoteSign,
+ // regularExpression = false,
+ // characterClass = false,
+ blockComment = false,
+ lineComment = false;
+ // preserveComment = false;
+
+ for (var i = 0, l = str.length; i < l; i++) {
+
+ // When checking for quote escaping, we also need to check that the
+ // escape sign itself is not escaped, as otherwise '\\' would cause
+ // the wrong impression of an unclosed string:
+ var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\';
+
+ if (quote) {
+ if (str[i] === quoteSign && unescaped) {
+ quote = false;
+ }
+
+ } else if (blockComment) {
+ // Is the block comment closing?
+ if (str[i] === '*' && str[i + 1] === '/') {
+ // if (!preserveComment)
+ str[i] = str[i + 1] = '';
+ blockComment /* = preserveComment*/ = false;
+ // Increase by 1 to skip closing '/', as it would be mistaken
+ // for a regexp otherwise
+ i++;
+ } else {
+ //if (!preserveComment) {
+ str[i] = '';
+ }
+ } else if (lineComment) {
+ // One-line comments end with the line-break
+ if (str[i + 1] === '\n' || str[i + 1] === '\r') {
+ lineComment = false;
+ }
+ str[i] = '';
+ } else {
+ if (str[i] === '"' || str[i] === "'") {
+ quote = true;
+ quoteSign = str[i];
+ } else if (str[i] === '[' && str[i - 1] !== '@') {
+ quote = true;
+ quoteSign = ']';
+ // } else if (str[i] === '-' && str[i + 1] === '-') {
+ // str[i] = '';
+ // lineComment = true;
+ } else if (str[i] === '/' && str[i + 1] === '*') {
+ // Do not filter out conditional comments /*@ ... */
+ // and comments marked as protected /*! ... */
+ // preserveComment = /[@!]/.test(str[i + 2]);
+ // if (!preserveComment)
+ str[i] = '';
+ blockComment = true;
+
+ }
+ }
+ }
+ // Remove padding again.
+ str = str.join('').slice(2, -2);
+
+ return str;
+};
/**
Database class for Alasql.js
@@ -4785,621 +4786,631 @@ alasql.compile = function(sql, databaseid) {
}
};
-//
-// Promises for AlaSQL
-//
+//
+// Promises for AlaSQL
+//
+
+if (!utils.global.Promise) {
+ if (utils.isNode) {
+ //*not-for-browser/*
+ utils.global.Promise = require('es6-promise').Promise;
+ //*/
+ } else {
+ /*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license Licensed under MIT license
+ * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
+ * @version 3.2.1
+ */
+ (function() {
+ 'use strict';
+ function t(t) {
+ return 'function' == typeof t || ('object' == typeof t && null !== t);
+ }
+ function e(t) {
+ return 'function' == typeof t;
+ }
+ function n(t) {
+ G = t;
+ }
+ function r(t) {
+ Q = t;
+ }
+ function o() {
+ return function() {
+ process.nextTick(a);
+ };
+ }
+ function i() {
+ return function() {
+ B(a);
+ };
+ }
+ function s() {
+ var t = 0,
+ e = new X(a),
+ n = document.createTextNode('');
+ return (
+ e.observe(n, {characterData: !0}),
+ function() {
+ n.data = t = ++t % 2;
+ }
+ );
+ }
+ function u() {
+ var t = new MessageChannel();
+ return (
+ (t.port1.onmessage = a),
+ function() {
+ t.port2.postMessage(0);
+ }
+ );
+ }
+ function c() {
+ return function() {
+ setTimeout(a, 1);
+ };
+ }
+ function a() {
+ for (var t = 0; J > t; t += 2) {
+ var e = tt[t],
+ n = tt[t + 1];
+ e(n), (tt[t] = void 0), (tt[t + 1] = void 0);
+ }
+ J = 0;
+ }
+ function f() {
+ try {
+ var t = require,
+ e = t('vertx');
+ return (B = e.runOnLoop || e.runOnContext), i();
+ } catch (n) {
+ return c();
+ }
+ }
+ function l(t, e) {
+ var n = this,
+ r = new this.constructor(p);
+ void 0 === r[rt] && k(r);
+ var o = n._state;
+ if (o) {
+ var i = arguments[o - 1];
+ Q(function() {
+ x(o, r, i, n._result);
+ });
+ } else E(n, r, t, e);
+ return r;
+ }
+ function h(t) {
+ var e = this;
+ if (t && 'object' == typeof t && t.constructor === e) return t;
+ var n = new e(p);
+ return g(n, t), n;
+ }
+ function p() {}
+ function _() {
+ return new TypeError('You cannot resolve a promise with itself');
+ }
+ function d() {
+ return new TypeError('A promises callback cannot return that same promise.');
+ }
+ function v(t) {
+ try {
+ return t.then;
+ } catch (e) {
+ return (ut.error = e), ut;
+ }
+ }
+ function y(t, e, n, r) {
+ try {
+ t.call(e, n, r);
+ } catch (o) {
+ return o;
+ }
+ }
+ function m(t, e, n) {
+ Q(function(t) {
+ var r = !1,
+ o = y(
+ n,
+ e,
+ function(n) {
+ r || ((r = !0), e !== n ? g(t, n) : S(t, n));
+ },
+ function(e) {
+ r || ((r = !0), j(t, e));
+ },
+ 'Settle: ' + (t._label || ' unknown promise')
+ );
+ !r && o && ((r = !0), j(t, o));
+ }, t);
+ }
+ function b(t, e) {
+ e._state === it
+ ? S(t, e._result)
+ : e._state === st
+ ? j(t, e._result)
+ : E(
+ e,
+ void 0,
+ function(e) {
+ g(t, e);
+ },
+ function(e) {
+ j(t, e);
+ }
+ );
+ }
+ function w(t, n, r) {
+ n.constructor === t.constructor && r === et && constructor.resolve === nt
+ ? b(t, n)
+ : r === ut
+ ? j(t, ut.error)
+ : void 0 === r
+ ? S(t, n)
+ : e(r)
+ ? m(t, n, r)
+ : S(t, n);
+ }
+ function g(e, n) {
+ e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n);
+ }
+ function A(t) {
+ t._onerror && t._onerror(t._result), T(t);
+ }
+ function S(t, e) {
+ t._state === ot &&
+ ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t));
+ }
+ function j(t, e) {
+ t._state === ot && ((t._state = st), (t._result = e), Q(A, t));
+ }
+ function E(t, e, n, r) {
+ var o = t._subscribers,
+ i = o.length;
+ (t._onerror = null),
+ (o[i] = e),
+ (o[i + it] = n),
+ (o[i + st] = r),
+ 0 === i && t._state && Q(T, t);
+ }
+ function T(t) {
+ var e = t._subscribers,
+ n = t._state;
+ if (0 !== e.length) {
+ for (var r, o, i = t._result, s = 0; s < e.length; s += 3)
+ (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i);
+ t._subscribers.length = 0;
+ }
+ }
+ function M() {
+ this.error = null;
+ }
+ function P(t, e) {
+ try {
+ return t(e);
+ } catch (n) {
+ return (ct.error = n), ct;
+ }
+ }
+ function x(t, n, r, o) {
+ var i,
+ s,
+ u,
+ c,
+ a = e(r);
+ if (a) {
+ if (
+ ((i = P(r, o)),
+ i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0),
+ n === i)
+ )
+ return void j(n, d());
+ } else (i = o), (u = !0);
+ n._state !== ot ||
+ (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i));
+ }
+ function C(t, e) {
+ try {
+ e(
+ function(e) {
+ g(t, e);
+ },
+ function(e) {
+ j(t, e);
+ }
+ );
+ } catch (n) {
+ j(t, n);
+ }
+ }
+ function O() {
+ return at++;
+ }
+ function k(t) {
+ (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []);
+ }
+ function Y(t) {
+ return new _t(this, t).promise;
+ }
+ function q(t) {
+ var e = this;
+ return new e(
+ I(t)
+ ? function(n, r) {
+ for (var o = t.length, i = 0; o > i; i++)
+ e.resolve(t[i]).then(n, r);
+ }
+ : function(t, e) {
+ e(new TypeError('You must pass an array to race.'));
+ }
+ );
+ }
+ function F(t) {
+ var e = this,
+ n = new e(p);
+ return j(n, t), n;
+ }
+ function D() {
+ throw new TypeError(
+ 'You must pass a resolver function as the first argument to the promise constructor'
+ );
+ }
+ function K() {
+ throw new TypeError(
+ "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
+ );
+ }
+ function L(t) {
+ (this[rt] = O()),
+ (this._result = this._state = void 0),
+ (this._subscribers = []),
+ p !== t &&
+ ('function' != typeof t && D(), this instanceof L ? C(this, t) : K());
+ }
+ function N(t, e) {
+ (this._instanceConstructor = t),
+ (this.promise = new t(p)),
+ this.promise[rt] || k(this.promise),
+ Array.isArray(e)
+ ? ((this._input = e),
+ (this.length = e.length),
+ (this._remaining = e.length),
+ (this._result = new Array(this.length)),
+ 0 === this.length
+ ? S(this.promise, this._result)
+ : ((this.length = this.length || 0),
+ this._enumerate(),
+ 0 === this._remaining && S(this.promise, this._result)))
+ : j(this.promise, U());
+ }
+ function U() {
+ return new Error('Array Methods must be provided an Array');
+ }
+ function W() {
+ var t;
+ if ('undefined' != typeof global) t = global;
+ else if ('undefined' != typeof self) t = self;
+ else
+ try {
+ t = Function('return this')();
+ } catch (e) {
+ throw new Error(
+ 'polyfill failed because global object is unavailable in this environment'
+ );
+ }
+ var n = t.Promise;
+ (!n ||
+ '[object Promise]' !== Object.prototype.toString.call(n.resolve()) ||
+ n.cast) &&
+ (t.Promise = pt);
+ }
+ var z;
+ z = Array.isArray
+ ? Array.isArray
+ : function(t) {
+ return '[object Array]' === Object.prototype.toString.call(t);
+ };
+ var B,
+ G,
+ H,
+ I = z,
+ J = 0,
+ Q = function(t, e) {
+ (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H());
+ },
+ R = 'undefined' != typeof window ? window : void 0,
+ V = R || {},
+ X = V.MutationObserver || V.WebKitMutationObserver,
+ Z =
+ 'undefined' == typeof self &&
+ 'undefined' != typeof process &&
+ '[object process]' === {}.toString.call(process),
+ $ =
+ 'undefined' != typeof Uint8ClampedArray &&
+ 'undefined' != typeof importScripts &&
+ 'undefined' != typeof MessageChannel,
+ tt = new Array(1e3);
+ H = Z
+ ? o()
+ : X
+ ? s()
+ : $
+ ? u()
+ : void 0 === R && 'function' == typeof require
+ ? f()
+ : c();
+ var et = l,
+ nt = h,
+ rt = Math.random()
+ .toString(36)
+ .substring(16),
+ ot = void 0,
+ it = 1,
+ st = 2,
+ ut = new M(),
+ ct = new M(),
+ at = 0,
+ ft = Y,
+ lt = q,
+ ht = F,
+ pt = L;
+ (L.all = ft),
+ (L.race = lt),
+ (L.resolve = nt),
+ (L.reject = ht),
+ (L._setScheduler = n),
+ (L._setAsap = r),
+ (L._asap = Q),
+ (L.prototype = {
+ constructor: L,
+ then: et,
+ catch: function(t) {
+ return this.then(null, t);
+ },
+ });
+ var _t = N;
+ (N.prototype._enumerate = function() {
+ for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++)
+ this._eachEntry(e[n], n);
+ }),
+ (N.prototype._eachEntry = function(t, e) {
+ var n = this._instanceConstructor,
+ r = n.resolve;
+ if (r === nt) {
+ var o = v(t);
+ if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result);
+ else if ('function' != typeof o) this._remaining--, (this._result[e] = t);
+ else if (n === pt) {
+ var i = new n(p);
+ w(i, t, o), this._willSettleAt(i, e);
+ } else
+ this._willSettleAt(
+ new n(function(e) {
+ e(t);
+ }),
+ e
+ );
+ } else this._willSettleAt(r(t), e);
+ }),
+ (N.prototype._settledAt = function(t, e, n) {
+ var r = this.promise;
+ r._state === ot &&
+ (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)),
+ 0 === this._remaining && S(r, this._result);
+ }),
+ (N.prototype._willSettleAt = function(t, e) {
+ var n = this;
+ E(
+ t,
+ void 0,
+ function(t) {
+ n._settledAt(it, e, t);
+ },
+ function(t) {
+ n._settledAt(st, e, t);
+ }
+ );
+ });
+ var dt = W,
+ vt = {Promise: pt, polyfill: dt};
+ 'function' == typeof define && define.amd
+ ? define(function() {
+ return vt;
+ })
+ : 'undefined' != typeof module && module.exports
+ ? (module.exports = vt)
+ : 'undefined' != typeof this && (this.ES6Promise = vt),
+ dt();
+ }.call(this));
+
+ }
+}
-if (!utils.global.Promise) {
- if (utils.isNode) {
- //*not-for-browser/*
- utils.global.Promise = require('es6-promise').Promise;
- //*/
- } else {
- /*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
- * @version 3.2.1
- */
- (function() {
- 'use strict';
- function t(t) {
- return 'function' == typeof t || ('object' == typeof t && null !== t);
- }
- function e(t) {
- return 'function' == typeof t;
- }
- function n(t) {
- G = t;
- }
- function r(t) {
- Q = t;
- }
- function o() {
- return function() {
- process.nextTick(a);
- };
- }
- function i() {
- return function() {
- B(a);
- };
- }
- function s() {
- var t = 0,
- e = new X(a),
- n = document.createTextNode('');
- return (
- e.observe(n, {characterData: !0}),
- function() {
- n.data = t = ++t % 2;
- }
- );
- }
- function u() {
- var t = new MessageChannel();
- return (
- (t.port1.onmessage = a),
- function() {
- t.port2.postMessage(0);
- }
- );
- }
- function c() {
- return function() {
- setTimeout(a, 1);
- };
- }
- function a() {
- for (var t = 0; J > t; t += 2) {
- var e = tt[t],
- n = tt[t + 1];
- e(n), (tt[t] = void 0), (tt[t + 1] = void 0);
- }
- J = 0;
- }
- function f() {
- try {
- var t = require,
- e = t('vertx');
- return (B = e.runOnLoop || e.runOnContext), i();
- } catch (n) {
- return c();
- }
- }
- function l(t, e) {
- var n = this,
- r = new this.constructor(p);
- void 0 === r[rt] && k(r);
- var o = n._state;
- if (o) {
- var i = arguments[o - 1];
- Q(function() {
- x(o, r, i, n._result);
- });
- } else E(n, r, t, e);
- return r;
- }
- function h(t) {
- var e = this;
- if (t && 'object' == typeof t && t.constructor === e) return t;
- var n = new e(p);
- return g(n, t), n;
- }
- function p() {}
- function _() {
- return new TypeError('You cannot resolve a promise with itself');
- }
- function d() {
- return new TypeError('A promises callback cannot return that same promise.');
- }
- function v(t) {
- try {
- return t.then;
- } catch (e) {
- return (ut.error = e), ut;
- }
- }
- function y(t, e, n, r) {
- try {
- t.call(e, n, r);
- } catch (o) {
- return o;
- }
- }
- function m(t, e, n) {
- Q(function(t) {
- var r = !1,
- o = y(
- n,
- e,
- function(n) {
- r || ((r = !0), e !== n ? g(t, n) : S(t, n));
- },
- function(e) {
- r || ((r = !0), j(t, e));
- },
- 'Settle: ' + (t._label || ' unknown promise')
- );
- !r && o && ((r = !0), j(t, o));
- }, t);
- }
- function b(t, e) {
- e._state === it
- ? S(t, e._result)
- : e._state === st
- ? j(t, e._result)
- : E(
- e,
- void 0,
- function(e) {
- g(t, e);
- },
- function(e) {
- j(t, e);
- }
- );
- }
- function w(t, n, r) {
- n.constructor === t.constructor && r === et && constructor.resolve === nt
- ? b(t, n)
- : r === ut
- ? j(t, ut.error)
- : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n);
- }
- function g(e, n) {
- e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n);
- }
- function A(t) {
- t._onerror && t._onerror(t._result), T(t);
- }
- function S(t, e) {
- t._state === ot &&
- ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t));
- }
- function j(t, e) {
- t._state === ot && ((t._state = st), (t._result = e), Q(A, t));
- }
- function E(t, e, n, r) {
- var o = t._subscribers,
- i = o.length;
- (t._onerror = null),
- (o[i] = e),
- (o[i + it] = n),
- (o[i + st] = r),
- 0 === i && t._state && Q(T, t);
- }
- function T(t) {
- var e = t._subscribers,
- n = t._state;
- if (0 !== e.length) {
- for (var r, o, i = t._result, s = 0; s < e.length; s += 3)
- (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i);
- t._subscribers.length = 0;
- }
- }
- function M() {
- this.error = null;
- }
- function P(t, e) {
- try {
- return t(e);
- } catch (n) {
- return (ct.error = n), ct;
- }
- }
- function x(t, n, r, o) {
- var i,
- s,
- u,
- c,
- a = e(r);
- if (a) {
- if (
- ((i = P(r, o)),
- i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0),
- n === i)
- )
- return void j(n, d());
- } else (i = o), (u = !0);
- n._state !== ot ||
- (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i));
- }
- function C(t, e) {
- try {
- e(
- function(e) {
- g(t, e);
- },
- function(e) {
- j(t, e);
- }
- );
- } catch (n) {
- j(t, n);
- }
- }
- function O() {
- return at++;
- }
- function k(t) {
- (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []);
- }
- function Y(t) {
- return new _t(this, t).promise;
- }
- function q(t) {
- var e = this;
- return new e(
- I(t)
- ? function(n, r) {
- for (var o = t.length, i = 0; o > i; i++)
- e.resolve(t[i]).then(n, r);
- }
- : function(t, e) {
- e(new TypeError('You must pass an array to race.'));
- }
- );
- }
- function F(t) {
- var e = this,
- n = new e(p);
- return j(n, t), n;
- }
- function D() {
- throw new TypeError(
- 'You must pass a resolver function as the first argument to the promise constructor'
- );
- }
- function K() {
- throw new TypeError(
- "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
- );
- }
- function L(t) {
- (this[rt] = O()),
- (this._result = this._state = void 0),
- (this._subscribers = []),
- p !== t &&
- ('function' != typeof t && D(), this instanceof L ? C(this, t) : K());
- }
- function N(t, e) {
- (this._instanceConstructor = t),
- (this.promise = new t(p)),
- this.promise[rt] || k(this.promise),
- Array.isArray(e)
- ? ((this._input = e),
- (this.length = e.length),
- (this._remaining = e.length),
- (this._result = new Array(this.length)),
- 0 === this.length
- ? S(this.promise, this._result)
- : ((this.length = this.length || 0),
- this._enumerate(),
- 0 === this._remaining && S(this.promise, this._result)))
- : j(this.promise, U());
- }
- function U() {
- return new Error('Array Methods must be provided an Array');
- }
- function W() {
- var t;
- if ('undefined' != typeof global) t = global;
- else if ('undefined' != typeof self) t = self;
- else
- try {
- t = Function('return this')();
- } catch (e) {
- throw new Error(
- 'polyfill failed because global object is unavailable in this environment'
- );
- }
- var n = t.Promise;
- (!n ||
- '[object Promise]' !== Object.prototype.toString.call(n.resolve()) ||
- n.cast) &&
- (t.Promise = pt);
- }
- var z;
- z = Array.isArray
- ? Array.isArray
- : function(t) {
- return '[object Array]' === Object.prototype.toString.call(t);
- };
- var B,
- G,
- H,
- I = z,
- J = 0,
- Q = function(t, e) {
- (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H());
- },
- R = 'undefined' != typeof window ? window : void 0,
- V = R || {},
- X = V.MutationObserver || V.WebKitMutationObserver,
- Z =
- 'undefined' == typeof self &&
- 'undefined' != typeof process &&
- '[object process]' === {}.toString.call(process),
- $ =
- 'undefined' != typeof Uint8ClampedArray &&
- 'undefined' != typeof importScripts &&
- 'undefined' != typeof MessageChannel,
- tt = new Array(1e3);
- H = Z
- ? o()
- : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c();
- var et = l,
- nt = h,
- rt = Math.random()
- .toString(36)
- .substring(16),
- ot = void 0,
- it = 1,
- st = 2,
- ut = new M(),
- ct = new M(),
- at = 0,
- ft = Y,
- lt = q,
- ht = F,
- pt = L;
- (L.all = ft),
- (L.race = lt),
- (L.resolve = nt),
- (L.reject = ht),
- (L._setScheduler = n),
- (L._setAsap = r),
- (L._asap = Q),
- (L.prototype = {
- constructor: L,
- then: et,
- catch: function(t) {
- return this.then(null, t);
- },
- });
- var _t = N;
- (N.prototype._enumerate = function() {
- for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++)
- this._eachEntry(e[n], n);
- }),
- (N.prototype._eachEntry = function(t, e) {
- var n = this._instanceConstructor,
- r = n.resolve;
- if (r === nt) {
- var o = v(t);
- if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result);
- else if ('function' != typeof o) this._remaining--, (this._result[e] = t);
- else if (n === pt) {
- var i = new n(p);
- w(i, t, o), this._willSettleAt(i, e);
- } else
- this._willSettleAt(
- new n(function(e) {
- e(t);
- }),
- e
- );
- } else this._willSettleAt(r(t), e);
- }),
- (N.prototype._settledAt = function(t, e, n) {
- var r = this.promise;
- r._state === ot &&
- (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)),
- 0 === this._remaining && S(r, this._result);
- }),
- (N.prototype._willSettleAt = function(t, e) {
- var n = this;
- E(
- t,
- void 0,
- function(t) {
- n._settledAt(it, e, t);
- },
- function(t) {
- n._settledAt(st, e, t);
- }
- );
- });
- var dt = W,
- vt = {Promise: pt, polyfill: dt};
- 'function' == typeof define && define.amd
- ? define(function() {
- return vt;
- })
- : 'undefined' != typeof module && module.exports
- ? (module.exports = vt)
- : 'undefined' != typeof this && (this.ES6Promise = vt),
- dt();
- }.call(this));
+var promiseExec = function(sql, params, counterStep, counterTotal) {
+ return new utils.global.Promise(function(resolve, reject) {
+ alasql(sql, params, function(data, err) {
+ if (err) {
+ reject(err);
+ } else {
+ if (counterStep && counterTotal && alasql.options.progress !== false) {
+ alasql.options.progress(counterStep, counterTotal);
+ }
+ resolve(data);
+ }
+ });
+ });
+};
+
+var promiseAll = function(sqlParamsArray) {
+ if (sqlParamsArray.length < 1) {
+ return;
+ }
+
+ var active, sql, params;
+
+ var execArray = [];
+
+ for (var i = 0; i < sqlParamsArray.length; i++) {
+ active = sqlParamsArray[i];
+
+ if (typeof active === 'string') {
+ active = [active];
+ }
+
+ if (!utils.isArray(active) || active.length < 1 || 2 < active.length) {
+ throw new Error('Error in .promise parameter');
+ }
+
+ sql = active[0];
+ params = active[1] || undefined;
+
+ execArray.push(promiseExec(sql, params, i, sqlParamsArray.length));
+ }
+
+ return utils.global.Promise.all(execArray);
+};
+
+alasql.promise = function(sql, params) {
+ if (typeof Promise === 'undefined') {
+ throw new Error('Please include a Promise/A+ library');
+ }
+
+ if (typeof sql === 'string') {
+ return promiseExec(sql, params);
+ }
+
+ if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') {
+ throw new Error('Error in .promise parameters');
+ }
+ return promiseAll(sql);
+};
+
+/*
+//
+// Database class for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Main Database class
+
+/**
+ @class Database
+ */
+
+var Database = (alasql.Database = function(databaseid) {
+ var self = this;
+
+ // self.prototype = this;
+
+ if (self === alasql) {
+ if (databaseid) {
+ // if(alasql.databases[databaseid]) {
+ self = alasql.databases[databaseid];
+ // } else {
+ alasql.databases[databaseid] = self;
+ // }
+ if (!self) {
+ throw new Error('Database "' + databaseid + '" not found');
+ }
+ } else {
+ // Create new database (or get alasql?)
+ self = alasql.databases.alasql;
+ // For SQL Server examples, USE tempdb
+ if (alasql.options.tsql) {
+ alasql.databases.tempdb = alasql.databases.alasql;
+ }
+ // self = new Database(databaseid); // to call without new
+ }
+ }
+ if (!databaseid) {
+ databaseid = 'db' + alasql.databasenum++; // Random name
+ }
+
+ // Step 1
+ self.databaseid = databaseid;
+ alasql.databases[databaseid] = self;
+ self.dbversion = 0;
+
+ //Steps 2-5
+ self.tables = {};
+ self.views = {};
+ self.triggers = {};
+ self.indices = {};
+
+ // Step 6: Objects storage
+ self.objects = {};
+ self.counter = 0;
+
+ self.resetSqlCache();
+ return self;
+});
+
+/**
+ Reset SQL statements cache
+ */
+
+Database.prototype.resetSqlCache = function() {
+ this.sqlCache = {}; // Cache for compiled SQL statements
+ this.sqlCacheSize = 0;
+};
+
+// Main SQL function
+
+/**
+ Run SQL statement on database
+ @param {string} sql SQL statement
+ @param [object] params Parameters
+ @param {function} cb callback
+ */
+
+Database.prototype.exec = function(sql, params, cb) {
+ return alasql.dexec(this.databaseid, sql, params, cb);
+};
+
+Database.prototype.autoval = function(tablename, colname, getNext) {
+ return alasql.autoval(tablename, colname, getNext, this.databaseid);
+};
+
+// Aliases like MS SQL
- }
-}
+/*
+//
+// Transactio class for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
-var promiseExec = function(sql, params, counterStep, counterTotal) {
- return new utils.global.Promise(function(resolve, reject) {
- alasql(sql, params, function(data, err) {
- if (err) {
- reject(err);
- } else {
- if (counterStep && counterTotal && alasql.options.progress !== false) {
- alasql.options.progress(counterStep, counterTotal);
- }
- resolve(data);
- }
- });
- });
+Database.prototype.transaction = function(cb) {
+ var tx = new alasql.Transaction(this.databaseid);
+ var res = cb(tx);
+ return res;
};
-var promiseAll = function(sqlParamsArray) {
- if (sqlParamsArray.length < 1) {
- return;
- }
+// Transaction class (for WebSQL compatibility)
- var active, sql, params;
+/**
+ Transaction class
+ @class Transaction
+ */
- var execArray = [];
+var Transaction = (alasql.Transaction = function(databaseid) {
+ this.transactionid = Date.now();
+ this.databaseid = databaseid;
+ this.commited = false;
+ this.dbversion = alasql.databases[databaseid].dbversion;
+ // this.bank = cloneDeep(alasql.databases[databaseid]);
+ this.bank = JSON.stringify(alasql.databases[databaseid]);
+ // TODO CLone Tables with insertfns
- for (var i = 0; i < sqlParamsArray.length; i++) {
- active = sqlParamsArray[i];
+ return this;
+});
- if (typeof active === 'string') {
- active = [active];
- }
-
- if (!utils.isArray(active) || active.length < 1 || 2 < active.length) {
- throw new Error('Error in .promise parameter');
- }
-
- sql = active[0];
- params = active[1] || undefined;
-
- execArray.push(promiseExec(sql, params, i, sqlParamsArray.length));
- }
-
- return utils.global.Promise.all(execArray);
-};
-
-alasql.promise = function(sql, params) {
- if (typeof Promise === 'undefined') {
- throw new Error('Please include a Promise/A+ library');
- }
-
- if (typeof sql === 'string') {
- return promiseExec(sql, params);
- }
-
- if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') {
- throw new Error('Error in .promise parameters');
- }
- return promiseAll(sql);
-};
-
-/*
-//
-// Database class for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Main Database class
-
-/**
- @class Database
- */
-
-var Database = (alasql.Database = function(databaseid) {
- var self = this;
-
- // self.prototype = this;
-
- if (self === alasql) {
- if (databaseid) {
- // if(alasql.databases[databaseid]) {
- self = alasql.databases[databaseid];
- // } else {
- alasql.databases[databaseid] = self;
- // }
- if (!self) {
- throw new Error('Database "' + databaseid + '" not found');
- }
- } else {
- // Create new database (or get alasql?)
- self = alasql.databases.alasql;
- // For SQL Server examples, USE tempdb
- if (alasql.options.tsql) {
- alasql.databases.tempdb = alasql.databases.alasql;
- }
- // self = new Database(databaseid); // to call without new
- }
- }
- if (!databaseid) {
- databaseid = 'db' + alasql.databasenum++; // Random name
- }
-
- // Step 1
- self.databaseid = databaseid;
- alasql.databases[databaseid] = self;
- self.dbversion = 0;
-
- //Steps 2-5
- self.tables = {};
- self.views = {};
- self.triggers = {};
- self.indices = {};
-
- // Step 6: Objects storage
- self.objects = {};
- self.counter = 0;
-
- self.resetSqlCache();
- return self;
-});
-
-/**
- Reset SQL statements cache
- */
-
-Database.prototype.resetSqlCache = function() {
- this.sqlCache = {}; // Cache for compiled SQL statements
- this.sqlCacheSize = 0;
-};
-
-// Main SQL function
-
-/**
- Run SQL statement on database
- @param {string} sql SQL statement
- @param [object] params Parameters
- @param {function} cb callback
- */
-
-Database.prototype.exec = function(sql, params, cb) {
- return alasql.dexec(this.databaseid, sql, params, cb);
-};
-
-Database.prototype.autoval = function(tablename, colname, getNext) {
- return alasql.autoval(tablename, colname, getNext, this.databaseid);
-};
-
-// Aliases like MS SQL
-
-/*
-//
-// Transactio class for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-Database.prototype.transaction = function(cb) {
- var tx = new alasql.Transaction(this.databaseid);
- var res = cb(tx);
- return res;
-};
-
-// Transaction class (for WebSQL compatibility)
-
-/**
- Transaction class
- @class Transaction
- */
-
-var Transaction = (alasql.Transaction = function(databaseid) {
- this.transactionid = Date.now();
- this.databaseid = databaseid;
- this.commited = false;
- this.dbversion = alasql.databases[databaseid].dbversion;
- // this.bank = cloneDeep(alasql.databases[databaseid]);
- this.bank = JSON.stringify(alasql.databases[databaseid]);
- // TODO CLone Tables with insertfns
-
- return this;
-});
-
-// Main class
+// Main class
// Commit
@@ -7225,7 +7236,7 @@ function doLimit(query) {
}
var limit;
if (query.percent) {
- limit = ((query.data.length * query.limit / 100) | 0) + offset;
+ limit = (((query.data.length * query.limit) / 100) | 0) + offset;
} else {
limit = (query.limit | 0) + offset;
}
@@ -7321,8 +7332,7 @@ var preIndex = function(query) {
// Save index to original table
alasql.databases[source.databaseid].tables[source.tableid].indices[
hash(source.onrightfns + '`' + source.srcwherefns)
- ] =
- source.ix;
+ ] = source.ix;
}
}
@@ -7372,8 +7382,7 @@ var preIndex = function(query) {
if (!alasql.databases[source.databaseid].engineid) {
alasql.databases[source.databaseid].tables[source.tableid].indices[
hash(source.wxleftfns + '`')
- ] =
- source.ix;
+ ] = source.ix;
}
}
// Apply where filter to reduces rows
@@ -7576,49 +7585,45 @@ function doJoin(query, scope, h) {
// STEP 2
- if (h + 1 < query.sources.length) {
- if (
- nextsource.joinmode == 'OUTER' ||
- nextsource.joinmode == 'RIGHT' ||
- nextsource.joinmode == 'ANTI'
- ) {
- scope[source.alias] = {};
-
- var j = 0;
- var jlen = nextsource.data.length;
- var dataw;
-
- while (
- (dataw = nextsource.data[j]) ||
- (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
- j < jlen
+ if (h == 0) {
+ for (var nh = h + 1; nh < query.sources.length; nh++) {
+ if (
+ nextsource.joinmode == 'OUTER' ||
+ nextsource.joinmode == 'RIGHT' ||
+ nextsource.joinmode == 'ANTI'
) {
- if (nextsource.getfn && !nextsource.dontcache) {
- nextsource.data[j] = dataw;
- }
+ scope[source.alias] = {};
- if (dataw._rightjoin) {
- delete dataw._rightjoin;
- } else {
- // delete dataw._rightjoin;
+ var j = 0;
+ var jlen = nextsource.data.length;
+ var dataw;
- if (h == 0) {
- scope[nextsource.alias] = dataw;
- doJoin(query, scope, h + 2);
+ while (
+ (dataw = nextsource.data[j]) ||
+ (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
+ j < jlen
+ ) {
+ if (nextsource.getfn && !nextsource.dontcache) {
+ nextsource.data[j] = dataw;
+ }
+
+ if (dataw._rightjoin) {
+ delete dataw._rightjoin;
} else {
- //scope[nextsource.alias] = dataw;
- //doJoin(query, scope, h+2);
+ // delete dataw._rightjoin;
+ scope[nextsource.alias] = dataw;
+ doJoin(query, scope, nh + 1);
}
+ j++;
}
- j++;
- }
- // debugger;
- } else {
+ // debugger;
+ } else {
+ }
+ source = query.sources[nh];
+ nextsource = query.sources[nh + 1];
}
- } else {
-
}
scope[tableid] = undefined;
@@ -8914,109 +8919,109 @@ yy.Select.prototype.compileJoins = function(query) {
};
-yy.Select.prototype.compileWhere = function(query) {
- if (this.where) {
- if (typeof this.where == 'function') {
- return this.where;
- } else {
- var s = this.where.toJS('p', query.defaultTableid, query.defcols);
- query.wherefns = s;
-
- return new Function('p,params,alasql', 'var y;return ' + s);
- }
- } else
- return function() {
- return true;
- };
-};
-
-yy.Select.prototype.compileWhereJoins = function(query) {
- return;
-
- // TODO Fix Where optimization
-
- optimizeWhereJoin(query, this.where.expression);
-
- //for sources compile wherefs
- query.sources.forEach(function(source) {
- if (source.srcwherefns) {
- source.srcwherefn = new Function(
- 'p,params,alasql',
- 'var y;return ' + source.srcwherefns
- );
- }
- if (source.wxleftfns) {
- source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns);
- }
- if (source.wxrightfns) {
- source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns);
- }
-
- });
-};
-
-function optimizeWhereJoin(query, ast) {
- if (!ast) return false;
- if (!(ast instanceof yy.Op)) return;
- if (ast.op != '=' && ast.op != 'AND') return;
- if (ast.allsome) return;
-
- var s = ast.toJS('p', query.defaultTableid, query.defcols);
- var fsrc = [];
- query.sources.forEach(function(source, idx) {
- // Optimization allowed only for tables only
- if (source.tableid) {
- // This is a good place to remove all unnecessary optimizations
- if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source);
- }
- });
-
- // if(fsrc.length < query.sources.length) return;
-
- if (fsrc.length == 0) {
-
- return;
- } else if (fsrc.length == 1) {
- if (
- !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) {
- return s == "p['" + fsrc[0].alias + "']";
- })
- ) {
- return;
- // This is means, that we have column from parent query
- // So we return without optimization
- }
-
- var src = fsrc[0]; // optmiization source
- src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s;
-
- if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) {
- if (ast.left instanceof yy.Column) {
- var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
- var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
- if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) {
- fsrc[0].wxleftfns = ls;
- fsrc[0].wxrightfns = rs;
- }
- }
- if (ast.right instanceof yy.Column) {
- var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
- var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
- if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) {
- fsrc[0].wxleftfns = rs;
- fsrc[0].wxrightfns = ls;
- }
- }
- }
- ast.reduced = true; // To do not duplicate wherefn and srcwherefn
- return;
- } else {
- if ((ast.op = 'AND')) {
- optimizeWhereJoin(query, ast.left);
- optimizeWhereJoin(query, ast.right);
- }
- }
-}
+yy.Select.prototype.compileWhere = function(query) {
+ if (this.where) {
+ if (typeof this.where == 'function') {
+ return this.where;
+ } else {
+ var s = this.where.toJS('p', query.defaultTableid, query.defcols);
+ query.wherefns = s;
+
+ return new Function('p,params,alasql', 'var y;return ' + s);
+ }
+ } else
+ return function() {
+ return true;
+ };
+};
+
+yy.Select.prototype.compileWhereJoins = function(query) {
+ return;
+
+ // TODO Fix Where optimization
+
+ optimizeWhereJoin(query, this.where.expression);
+
+ //for sources compile wherefs
+ query.sources.forEach(function(source) {
+ if (source.srcwherefns) {
+ source.srcwherefn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + source.srcwherefns
+ );
+ }
+ if (source.wxleftfns) {
+ source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns);
+ }
+ if (source.wxrightfns) {
+ source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns);
+ }
+
+ });
+};
+
+function optimizeWhereJoin(query, ast) {
+ if (!ast) return false;
+ if (!(ast instanceof yy.Op)) return;
+ if (ast.op != '=' && ast.op != 'AND') return;
+ if (ast.allsome) return;
+
+ var s = ast.toJS('p', query.defaultTableid, query.defcols);
+ var fsrc = [];
+ query.sources.forEach(function(source, idx) {
+ // Optimization allowed only for tables only
+ if (source.tableid) {
+ // This is a good place to remove all unnecessary optimizations
+ if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source);
+ }
+ });
+
+ // if(fsrc.length < query.sources.length) return;
+
+ if (fsrc.length == 0) {
+
+ return;
+ } else if (fsrc.length == 1) {
+ if (
+ !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) {
+ return s == "p['" + fsrc[0].alias + "']";
+ })
+ ) {
+ return;
+ // This is means, that we have column from parent query
+ // So we return without optimization
+ }
+
+ var src = fsrc[0]; // optmiization source
+ src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s;
+
+ if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) {
+ if (ast.left instanceof yy.Column) {
+ var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
+ var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
+ if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) {
+ fsrc[0].wxleftfns = ls;
+ fsrc[0].wxrightfns = rs;
+ }
+ }
+ if (ast.right instanceof yy.Column) {
+ var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
+ var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
+ if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) {
+ fsrc[0].wxleftfns = rs;
+ fsrc[0].wxrightfns = ls;
+ }
+ }
+ }
+ ast.reduced = true; // To do not duplicate wherefn and srcwherefn
+ return;
+ } else {
+ if ((ast.op = 'AND')) {
+ optimizeWhereJoin(query, ast.left);
+ optimizeWhereJoin(query, ast.right);
+ }
+ }
+}
/*
//
@@ -9124,7 +9129,7 @@ yy.Select.prototype.compileGroup = function(query) {
}
/*
- */
+ */
// s += self.columns.map(function(col){
s += query.selectGroup
@@ -9374,10395 +9379,10395 @@ yy.Select.prototype.compileGroup = function(query) {
return new Function('p,params,alasql', 'var y;' + s);
};
+/*
+//
+// Select compiler part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// yy.Select.prototype.compileSources = function(query) {
+
+// };
+
+function compileSelectStar(query, aliases, joinstar) {
+ var sp = '',
+ ss = [],
+ columnIds = {};
+
+ aliases.forEach(function(alias) {
+
+ // if(!alias) {
+ // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};';
+ // } else {
+
+ // TODO move this out of this function
+ query.ixsources = {};
+ query.sources.forEach(function(source) {
+ query.ixsources[source.alias] = source;
+ });
+
+ // Fixed
+ var columns;
+ if (query.ixsources[alias]) {
+ var columns = query.ixsources[alias].columns;
+ }
+
+ // if(columns.length == 0 && query.aliases[alias].tableid) {
+ // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns;
+ // };
+
+ // Check if this is a Table or other
+ if (joinstar && alasql.options.joinstar == 'json') {
+ sp += "r['" + alias + "']={};";
+ }
+
+ if (columns && columns.length > 0) {
+ columns.forEach(function(tcol) {
+ if (joinstar && alasql.options.joinstar == 'underscore') {
+ ss.push(
+ "'" +
+ alias +
+ '_' +
+ tcol.columnid +
+ "':p['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "']"
+ );
+ } else if (joinstar && alasql.options.joinstar == 'json') {
+ // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']');
+ sp +=
+ "r['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "']=p['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "'];";
+ } else {
+ var value = "p['" + alias + "']['" + tcol.columnid + "']";
+ if (!columnIds[tcol.columnid]) {
+ var key = "'" + tcol.columnid + "':";
+ ss.push(key + value);
+ columnIds[tcol.columnid] = {
+ id: ss.length - 1,
+ value: value,
+ key: key,
+ };
+ } else {
+ var newValue =
+ value +
+ ' !== undefined ? ' +
+ value +
+ ' : ' +
+ columnIds[tcol.columnid].value;
+ ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue;
+ columnIds[tcol.columnid].value = newValue;
+ }
+ }
+
+ query.selectColumns[escapeq(tcol.columnid)] = true;
+
+ var coldef = {
+ columnid: tcol.columnid,
+ dbtypeid: tcol.dbtypeid,
+ dbsize: tcol.dbsize,
+ dbprecision: tcol.dbprecision,
+ dbenum: tcol.dbenum,
+ };
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ });
+
+ } else {
+
+ // if column not exist, then copy all
+ sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
+
+ query.dirtyColumns = true;
+ }
+ // }
+
+ });
+
+ return {s: ss.join(','), sp: sp};
+}
+
+yy.Select.prototype.compileSelect1 = function(query, params) {
+ var self = this;
+ query.columns = [];
+ query.xcolumns = {};
+ query.selectColumns = {};
+ query.dirtyColumns = false;
+ var s = 'var r={';
+ var sp = '';
+ var ss = [];
+
+ this.columns.forEach(function(col) {
+
+ if (col instanceof yy.Column) {
+ if (col.columnid === '*') {
+ if (col.func) {
+ sp +=
+ "r=params['" +
+ col.param +
+ "'](p['" +
+ query.sources[0].alias +
+ "'],p,params,alasql);";
+ } else if (col.tableid) {
+ //Copy all
+ var ret = compileSelectStar(query, [col.tableid], false);
+ if (ret.s) {
+ ss = ss.concat(ret.s);
+ }
+ sp += ret.sp;
+ } else {
+
+ var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid);
+ if (ret.s) {
+ ss = ss.concat(ret.s);
+ }
+ sp += ret.sp;
+
+ // TODO Remove these lines
+ // In case of no information
+ // sp += 'for(var k1 in p){var w=p[k1];'+
+ // 'for(k2 in w) {r[k2]=w[k2]}}'
+ }
+ } else {
+ // If field, otherwise - expression
+ var tbid = col.tableid;
+
+ var dbid =
+ col.databaseid || query.sources[0].databaseid || query.database.databaseid;
+ if (!tbid) tbid = query.defcols[col.columnid];
+ if (!tbid) tbid = query.defaultTableid;
+ if (col.columnid !== '_') {
+ if (
+ false &&
+ tbid &&
+ !query.defcols['.'][col.tableid] &&
+ !query.defcols[col.columnid]
+ ) {
+ ss.push(
+ "'" +
+ escapeq(col.as || col.columnid) +
+ "':p['" +
+ query.defaultTableid +
+ "']['" +
+ col.tableid +
+ "']['" +
+ col.columnid +
+ "']"
+ );
+ } else {
+ // workaround for multisheet xlsx export with custom COLUMNS
+ var isMultisheetParam =
+ params &&
+ params.length > 1 &&
+ Array.isArray(params[0]) &&
+ params[0].length >= 1 &&
+ params[0][0].hasOwnProperty('sheetid');
+ if (isMultisheetParam) {
+ sp =
+ 'var r={};var w=p["' +
+ tbid +
+ '"];' +
+ 'var cols=[' +
+ self.columns
+ .map(function(col) {
+ return "'" + col.columnid + "'";
+ })
+ .join(',') +
+ '];var colas=[' +
+ self.columns
+ .map(function(col) {
+ return "'" + (col.as || col.columnid) + "'";
+ })
+ .join(',') +
+ '];' +
+ "for (var i=0;i 0) {
+
+ var tcol = xcolumns[col.columnid];
+
+ if (undefined === tcol) {
+ throw new Error('Column does not exist: ' + col.columnid);
+ }
+
+ var coldef = {
+ columnid: col.as || col.columnid,
+ dbtypeid: tcol.dbtypeid,
+ dbsize: tcol.dbsize,
+ dbpecision: tcol.dbprecision,
+ dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ } else {
+ var coldef = {
+ columnid: col.as || col.columnid,
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+
+ query.dirtyColumns = true;
+ }
+ } else {
+ var coldef = {
+ columnid: col.as || col.columnid,
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ // This is a subquery?
+ // throw new Error('There is now such table \''+col.tableid+'\'');
+ }
+ }
+ } else if (col instanceof yy.AggrValue) {
+ if (!self.group) {
+ // self.group=[new yy.Column({columnid:'q',as:'q' })];
+ self.group = [''];
+ }
+ if (!col.as) {
+ col.as = escapeq(col.toString());
+ }
+
+ if (
+ col.aggregatorid === 'SUM' ||
+ col.aggregatorid === 'MAX' ||
+ col.aggregatorid === 'MIN' ||
+ col.aggregatorid === 'FIRST' ||
+ col.aggregatorid === 'LAST' ||
+ col.aggregatorid === 'AVG' ||
+ col.aggregatorid === 'ARRAY' ||
+ col.aggregatorid === 'REDUCE'
+ ) {
+ ss.push(
+ "'" +
+ escapeq(col.as) +
+ "':" +
+ n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))
+ );
+ } else if (col.aggregatorid === 'COUNT') {
+ ss.push("'" + escapeq(col.as) + "':1");
+ // Nothing
+ }
+ // todo: confirm that no default action must be implemented
+
+ // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd;
+
+ var coldef = {
+ columnid: col.as || col.columnid || col.toString(),
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+
+ // else if (col.aggregatorid == 'MAX') {
+ // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
+ // } else if (col.aggregatorid == 'MIN') {
+ // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
+ // }
+ } else {
+
+ ss.push(
+ "'" +
+ escapeq(col.as || col.columnid || col.toString()) +
+ "':" +
+ n2u(col.toJS('p', query.defaultTableid, query.defcols))
+ );
+ // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid));
+ //if(col instanceof yy.Expression) {
+ query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true;
+
+ var coldef = {
+ columnid: col.as || col.columnid || col.toString(),
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ }
+ });
+ s += ss.join(',') + '};' + sp;
+ return s;
+
+};
+yy.Select.prototype.compileSelect2 = function(query) {
+ var s = query.selectfns;
+ if (this.orderColumns && this.orderColumns.length > 0) {
+ this.orderColumns.forEach(function(v, idx) {
+ var key = '$$$' + idx;
+ if (v instanceof yy.Column && query.xcolumns[v.columnid]) {
+ s += "r['" + key + "']=r['" + v.columnid + "'];";
+ } else {
+ s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';';
+ }
+ query.removeKeys.push(key);
+ });
+ }
+
+ return new Function('p,params,alasql', 'var y;' + s + 'return r');
+};
+
+yy.Select.prototype.compileSelectGroup0 = function(query) {
+ var self = this;
+ self.columns.forEach(function(col, idx) {
+ if (!(col instanceof yy.Column && col.columnid === '*')) {
+ var colas;
+ // = col.as;
+ if (col instanceof yy.Column) {
+ colas = escapeq(col.columnid);
+ } else {
+ colas = escapeq(col.toString(true));
+
+ }
+ for (var i = 0; i < idx; i++) {
+ if (colas === self.columns[i].nick) {
+ colas = self.columns[i].nick + ':' + idx;
+ break;
+ }
+ }
+ // }
+ col.nick = colas;
+ if (
+ col.funcid &&
+ (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER')
+ ) {
+ query.rownums.push(col.as);
+ }
+
+ // }
+ } else {
+ query.groupStar = col.tableid || 'default';
+ }
+ });
+
+ this.columns.forEach(function(col) {
+ if (col.findAggregator) {
+ col.findAggregator(query);
+ }
+ });
+
+ if (this.having) {
+ if (this.having.findAggregator) {
+ this.having.findAggregator(query);
+ }
+ }
+};
+
+yy.Select.prototype.compileSelectGroup1 = function(query) {
+ var self = this;
+ var s = 'var r = {};';
+
+ self.columns.forEach(function(col) {
+
+ if (col instanceof yy.Column && col.columnid === '*') {
+ // s += 'for(var k in g){r[k]=g[k]};';
+ // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
+
+ s += 'for(var k in g) {r[k]=g[k]};';
+ return '';
+
+ } else {
+ // var colas = col.as;
+ var colas = col.as;
+ if (colas === undefined) {
+ if (col instanceof yy.Column) {
+ colas = escapeq(col.columnid);
+ } else {
+ colas = col.nick;
+ }
+ }
+ query.groupColumns[colas] = col.nick;
+
+ // if(col.as) {
+ s += "r['" + colas + "']=";
+ // // } else {
+ // // s += 'r[\''+escapeq()+'\']=';
+ // // };
+ // // s += ';';
+
+ s += n2u(col.toJS('g', '')) + ';';
+
+ for (var i = 0; i < query.removeKeys.length; i++) {
+ // THis part should be intellectual
+ if (query.removeKeys[i] === colas) {
+ query.removeKeys.splice(i, 1);
+ break;
+ }
+ }
+ }
+ });
+ // return new Function('g,params,alasql',s+'return r');
+ return s;
+};
+
+yy.Select.prototype.compileSelectGroup2 = function(query) {
+ var self = this;
+ var s = query.selectgfns;
+ self.columns.forEach(function(col) {
+
+ if (query.ingroup.indexOf(col.nick) > -1) {
+ s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];";
+ }
+ });
+
+ if (this.orderColumns && this.orderColumns.length > 0) {
+ this.orderColumns.forEach(function(v, idx) {
+
+ var key = '$$$' + idx;
+
+ if (v instanceof yy.Column && query.groupColumns[v.columnid]) {
+ s += "r['" + key + "']=r['" + v.columnid + "'];";
+ } else {
+ s += "r['" + key + "']=" + v.toJS('g', '') + ';';
+ }
+ query.removeKeys.push(key);
+ });
+ }
+
+ return new Function('g,params,alasql', 'var y;' + s + 'return r');
+};
+
+// SELECY * REMOVE [COLUMNS] col-list, LIKE ''
+yy.Select.prototype.compileRemoveColumns = function(query) {
+ var self = this;
+ if (typeof this.removecolumns !== 'undefined') {
+ query.removeKeys = query.removeKeys.concat(
+ this.removecolumns
+ .filter(function(column) {
+ return typeof column.like === 'undefined';
+ })
+ .map(function(column) {
+ return column.columnid;
+ })
+ );
+
+ query.removeLikeKeys = this.removecolumns
+ .filter(function(column) {
+ return typeof column.like !== 'undefined';
+ })
+ .map(function(column) {
+ // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g');
+ return column.like.value;
+ });
+ }
+};
+
+/* global yy */
+
+yy.Select.prototype.compileHaving = function(query) {
+ if (this.having) {
+ var s = this.having.toJS('g', -1);
+ query.havingfns = s;
+
+ return new Function('g,params,alasql', 'var y;return ' + s);
+ }
+
+ return function() {
+ return true;
+ };
+};
+
+yy.Select.prototype.compileOrder = function(query) {
+ var self = this;
+ self.orderColumns = [];
+ if (this.order) {
+
+ if (
+ this.order &&
+ this.order.length == 1 &&
+ this.order[0].expression &&
+ typeof this.order[0].expression == 'function'
+ ) {
+
+ var func = this.order[0].expression;
+
+ return function(a, b) {
+ var ra = func(a),
+ rb = func(b);
+ if (ra > rb) return 1;
+ if (ra == rb) return 0;
+ return -1;
+ };
+ }
+
+ var s = '';
+ var sk = '';
+ this.order.forEach(function(ord, idx) {
+
+ if (ord.expression instanceof yy.NumValue) {
+ var v = self.columns[ord.expression.value - 1];
+ } else {
+ var v = ord.expression;
+ }
+ self.orderColumns.push(v);
+
+ var key = '$$$' + idx;
+
+ // Date conversion
+ var dg = '';
+ //if(alasql.options.valueof)
+ if (ord.expression instanceof yy.Column) {
+ var columnid = ord.expression.columnid;
+ if (query.xcolumns[columnid]) {
+ var dbtypeid = query.xcolumns[columnid].dbtypeid;
+ if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2')
+ dg = '.valueOf()';
+ // TODO Add other types mapping
+ } else {
+ if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check
+ }
+ // dg = '.valueOf()';
+ }
+ // COLLATE NOCASE
+ if (ord.nocase) dg += '.toUpperCase()';
+ s +=
+ "if((a['" +
+ key +
+ "']||'')" +
+ dg +
+ (ord.direction == 'ASC' ? '>' : '<') +
+ "(b['" +
+ key +
+ "']||'')" +
+ dg +
+ ')return 1;';
+ s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){';
+
+ /*
+if(false) {
+
+ if(ord.expression instanceof yy.NumValue) {
+ ord.expression = self.columns[ord.expression.value-1];
+
+ ord.expression = new yy.Column({columnid:ord.expression.nick});
+ };
+
+ if(ord.expression instanceof yy.Column) {
+ var columnid = ord.expression.columnid;
+ if(query.xcolumns[columnid]) {
+ var dbtypeid = query.xcolumns[columnid].dbtypeid;
+ if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()';
+ // TODO Add other types mapping
+ } else {
+ if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check
+ }
+ // COLLATE NOCASE
+ if(ord.nocase) dg += '.toUpperCase()';
+
+ s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;';
+ s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){';
+
+ } else {
+ dg = '.valueOf()';
+ // COLLATE NOCASE
+ if(ord.nocase) dg += '.toUpperCase()';
+ s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;';
+ s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){';
+ }
+
+ // TODO Add date comparision
+
+}
+*/
+ sk += '}';
+ });
+ s += 'return 0;';
+ s += sk + 'return -1';
+ query.orderfns = s;
+
+ return new Function('a,b', 'var y;' + s);
+ }
+};
+
+// Pivot functions
+/**
+ Compile Pivot functions
+ @param {object} query Source query
+ @return {function} Pivoting functions
+*/
+yy.Select.prototype.compilePivot = function(query) {
+ var self = this;
+ /** @type {string} Main pivoting column */
+
+ var columnid = self.pivot.columnid;
+ var exprcolid = self.pivot.expr.expression.columnid;
+ var aggr = self.pivot.expr.aggregatorid;
+ var inlist = self.pivot.inlist;
+
+ if (inlist) {
+ inlist = inlist.map(function(l) {
+ return l.expr.columnid;
+ });
+ }
+
+ // Function for PIVOT post production
+ return function() {
+ var query = this;
+ var cols = query.columns
+ .filter(function(col) {
+ return col.columnid != columnid && col.columnid != exprcolid;
+ })
+ .map(function(col) {
+ return col.columnid;
+ });
+
+ var newcols = [];
+ var gnewcols = {};
+ var gr = {};
+ var ga = {};
+ var data = [];
+ query.data.forEach(function(d) {
+ if (!inlist || inlist.indexOf(d[columnid]) > -1) {
+ var gx = cols
+ .map(function(colid) {
+ return d[colid];
+ })
+ .join('`');
+ var g = gr[gx];
+ if (!g) {
+ g = {};
+ gr[gx] = g;
+ data.push(g);
+ cols.forEach(function(colid) {
+ g[colid] = d[colid];
+ });
+ }
+
+ if (!ga[gx]) {
+ ga[gx] = {};
+ }
+
+ if (ga[gx][d[columnid]]) {
+ ga[gx][d[columnid]]++;
+ } else {
+ ga[gx][d[columnid]] = 1;
+ }
+
+ if (!gnewcols[d[columnid]]) {
+ gnewcols[d[columnid]] = true;
+ newcols.push(d[columnid]);
+ }
+
+ if (aggr == 'SUM' || aggr == 'AVG') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
+ g[d[columnid]] += d[exprcolid];
+ } else if (aggr == 'COUNT') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
+ g[d[columnid]]++;
+ } else if (aggr == 'MIN') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity;
+ if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'MAX') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity;
+ if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'FIRST') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'LAST') {
+ g[d[columnid]] = d[exprcolid];
+ } else if (alasql.aggr[aggr]) {
+ // Custom aggregator
+ alasql.aggr[aggr](g[d[columnid]], d[exprcolid]);
+ } else {
+ throw new Error('Wrong aggregator in PIVOT clause');
+ }
+ }
+ });
+
+ if (aggr == 'AVG') {
+ for (var gx in gr) {
+ var d = gr[gx];
+ for (var colid in d) {
+ if (cols.indexOf(colid) == -1 && colid != exprcolid) {
+ d[colid] = d[colid] / ga[gx][colid];
+ }
+ }
+ }
+ }
+
+ // columns
+ query.data = data;
+
+ if (inlist) newcols = inlist;
+
+ var ncol = query.columns.filter(function(col) {
+ return col.columnid == exprcolid;
+ })[0];
+ query.columns = query.columns.filter(function(col) {
+ return !(col.columnid == columnid || col.columnid == exprcolid);
+ });
+ newcols.forEach(function(colid) {
+ var nc = cloneDeep(ncol);
+ nc.columnid = colid;
+ query.columns.push(nc);
+ });
+ };
+};
+
+// var columnid = this.pivot.columnid;
+
+// return function(data){
+
+// if(false) {
+
+// }
+
+// if(false) {
+
+// }
+// };
+
+/**
+ Compile UNPIVOT clause
+ @param {object} query Query object
+ @return {function} Function for unpivoting
+*/
+yy.Select.prototype.compileUnpivot = function(query) {
+ var self = this;
+ var tocolumnid = self.unpivot.tocolumnid;
+ var forcolumnid = self.unpivot.forcolumnid;
+ var inlist = self.unpivot.inlist.map(function(l) {
+ return l.columnid;
+ });
+
+ return function() {
+ var data = [];
+
+ var xcols = query.columns
+ .map(function(col) {
+ return col.columnid;
+ })
+ .filter(function(colid) {
+ return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid;
+ });
+
+ query.data.forEach(function(d) {
+ inlist.forEach(function(colid) {
+ var nd = {};
+ xcols.forEach(function(xcolid) {
+ nd[xcolid] = d[xcolid];
+ });
+ nd[forcolumnid] = colid;
+ nd[tocolumnid] = d[colid];
+ data.push(nd);
+ });
+ });
+
+ query.data = data;
+
+ // });
+ };
+};
+
/*
//
-// Select compiler part for Alasql.js
+// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js
// Date: 03.11.2014
// (c) 2014, Andrey Gershun
//
*/
-// yy.Select.prototype.compileSources = function(query) {
+/**
+ Calculate ROLLUP() combination
+ */
-// };
+var rollup = function(a, query) {
+ var rr = [];
+ var mask = 0;
+ var glen = a.length;
+ for (var g = 0; g < glen + 1; g++) {
+ var ss = [];
+ for (var i = 0; i < glen; i++) {
+ if (a[i] instanceof yy.Column) {
+ a[i].nick = escapeq(a[i].columnid);
-function compileSelectStar(query, aliases, joinstar) {
- var sp = '',
- ss = [],
- columnIds = {};
+ query.groupColumns[escapeq(a[i].columnid)] = a[i].nick;
+ var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);
+ } else {
+ query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString());
+ var aaa =
+ escapeq(a[i].toString()) +
+ '\t' +
+ a[i].toJS('p', query.sources[0].alias, query.defcols);
+ }
- aliases.forEach(function(alias) {
+ if (mask & (1 << i)) ss.push(aaa);
+ }
+ rr.push(ss);
+ mask = (mask << 1) + 1;
+ }
+ return rr;
+};
- // if(!alias) {
- // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};';
- // } else {
+/**
+ Calculate CUBE()
+ */
+var cube = function(a, query) {
+ var rr = [];
+ var glen = a.length;
+ var glenCube = 1 << glen;
+ for (var g = 0; g < glenCube; g++) {
+ var ss = [];
+ for (var i = 0; i < glen; i++) {
+ if (g & (1 << i))
+ //ss.push(a[i]);
+ //ss = cartes(ss,decartes(a[i]));
- // TODO move this out of this function
- query.ixsources = {};
- query.sources.forEach(function(source) {
- query.ixsources[source.alias] = source;
- });
+ // var aaa = a[i].toString()+'\t'
+ // +a[i].toJS('p',query.sources[0].alias,query.defcols);
- // Fixed
- var columns;
- if (query.ixsources[alias]) {
- var columns = query.ixsources[alias].columns;
+ ss = ss.concat(decartes(a[i], query));
+ //
}
+ rr.push(ss);
+ }
+ return rr;
+};
- // if(columns.length == 0 && query.aliases[alias].tableid) {
- // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns;
- // };
+/**
+ GROUPING SETS()
+ */
+var groupingsets = function(a, query) {
+ return a.reduce(function(acc, d) {
+ acc = acc.concat(decartes(d, query));
+ return acc;
+ }, []);
+};
- // Check if this is a Table or other
- if (joinstar && alasql.options.joinstar == 'json') {
- sp += "r['" + alias + "']={};";
+/**
+ Cartesian production
+ */
+var cartes = function(a1, a2) {
+ var rrr = [];
+ for (var i1 = 0; i1 < a1.length; i1++) {
+ for (var i2 = 0; i2 < a2.length; i2++) {
+ rrr.push(a1[i1].concat(a2[i2]));
}
+ }
+ return rrr;
+};
- if (columns && columns.length > 0) {
- columns.forEach(function(tcol) {
- if (joinstar && alasql.options.joinstar == 'underscore') {
- ss.push(
- "'" +
- alias +
- '_' +
- tcol.columnid +
- "':p['" +
- alias +
- "']['" +
- tcol.columnid +
- "']"
- );
- } else if (joinstar && alasql.options.joinstar == 'json') {
- // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']');
- sp +=
- "r['" +
- alias +
- "']['" +
- tcol.columnid +
- "']=p['" +
- alias +
- "']['" +
- tcol.columnid +
- "'];";
- } else {
- var value = "p['" + alias + "']['" + tcol.columnid + "']";
- if (!columnIds[tcol.columnid]) {
- var key = "'" + tcol.columnid + "':";
- ss.push(key + value);
- columnIds[tcol.columnid] = {
- id: ss.length - 1,
- value: value,
- key: key,
- };
- } else {
- var newValue =
- value +
- ' !== undefined ? ' +
- value +
- ' : ' +
- columnIds[tcol.columnid].value;
- ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue;
- columnIds[tcol.columnid].value = newValue;
- }
- }
+/**
+ Prepare groups function
+ */
+function decartes(gv, query) {
- query.selectColumns[escapeq(tcol.columnid)] = true;
+ if (Array.isArray(gv)) {
+ var res = [[]];
+ for (var t = 0; t < gv.length; t++) {
+ if (gv[t] instanceof yy.Column) {
- var coldef = {
- columnid: tcol.columnid,
- dbtypeid: tcol.dbtypeid,
- dbsize: tcol.dbsize,
- dbprecision: tcol.dbprecision,
- dbenum: tcol.dbenum,
- };
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- });
+ gv[t].nick = escapeq(gv[t].columnid);
+ query.groupColumns[gv[t].nick] = gv[t].nick;
+ res = res.map(function(r) {
+ return r.concat(
+ gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // res = res.map(function(r){return r.concat(gv[t].columnid)});
+ } else if (gv[t] instanceof yy.FuncValue) {
+ query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
+ res = res.map(function(r) {
+ return r.concat(
+ escapeq(gv[t].toString()) +
+ '\t' +
+ gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // to be defined
+ } else if (gv[t] instanceof yy.GroupExpression) {
+ if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query));
+ else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query));
+ else if (gv[t].type == 'GROUPING SETS')
+ res = cartes(res, groupingsets(gv[t].group, query));
+ else throw new Error('Unknown grouping function');
+ } else if (gv[t] === '') {
- } else {
+ res = [['1\t1']];
+ } else {
+ // if(gv[t])
- // if column not exist, then copy all
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
+ res = res.map(function(r) {
+ query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
+ return r.concat(
+ escapeq(gv[t].toString()) +
+ '\t' +
+ gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // res = res.concat(gv[t]);
+ }
- query.dirtyColumns = true;
}
- // }
+ return res;
+ } else if (gv instanceof yy.FuncValue) {
- });
+ query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
+ return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];
+ } else if (gv instanceof yy.Column) {
+ gv.nick = escapeq(gv.columnid);
+ query.groupColumns[gv.nick] = gv.nick;
+ return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened?
+ // } else if(gv instanceof yy.Expression) {
+ // return [gv.columnid]; // Is this ever happened?
+ } else {
+ query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
+ return [
+ escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols),
+ ];
+ // throw new Error('Single argument in the group without array');
+ }
- return {s: ss.join(','), sp: sp};
}
-yy.Select.prototype.compileSelect1 = function(query, params) {
- var self = this;
- query.columns = [];
- query.xcolumns = {};
- query.selectColumns = {};
- query.dirtyColumns = false;
- var s = 'var r={';
- var sp = '';
- var ss = [];
-
- this.columns.forEach(function(col) {
-
- if (col instanceof yy.Column) {
- if (col.columnid === '*') {
- if (col.func) {
- sp +=
- "r=params['" +
- col.param +
- "'](p['" +
- query.sources[0].alias +
- "'],p,params,alasql);";
- } else if (col.tableid) {
- //Copy all
- var ret = compileSelectStar(query, [col.tableid], false);
- if (ret.s) {
- ss = ss.concat(ret.s);
- }
- sp += ret.sp;
- } else {
-
- var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid);
- if (ret.s) {
- ss = ss.concat(ret.s);
- }
- sp += ret.sp;
-
- // TODO Remove these lines
- // In case of no information
- // sp += 'for(var k1 in p){var w=p[k1];'+
- // 'for(k2 in w) {r[k2]=w[k2]}}'
- }
- } else {
- // If field, otherwise - expression
- var tbid = col.tableid;
-
- var dbid =
- col.databaseid || query.sources[0].databaseid || query.database.databaseid;
- if (!tbid) tbid = query.defcols[col.columnid];
- if (!tbid) tbid = query.defaultTableid;
- if (col.columnid !== '_') {
- if (
- false &&
- tbid &&
- !query.defcols['.'][col.tableid] &&
- !query.defcols[col.columnid]
- ) {
- ss.push(
- "'" +
- escapeq(col.as || col.columnid) +
- "':p['" +
- query.defaultTableid +
- "']['" +
- col.tableid +
- "']['" +
- col.columnid +
- "']"
- );
- } else {
- // workaround for multisheet xlsx export with custom COLUMNS
- var isMultisheetParam =
- params &&
- params.length > 1 &&
- Array.isArray(params[0]) &&
- params[0].length >= 1 &&
- params[0][0].hasOwnProperty('sheetid');
- if (isMultisheetParam) {
- sp =
- 'var r={};var w=p["' +
- tbid +
- '"];' +
- 'var cols=[' +
- self.columns
- .map(function(col) {
- return "'" + col.columnid + "'";
- })
- .join(',') +
- '];var colas=[' +
- self.columns
- .map(function(col) {
- return "'" + (col.as || col.columnid) + "'";
- })
- .join(',') +
- '];' +
- "for (var i=0;i 0) {
-
- var tcol = xcolumns[col.columnid];
-
- if (undefined === tcol) {
- throw new Error('Column does not exist: ' + col.columnid);
- }
-
- var coldef = {
- columnid: col.as || col.columnid,
- dbtypeid: tcol.dbtypeid,
- dbsize: tcol.dbsize,
- dbpecision: tcol.dbprecision,
- dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- } else {
- var coldef = {
- columnid: col.as || col.columnid,
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
+/*
+//
+// Select run-time part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Select.prototype.compileDefCols = function(query, databaseid) {
+
+ var defcols = {'.': {}};
+ if (this.from) {
+ this.from.forEach(function(fr) {
+ defcols['.'][fr.as || fr.tableid] = true;
+ if (fr instanceof yy.Table) {
+ var alias = fr.as || fr.tableid;
+
+ var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid];
+
+ if (undefined === table) {
+ throw new Error('Table does not exist: ' + fr.tableid);
+ }
+
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ if (defcols[col.columnid]) {
+ defcols[col.columnid] = '-'; // Ambigous
+ } else {
+ defcols[col.columnid] = alias;
+ }
+ });
+ }
+ } else if (fr instanceof yy.Select) {
+ } else if (fr instanceof yy.Search) {
+ } else if (fr instanceof yy.ParamValue) {
+ } else if (fr instanceof yy.VarValue) {
+ } else if (fr instanceof yy.FuncValue) {
+ } else if (fr instanceof yy.FromData) {
+ } else if (fr instanceof yy.Json) {
+ } else if (fr.inserted) {
+ } else {
+
+ throw new Error('Unknown type of FROM clause');
+ }
+ });
+ }
+
+ if (this.joins) {
+ this.joins.forEach(function(jn) {
+ defcols['.'][jn.as || jn.table.tableid] = true;
+
+ if (jn.table) {
+ var alias = jn.table.tableid;
+ if (jn.as) alias = jn.as;
+ var alias = jn.as || jn.table.tableid;
+ var table =
+ alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid];
+
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ if (defcols[col.columnid]) {
+ defcols[col.columnid] = '-'; // Ambigous
+ } else {
+ defcols[col.columnid] = alias;
+ }
+ });
+ }
+ } else if (jn.select) {
+ } else if (jn.param) {
+ } else if (jn.func) {
+ } else {
+ throw new Error('Unknown type of FROM clause');
+ }
+ });
+ }
+ // for(var k in defcols) {
+ // if(defcols[k] == '-') defcols[k] = undefined;
+ // }
+
+ return defcols;
+};
- query.dirtyColumns = true;
- }
- } else {
- var coldef = {
- columnid: col.as || col.columnid,
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
+/*
+//
+// UNION for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- // This is a subquery?
- // throw new Error('There is now such table \''+col.tableid+'\'');
- }
- }
- } else if (col instanceof yy.AggrValue) {
- if (!self.group) {
- // self.group=[new yy.Column({columnid:'q',as:'q' })];
- self.group = [''];
- }
- if (!col.as) {
- col.as = escapeq(col.toString());
- }
+// SELECT UNION statement
- if (
- col.aggregatorid === 'SUM' ||
- col.aggregatorid === 'MAX' ||
- col.aggregatorid === 'MIN' ||
- col.aggregatorid === 'FIRST' ||
- col.aggregatorid === 'LAST' ||
- col.aggregatorid === 'AVG' ||
- col.aggregatorid === 'ARRAY' ||
- col.aggregatorid === 'REDUCE'
- ) {
- ss.push(
- "'" +
- escapeq(col.as) +
- "':" +
- n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))
- );
- } else if (col.aggregatorid === 'COUNT') {
- ss.push("'" + escapeq(col.as) + "':1");
- // Nothing
- }
- // todo: confirm that no default action must be implemented
+yy.Union = function(params) {
+ return yy.extend(this, params);
+};
+yy.Union.prototype.toString = function() {
+ return 'UNION';
+};
- // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd;
+yy.Union.prototype.compile = function(tableid) {
+ return null;
+};
- var coldef = {
- columnid: col.as || col.columnid || col.toString(),
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
+/*
+//
+// CROSS AND OUTER APPLY for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
+yy.Apply = function(params) {
+ return yy.extend(this, params);
+};
- // else if (col.aggregatorid == 'MAX') {
- // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
- // } else if (col.aggregatorid == 'MIN') {
- // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
- // }
- } else {
+yy.Apply.prototype.toString = function() {
+ var s = this.applymode + ' APPLY (' + this.select.toString() + ')';
- ss.push(
- "'" +
- escapeq(col.as || col.columnid || col.toString()) +
- "':" +
- n2u(col.toJS('p', query.defaultTableid, query.defcols))
- );
- // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid));
- //if(col instanceof yy.Expression) {
- query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true;
-
- var coldef = {
- columnid: col.as || col.columnid || col.toString(),
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
+ if (this.as) s += ' AS ' + this.as;
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- }
- });
- s += ss.join(',') + '};' + sp;
return s;
+};
+
+/*
+//
+// CROSS AND OUTER APPLY for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+yy.Over = function(params) {
+ return yy.extend(this, params);
};
-yy.Select.prototype.compileSelect2 = function(query) {
- var s = query.selectfns;
- if (this.orderColumns && this.orderColumns.length > 0) {
- this.orderColumns.forEach(function(v, idx) {
- var key = '$$$' + idx;
- if (v instanceof yy.Column && query.xcolumns[v.columnid]) {
- s += "r['" + key + "']=r['" + v.columnid + "'];";
- } else {
- s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';';
- }
- query.removeKeys.push(key);
- });
+yy.Over.prototype.toString = function() {
+ var s = 'OVER (';
+ if (this.partition) {
+ s += 'PARTITION BY ' + this.partition.toString();
+ if (this.order) s += ' ';
}
-
- return new Function('p,params,alasql', 'var y;' + s + 'return r');
+ if (this.order) {
+ s += 'ORDER BY ' + this.order.toString();
+ }
+ s += ')';
+ return s;
};
-yy.Select.prototype.compileSelectGroup0 = function(query) {
- var self = this;
- self.columns.forEach(function(col, idx) {
- if (!(col instanceof yy.Column && col.columnid === '*')) {
- var colas;
- // = col.as;
- if (col instanceof yy.Column) {
- colas = escapeq(col.columnid);
- } else {
- colas = escapeq(col.toString(true));
-
- }
- for (var i = 0; i < idx; i++) {
- if (colas === self.columns[i].nick) {
- colas = self.columns[i].nick + ':' + idx;
- break;
- }
- }
- // }
- col.nick = colas;
- if (
- col.funcid &&
- (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER')
- ) {
- query.rownums.push(col.as);
- }
+/*
+//
+// Expressions for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- // }
- } else {
- query.groupStar = col.tableid || 'default';
- }
- });
+/**
+ Expression statement ( = 2*2; )
+ @class
+ @param {object} params Initial parameters
+*/
+yy.ExpressionStatement = function(params) {
+ return yy.extend(this, params);
+};
- this.columns.forEach(function(col) {
- if (col.findAggregator) {
- col.findAggregator(query);
- }
- });
+/**
+ Convert AST to string
+ @this ExpressionStatement
+ @return {string}
+*/
+yy.ExpressionStatement.prototype.toString = function() {
+ return this.expression.toString();
+};
+/**
+ Execute statement
+ @param {string} databaseid Database identificatro
+ @param {object} params Statement parameters
+ @param {statement-callback} cb Callback
+ @return {object} Result value
+*/
+yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) {
+ if (this.expression) {
- if (this.having) {
- if (this.having.findAggregator) {
- this.having.findAggregator(query);
+ alasql.precompile(this, databaseid, params); // Precompile queries
+ var exprfn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + this.expression.toJS('({})', '', null)
+ ).bind(this);
+ var res = exprfn(params, alasql);
+ if (cb) {
+ res = cb(res);
}
+ return res;
}
};
-yy.Select.prototype.compileSelectGroup1 = function(query) {
- var self = this;
- var s = 'var r = {};';
-
- self.columns.forEach(function(col) {
-
- if (col instanceof yy.Column && col.columnid === '*') {
- // s += 'for(var k in g){r[k]=g[k]};';
- // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
-
- s += 'for(var k in g) {r[k]=g[k]};';
- return '';
-
- } else {
- // var colas = col.as;
- var colas = col.as;
- if (colas === undefined) {
- if (col instanceof yy.Column) {
- colas = escapeq(col.columnid);
- } else {
- colas = col.nick;
- }
- }
- query.groupColumns[colas] = col.nick;
-
- // if(col.as) {
- s += "r['" + colas + "']=";
- // // } else {
- // // s += 'r[\''+escapeq()+'\']=';
- // // };
- // // s += ';';
-
- s += n2u(col.toJS('g', '')) + ';';
+/**
+ Expression class
+ @class
+ @param {object} params Initial parameters
+*/
- for (var i = 0; i < query.removeKeys.length; i++) {
- // THis part should be intellectual
- if (query.removeKeys[i] === colas) {
- query.removeKeys.splice(i, 1);
- break;
- }
- }
- }
- });
- // return new Function('g,params,alasql',s+'return r');
- return s;
+yy.Expression = function(params) {
+ return yy.extend(this, params);
};
-yy.Select.prototype.compileSelectGroup2 = function(query) {
- var self = this;
- var s = query.selectgfns;
- self.columns.forEach(function(col) {
-
- if (query.ingroup.indexOf(col.nick) > -1) {
- s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];";
- }
- });
-
- if (this.orderColumns && this.orderColumns.length > 0) {
- this.orderColumns.forEach(function(v, idx) {
-
- var key = '$$$' + idx;
-
- if (v instanceof yy.Column && query.groupColumns[v.columnid]) {
- s += "r['" + key + "']=r['" + v.columnid + "'];";
- } else {
- s += "r['" + key + "']=" + v.toJS('g', '') + ';';
- }
- query.removeKeys.push(key);
- });
+/**
+ Convert AST to string
+ @this ExpressionStatement
+ @return {string}
+*/
+yy.Expression.prototype.toString = function(dontas) {
+ var s = this.expression.toString(dontas);
+ if (this.order) {
+ s += ' ' + this.order.toString();
}
-
- return new Function('g,params,alasql', 'var y;' + s + 'return r');
+ if (this.nocase) {
+ s += ' COLLATE NOCASE';
+ }
+ if (this.direction) {
+ s += ' ' + this.direction;
+ }
+ return s;
};
-// SELECY * REMOVE [COLUMNS] col-list, LIKE ''
-yy.Select.prototype.compileRemoveColumns = function(query) {
- var self = this;
- if (typeof this.removecolumns !== 'undefined') {
- query.removeKeys = query.removeKeys.concat(
- this.removecolumns
- .filter(function(column) {
- return typeof column.like === 'undefined';
- })
- .map(function(column) {
- return column.columnid;
- })
- );
-
- query.removeLikeKeys = this.removecolumns
- .filter(function(column) {
- return typeof column.like !== 'undefined';
- })
- .map(function(column) {
- // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g');
- return column.like.value;
- });
+/**
+ Find aggregator in AST subtree
+ @this ExpressionStatement
+ @param {object} query Query object
+*/
+yy.Expression.prototype.findAggregator = function(query) {
+ if (this.expression.findAggregator) {
+ this.expression.findAggregator(query);
}
};
-/* global yy */
+/**
+ Convert AST to JavaScript expression
+ @this ExpressionStatement
+ @param {string} context Context string, e.g. 'p','g', or 'x'
+ @param {string} tableid Default table name
+ @param {object} defcols Default columns dictionary
+ @return {string} JavaScript expression
+*/
-yy.Select.prototype.compileHaving = function(query) {
- if (this.having) {
- var s = this.having.toJS('g', -1);
- query.havingfns = s;
+yy.Expression.prototype.toJS = function(context, tableid, defcols) {
- return new Function('g,params,alasql', 'var y;return ' + s);
+ if (this.expression.reduced) {
+ return 'true';
}
-
- return function() {
- return true;
- };
+ return this.expression.toJS(context, tableid, defcols);
};
-yy.Select.prototype.compileOrder = function(query) {
- var self = this;
- self.orderColumns = [];
- if (this.order) {
-
- if (
- this.order &&
- this.order.length == 1 &&
- this.order[0].expression &&
- typeof this.order[0].expression == 'function'
- ) {
-
- var func = this.order[0].expression;
-
- return function(a, b) {
- var ra = func(a),
- rb = func(b);
- if (ra > rb) return 1;
- if (ra == rb) return 0;
- return -1;
- };
- }
-
- var s = '';
- var sk = '';
- this.order.forEach(function(ord, idx) {
+/**
+ Compile AST to JavaScript expression
+ @this ExpressionStatement
+ @param {string} context Context string, e.g. 'p','g', or 'x'
+ @param {string} tableid Default table name
+ @param {object} defcols Default columns dictionary
+ @return {string} JavaScript expression
+*/
- if (ord.expression instanceof yy.NumValue) {
- var v = self.columns[ord.expression.value - 1];
- } else {
- var v = ord.expression;
- }
- self.orderColumns.push(v);
+yy.Expression.prototype.compile = function(context, tableid, defcols) {
- var key = '$$$' + idx;
+ if (this.reduced) {
+ return returnTrue();
+ }
+ return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols));
+};
- // Date conversion
- var dg = '';
- //if(alasql.options.valueof)
- if (ord.expression instanceof yy.Column) {
- var columnid = ord.expression.columnid;
- if (query.xcolumns[columnid]) {
- var dbtypeid = query.xcolumns[columnid].dbtypeid;
- if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2')
- dg = '.valueOf()';
- // TODO Add other types mapping
- } else {
- if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check
- }
- // dg = '.valueOf()';
- }
- // COLLATE NOCASE
- if (ord.nocase) dg += '.toUpperCase()';
- s +=
- "if((a['" +
- key +
- "']||'')" +
- dg +
- (ord.direction == 'ASC' ? '>' : '<') +
- "(b['" +
- key +
- "']||'')" +
- dg +
- ')return 1;';
- s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){';
+/**
+ JavaScript class
+ @class
+*/
+yy.JavaScript = function(params) {
+ return yy.extend(this, params);
+};
+yy.JavaScript.prototype.toString = function() {
+ var s = '``' + this.value + '``';
+ return s;
+};
- /*
-if(false) {
+yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) {
- if(ord.expression instanceof yy.NumValue) {
- ord.expression = self.columns[ord.expression.value-1];
+ return '(' + this.value + ')';
+};
+yy.JavaScript.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ var expr = new Function('params,alasql,p', this.value);
+ expr(params, alasql);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
- ord.expression = new yy.Column({columnid:ord.expression.nick});
- };
+/**
+ Literal class
+ @class
+ @example
+ MyVar, [My vairable], `MySQL variable`
+*/
- if(ord.expression instanceof yy.Column) {
- var columnid = ord.expression.columnid;
- if(query.xcolumns[columnid]) {
- var dbtypeid = query.xcolumns[columnid].dbtypeid;
- if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()';
- // TODO Add other types mapping
- } else {
- if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check
- }
- // COLLATE NOCASE
- if(ord.nocase) dg += '.toUpperCase()';
+yy.Literal = function(params) {
+ return yy.extend(this, params);
+};
+yy.Literal.prototype.toString = function(dontas) {
+ var s = this.value;
+ if (this.value1) {
+ s = this.value1 + '.' + s;
+ }
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ // else s = tableid+'.'+s;
+ return s;
+};
- s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;';
- s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){';
+/**
+ Join class
+ @class
+*/
- } else {
- dg = '.valueOf()';
- // COLLATE NOCASE
- if(ord.nocase) dg += '.toUpperCase()';
- s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;';
- s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){';
- }
+yy.Join = function(params) {
+ return yy.extend(this, params);
+};
+yy.Join.prototype.toString = function() {
+ var s = ' ';
+ if (this.joinmode) {
+ s += this.joinmode + ' ';
+ }
+ s += 'JOIN ' + this.table.toString();
+ return s;
+};
- // TODO Add date comparision
+// }
-}
+/**
+ Table class
+ @class
*/
- sk += '}';
- });
- s += 'return 0;';
- s += sk + 'return -1';
- query.orderfns = s;
- return new Function('a,b', 'var y;' + s);
+yy.Table = function(params) {
+ return yy.extend(this, params);
+};
+yy.Table.prototype.toString = function() {
+ var s = this.tableid;
+ // if(this.joinmode)
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
}
+ return s;
};
-// Pivot functions
/**
- Compile Pivot functions
- @param {object} query Source query
- @return {function} Pivoting functions
+ View class
+ @class
*/
-yy.Select.prototype.compilePivot = function(query) {
- var self = this;
- /** @type {string} Main pivoting column */
- var columnid = self.pivot.columnid;
- var exprcolid = self.pivot.expr.expression.columnid;
- var aggr = self.pivot.expr.aggregatorid;
- var inlist = self.pivot.inlist;
+yy.View = function(params) {
+ return yy.extend(this, params);
+};
+yy.View.prototype.toString = function() {
+ var s = this.viewid;
+ // if(this.joinmode)
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
+ }
+ return s;
+};
- if (inlist) {
- inlist = inlist.map(function(l) {
- return l.expr.columnid;
- });
+/**
+ Binary operation class
+ @class
+*/
+yy.Op = function(params) {
+ return yy.extend(this, params);
+};
+yy.Op.prototype.toString = function() {
+ if (this.op === 'IN' || this.op === 'NOT IN') {
+ return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')';
}
+ if (this.allsome) {
+ return (
+ this.left.toString() +
+ ' ' +
+ this.op +
+ ' ' +
+ this.allsome +
+ ' (' +
+ this.right.toString() +
+ ')'
+ );
+ }
+ if (this.op === '->' || this.op === '!') {
+ var s = this.left.toString() + this.op;
- // Function for PIVOT post production
- return function() {
- var query = this;
- var cols = query.columns
- .filter(function(col) {
- return col.columnid != columnid && col.columnid != exprcolid;
- })
- .map(function(col) {
- return col.columnid;
- });
+ if (typeof this.right !== 'string' && typeof this.right !== 'number') {
+ s += '(';
+ }
- var newcols = [];
- var gnewcols = {};
- var gr = {};
- var ga = {};
- var data = [];
- query.data.forEach(function(d) {
- if (!inlist || inlist.indexOf(d[columnid]) > -1) {
- var gx = cols
- .map(function(colid) {
- return d[colid];
- })
- .join('`');
- var g = gr[gx];
- if (!g) {
- g = {};
- gr[gx] = g;
- data.push(g);
- cols.forEach(function(colid) {
- g[colid] = d[colid];
- });
- }
+ s += this.right.toString();
- if (!ga[gx]) {
- ga[gx] = {};
- }
+ if (typeof this.right !== 'string' && typeof this.right !== 'number') {
+ s += ')';
+ }
- if (ga[gx][d[columnid]]) {
- ga[gx][d[columnid]]++;
- } else {
- ga[gx][d[columnid]] = 1;
- }
+ return s;
+ }
+ return (
+ this.left.toString() +
+ ' ' +
+ this.op +
+ ' ' +
+ (this.allsome ? this.allsome + ' ' : '') +
+ this.right.toString()
+ );
+};
- if (!gnewcols[d[columnid]]) {
- gnewcols[d[columnid]] = true;
- newcols.push(d[columnid]);
- }
+yy.Op.prototype.findAggregator = function(query) {
- if (aggr == 'SUM' || aggr == 'AVG') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
- g[d[columnid]] += d[exprcolid];
- } else if (aggr == 'COUNT') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
- g[d[columnid]]++;
- } else if (aggr == 'MIN') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity;
- if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'MAX') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity;
- if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'FIRST') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'LAST') {
- g[d[columnid]] = d[exprcolid];
- } else if (alasql.aggr[aggr]) {
- // Custom aggregator
- alasql.aggr[aggr](g[d[columnid]], d[exprcolid]);
- } else {
- throw new Error('Wrong aggregator in PIVOT clause');
- }
- }
- });
-
- if (aggr == 'AVG') {
- for (var gx in gr) {
- var d = gr[gx];
- for (var colid in d) {
- if (cols.indexOf(colid) == -1 && colid != exprcolid) {
- d[colid] = d[colid] / ga[gx][colid];
- }
- }
- }
- }
-
- // columns
- query.data = data;
-
- if (inlist) newcols = inlist;
-
- var ncol = query.columns.filter(function(col) {
- return col.columnid == exprcolid;
- })[0];
- query.columns = query.columns.filter(function(col) {
- return !(col.columnid == columnid || col.columnid == exprcolid);
- });
- newcols.forEach(function(colid) {
- var nc = cloneDeep(ncol);
- nc.columnid = colid;
- query.columns.push(nc);
- });
- };
+ if (this.left && this.left.findAggregator) {
+ this.left.findAggregator(query);
+ }
+ // Do not go in > ALL
+ if (this.right && this.right.findAggregator && !this.allsome) {
+ this.right.findAggregator(query);
+ }
};
-// var columnid = this.pivot.columnid;
-
-// return function(data){
-
-// if(false) {
-
-// }
-
-// if(false) {
+yy.Op.prototype.toType = function(tableid) {
+ if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) {
+ return 'number';
+ }
+ if (['||'].indexOf(this.op) > -1) {
+ return 'string';
+ }
+ if (this.op === '+') {
+ if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') {
+ return 'string';
+ }
+ if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') {
+ return 'number';
+ }
+ }
-// }
-// };
+ if (
+ [
+ 'AND',
+ 'OR',
+ 'NOT',
+ '=',
+ '==',
+ '===',
+ '!=',
+ '!==',
+ '!===',
+ '>',
+ '>=',
+ '<',
+ '<=',
+ 'IN',
+ 'NOT IN',
+ 'LIKE',
+ 'NOT LIKE',
+ 'REGEXP',
+ 'GLOB',
+ ].indexOf(this.op) > -1
+ ) {
+ return 'boolean';
+ }
-/**
- Compile UNPIVOT clause
- @param {object} query Query object
- @return {function} Function for unpivoting
-*/
-yy.Select.prototype.compileUnpivot = function(query) {
- var self = this;
- var tocolumnid = self.unpivot.tocolumnid;
- var forcolumnid = self.unpivot.forcolumnid;
- var inlist = self.unpivot.inlist.map(function(l) {
- return l.columnid;
- });
+ if (
+ this.op === 'BETWEEN' ||
+ this.op === 'NOT BETWEEN' ||
+ this.op === 'IS NULL' ||
+ this.op === 'IS NOT NULL'
+ ) {
+ return 'boolean';
+ }
- return function() {
- var data = [];
+ if (this.allsome) {
+ return 'boolean';
+ }
- var xcols = query.columns
- .map(function(col) {
- return col.columnid;
- })
- .filter(function(colid) {
- return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid;
- });
+ if (!this.op) {
+ return this.left.toType();
+ }
- query.data.forEach(function(d) {
- inlist.forEach(function(colid) {
- var nd = {};
- xcols.forEach(function(xcolid) {
- nd[xcolid] = d[xcolid];
- });
- nd[forcolumnid] = colid;
- nd[tocolumnid] = d[colid];
- data.push(nd);
- });
- });
+ return 'unknown';
+};
- query.data = data;
+yy.Op.prototype.toJS = function(context, tableid, defcols) {
- // });
+ var s;
+ var refs = [];
+ var op = this.op;
+ var _this = this;
+ //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)};
+ //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)};
+ var accessedLeft = false,
+ accessedRight = false;
+ var ref = function(expr) {
+ if (expr.toJS) {
+ expr = expr.toJS(context, tableid, defcols);
+ }
+ var i = refs.push(expr) - 1;
+ return 'y[' + i + ']';
+ };
+ var leftJS = function() {
+ return ref(_this.left);
+ };
+ var rightJS = function() {
+ return ref(_this.right);
};
-};
-
-/*
-//
-// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-/**
- Calculate ROLLUP() combination
- */
+ if (this.op === '=') {
+ op = '===';
+ } else if (this.op === '<>') {
+ op = '!=';
+ } else if (this.op === 'OR') {
+ op = '||';
+ }
-var rollup = function(a, query) {
- var rr = [];
- var mask = 0;
- var glen = a.length;
- for (var g = 0; g < glen + 1; g++) {
- var ss = [];
- for (var i = 0; i < glen; i++) {
- if (a[i] instanceof yy.Column) {
- a[i].nick = escapeq(a[i].columnid);
+ // Arrow operator
+ if (this.op === '->') {
+ // Expression to prevent error if object is empty (#344)
+ var ljs = '(' + leftJS() + '||{})';
- query.groupColumns[escapeq(a[i].columnid)] = a[i].nick;
- var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);
- } else {
- query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString());
- var aaa =
- escapeq(a[i].toString()) +
- '\t' +
- a[i].toJS('p', query.sources[0].alias, query.defcols);
+ if (typeof this.right === 'string') {
+ s = ljs + '["' + this.right + '"]';
+ } else if (typeof this.right === 'number') {
+ s = ljs + '[' + this.right + ']';
+ } else if (this.right instanceof yy.FuncValue) {
+ var ss = [];
+ if (!(!this.right.args || 0 === this.right.args.length)) {
+ var ss = this.right.args.map(ref);
}
-
- if (mask & (1 << i)) ss.push(aaa);
+ s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')';
+ } else {
+ s = '' + ljs + '[' + rightJS() + ']';
}
- rr.push(ss);
- mask = (mask << 1) + 1;
}
- return rr;
-};
-
-/**
- Calculate CUBE()
- */
-var cube = function(a, query) {
- var rr = [];
- var glen = a.length;
- var glenCube = 1 << glen;
- for (var g = 0; g < glenCube; g++) {
- var ss = [];
- for (var i = 0; i < glen; i++) {
- if (g & (1 << i))
- //ss.push(a[i]);
- //ss = cartes(ss,decartes(a[i]));
-
- // var aaa = a[i].toString()+'\t'
- // +a[i].toJS('p',query.sources[0].alias,query.defcols);
- ss = ss.concat(decartes(a[i], query));
- //
+ if (this.op === '!') {
+ if (typeof this.right === 'string') {
+ s =
+ '' +
+ 'alasql.databases[alasql.useid].objects[' +
+ leftJS() +
+ ']["' +
+ this.right +
+ '"]';
}
- rr.push(ss);
+ // TODO - add other cases
}
- return rr;
-};
-
-/**
- GROUPING SETS()
- */
-var groupingsets = function(a, query) {
- return a.reduce(function(acc, d) {
- acc = acc.concat(decartes(d, query));
- return acc;
- }, []);
-};
-/**
- Cartesian production
- */
-var cartes = function(a1, a2) {
- var rrr = [];
- for (var i1 = 0; i1 < a1.length; i1++) {
- for (var i2 = 0; i2 < a2.length; i2++) {
- rrr.push(a1[i1].concat(a2[i2]));
- }
+ if (this.op === 'IS') {
+ s =
+ '' +
+ '(' +
+ '(' +
+ leftJS() +
+ '==null)' + // Cant be ===
+ ' === ' +
+ '(' +
+ rightJS() +
+ '==null)' + // Cant be ===
+ ')';
}
- return rrr;
-};
-
-/**
- Prepare groups function
- */
-function decartes(gv, query) {
- if (Array.isArray(gv)) {
- var res = [[]];
- for (var t = 0; t < gv.length; t++) {
- if (gv[t] instanceof yy.Column) {
+ if (this.op === '==') {
+ s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')';
+ }
- gv[t].nick = escapeq(gv[t].columnid);
- query.groupColumns[gv[t].nick] = gv[t].nick;
- res = res.map(function(r) {
- return r.concat(
- gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // res = res.map(function(r){return r.concat(gv[t].columnid)});
- } else if (gv[t] instanceof yy.FuncValue) {
- query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
- res = res.map(function(r) {
- return r.concat(
- escapeq(gv[t].toString()) +
- '\t' +
- gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // to be defined
- } else if (gv[t] instanceof yy.GroupExpression) {
- if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query));
- else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query));
- else if (gv[t].type == 'GROUPING SETS')
- res = cartes(res, groupingsets(gv[t].group, query));
- else throw new Error('Unknown grouping function');
- } else if (gv[t] === '') {
-
- res = [['1\t1']];
- } else {
- // if(gv[t])
-
- res = res.map(function(r) {
- query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
- return r.concat(
- escapeq(gv[t].toString()) +
- '\t' +
- gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // res = res.concat(gv[t]);
- }
+ if (this.op === '===' || this.op === '!===') {
+ s =
+ '' +
+ '(' +
+ (this.op === '!===' ? '!' : '') +
+ '(' +
+ '(' +
+ leftJS() +
+ ').valueOf()' +
+ '===' +
+ '(' +
+ rightJS() +
+ ').valueOf()' +
+ ')' +
+ ')';
+ }
+ if (this.op === '!==') {
+ s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))';
+ }
+ if (this.op === '||') {
+ s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))';
+ }
+ if (this.op === 'LIKE' || this.op === 'NOT LIKE') {
+ var s =
+ '(' +
+ (this.op === 'NOT LIKE' ? '!' : '') +
+ 'alasql.utils.like(' +
+ rightJS() +
+ ',' +
+ leftJS();
+ if (this.escape) {
+ s += ',' + ref(this.escape);
}
- return res;
- } else if (gv instanceof yy.FuncValue) {
+ s += '))';
+ }
+ if (this.op === 'REGEXP') {
+ s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')';
+ }
+ if (this.op === 'GLOB') {
+ s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')';
+ }
+
+ if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {
+ var left = leftJS();
+ s =
+ '' +
+ '(' +
+ (this.op === 'NOT BETWEEN' ? '!' : '') +
+ '(' +
+ '(' +
+ ref(this.right1) +
+ '<=' +
+ left +
+ ') && (' +
+ left +
+ '<=' +
+ ref(this.right2) +
+ ')' +
+ ')' +
+ ')';
- query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
- return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];
- } else if (gv instanceof yy.Column) {
- gv.nick = escapeq(gv.columnid);
- query.groupColumns[gv.nick] = gv.nick;
- return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened?
- // } else if(gv instanceof yy.Expression) {
- // return [gv.columnid]; // Is this ever happened?
- } else {
- query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
- return [
- escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols),
- ];
- // throw new Error('Single argument in the group without array');
}
-}
+ if (this.op === 'IN') {
+ if (this.right instanceof yy.Select) {
+ s = '(';
+ // s += 'this.query.queriesdata['+this.queriesidx+']';
+ // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))';
+ s +=
+ 'alasql.utils.flatArray(this.queriesfn[' +
+ this.queriesidx +
+ '](params,null,' +
+ context +
+ '))';
+ s += '.indexOf(';
+ s += leftJS() + ')>-1)';
+ } else if (Array.isArray(this.right)) {
+ // if(this.right.length == 0) return 'false';
+ s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)';
-/*
-//
-// Select run-time part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+ } else {
+ s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';
-yy.Select.prototype.compileDefCols = function(query, databaseid) {
+ // } else {
+ // throw new Error('Wrong IN operator without SELECT part');
+ }
+ }
- var defcols = {'.': {}};
- if (this.from) {
- this.from.forEach(function(fr) {
- defcols['.'][fr.as || fr.tableid] = true;
- if (fr instanceof yy.Table) {
- var alias = fr.as || fr.tableid;
+ if (this.op === 'NOT IN') {
+ if (this.right instanceof yy.Select) {
+ s = '(';
+ //this.query.queriesdata['+this.queriesidx+']
+ // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))';
+ s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';
+ s += '.indexOf(';
+ s += leftJS() + ')<0)';
+ } else if (Array.isArray(this.right)) {
+ // if(this.right.length == 0) return 'true';
+ s = '([' + this.right.map(ref).join(',') + '].indexOf(';
+ s += leftJS() + ')<0)';
+ } else {
+ s = '(' + rightJS() + '.indexOf(';
+ s += leftJS() + ')==-1)';
- var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid];
+ // throw new Error('Wrong NOT IN operator without SELECT part');
+ }
+ }
- if (undefined === table) {
- throw new Error('Table does not exist: ' + fr.tableid);
- }
+ if (this.allsome === 'ALL') {
+ var s;
+ if (this.right instanceof yy.Select) {
+ // var s = 'this.query.queriesdata['+this.queriesidx+']';
+ s =
+ 'alasql.utils.flatArray(this.query.queriesfn[' +
+ this.queriesidx +
+ '](params,null,p))';
- if (table.columns) {
- table.columns.forEach(function(col) {
- if (defcols[col.columnid]) {
- defcols[col.columnid] = '-'; // Ambigous
- } else {
- defcols[col.columnid] = alias;
- }
- });
- }
- } else if (fr instanceof yy.Select) {
- } else if (fr instanceof yy.Search) {
- } else if (fr instanceof yy.ParamValue) {
- } else if (fr instanceof yy.VarValue) {
- } else if (fr instanceof yy.FuncValue) {
- } else if (fr instanceof yy.FromData) {
- } else if (fr instanceof yy.Json) {
- } else if (fr.inserted) {
- } else {
+ s += '.every(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else if (Array.isArray(this.right)) {
+ s =
+ '' +
+ (this.right.length == 1
+ ? ref(this.right[0])
+ : '[' + this.right.map(ref).join(',') + ']');
+ s += '.every(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else {
+ throw new Error('NOT IN operator without SELECT');
+ }
+ }
- throw new Error('Unknown type of FROM clause');
- }
- });
+ if (this.allsome === 'SOME' || this.allsome === 'ANY') {
+ var s;
+ if (this.right instanceof yy.Select) {
+ // var s = 'this.query.queriesdata['+this.queriesidx+']';
+ s =
+ 'alasql.utils.flatArray(this.query.queriesfn[' +
+ this.queriesidx +
+ '](params,null,p))';
+ s += '.some(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else if (Array.isArray(this.right)) {
+ s =
+ '' +
+ (this.right.length == 1
+ ? ref(this.right[0])
+ : '[' + this.right.map(ref).join(',') + ']');
+ s += '.some(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else {
+ throw new Error('SOME/ANY operator without SELECT');
+ }
}
- if (this.joins) {
- this.joins.forEach(function(jn) {
- defcols['.'][jn.as || jn.table.tableid] = true;
-
- if (jn.table) {
- var alias = jn.table.tableid;
- if (jn.as) alias = jn.as;
- var alias = jn.as || jn.table.tableid;
- var table =
- alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid];
-
- if (table.columns) {
- table.columns.forEach(function(col) {
- if (defcols[col.columnid]) {
- defcols[col.columnid] = '-'; // Ambigous
- } else {
- defcols[col.columnid] = alias;
- }
- });
- }
- } else if (jn.select) {
- } else if (jn.param) {
- } else if (jn.func) {
+ // Special case for AND optimization (if reduced)
+ if (this.op === 'AND') {
+ if (this.left.reduced) {
+ if (this.right.reduced) {
+ return 'true';
} else {
- throw new Error('Unknown type of FROM clause');
+ s = rightJS();
}
- });
+ } else if (this.right.reduced) {
+ s = leftJS();
+ }
+
+ // Otherwise process as regular operation (see below)
+ op = '&&';
}
- // for(var k in defcols) {
- // if(defcols[k] == '-') defcols[k] = undefined;
+
+ // if(this.op === '^') {
+ // // return 'Math.pow('
+ // // + leftJS()
+ // // + ','
+ // // + rightJS()
+ // // + ')';
// }
- return defcols;
-};
+ // Change names
-/*
-//
-// UNION for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+ var expr = s || '(' + leftJS() + op + rightJS() + ')';
-// SELECT UNION statement
+ var declareRefs = 'y=[(' + refs.join('), (') + ')]';
-yy.Union = function(params) {
- return yy.extend(this, params);
-};
-yy.Union.prototype.toString = function() {
- return 'UNION';
+ if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') {
+ return '(' + declareRefs + ', ' + expr + ')';
+ }
+
+ return (
+ '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')'
+ );
};
-yy.Union.prototype.compile = function(tableid) {
- return null;
-};
-
-/*
-//
-// CROSS AND OUTER APPLY for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Apply = function(params) {
+yy.VarValue = function(params) {
return yy.extend(this, params);
};
+yy.VarValue.prototype.toString = function() {
+ return '@' + this.variable;
+};
-yy.Apply.prototype.toString = function() {
- var s = this.applymode + ' APPLY (' + this.select.toString() + ')';
-
- if (this.as) s += ' AS ' + this.as;
-
- return s;
+yy.VarValue.prototype.toType = function() {
+ return 'unknown';
};
-/*
-//
-// CROSS AND OUTER APPLY for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+yy.VarValue.prototype.toJS = function() {
+ return "alasql.vars['" + this.variable + "']";
+};
-yy.Over = function(params) {
+yy.NumValue = function(params) {
return yy.extend(this, params);
};
-yy.Over.prototype.toString = function() {
- var s = 'OVER (';
- if (this.partition) {
- s += 'PARTITION BY ' + this.partition.toString();
- if (this.order) s += ' ';
- }
- if (this.order) {
- s += 'ORDER BY ' + this.order.toString();
- }
- s += ')';
- return s;
+yy.NumValue.prototype.toString = function() {
+ return this.value.toString();
};
-/*
-//
-// Expressions for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+yy.NumValue.prototype.toType = function() {
+ return 'number';
+};
-/**
- Expression statement ( = 2*2; )
- @class
- @param {object} params Initial parameters
-*/
-yy.ExpressionStatement = function(params) {
- return yy.extend(this, params);
+yy.NumValue.prototype.toJS = function() {
+ return '' + this.value;
};
-/**
- Convert AST to string
- @this ExpressionStatement
- @return {string}
-*/
-yy.ExpressionStatement.prototype.toString = function() {
- return this.expression.toString();
+yy.StringValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.StringValue.prototype.toString = function() {
+ return "'" + this.value.toString() + "'";
};
-/**
- Execute statement
- @param {string} databaseid Database identificatro
- @param {object} params Statement parameters
- @param {statement-callback} cb Callback
- @return {object} Result value
-*/
-yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) {
- if (this.expression) {
- alasql.precompile(this, databaseid, params); // Precompile queries
- var exprfn = new Function(
- 'params,alasql,p',
- 'var y;return ' + this.expression.toJS('({})', '', null)
- ).bind(this);
- var res = exprfn(params, alasql);
- if (cb) {
- res = cb(res);
- }
- return res;
- }
+yy.StringValue.prototype.toType = function() {
+ return 'string';
};
-/**
- Expression class
- @class
- @param {object} params Initial parameters
-*/
+yy.StringValue.prototype.toJS = function() {
-yy.Expression = function(params) {
- return yy.extend(this, params);
+ // return "'"+doubleqq(this.value)+"'";
+ return "'" + escapeq(this.value) + "'";
};
-/**
- Convert AST to string
- @this ExpressionStatement
- @return {string}
-*/
-yy.Expression.prototype.toString = function(dontas) {
- var s = this.expression.toString(dontas);
- if (this.order) {
- s += ' ' + this.order.toString();
- }
- if (this.nocase) {
- s += ' COLLATE NOCASE';
- }
- if (this.direction) {
- s += ' ' + this.direction;
- }
- return s;
+yy.DomainValueValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.DomainValueValue.prototype.toString = function() {
+ return 'VALUE';
};
-/**
- Find aggregator in AST subtree
- @this ExpressionStatement
- @param {object} query Query object
-*/
-yy.Expression.prototype.findAggregator = function(query) {
- if (this.expression.findAggregator) {
- this.expression.findAggregator(query);
- }
+yy.DomainValueValue.prototype.toType = function() {
+ return 'object';
};
-/**
- Convert AST to JavaScript expression
- @this ExpressionStatement
- @param {string} context Context string, e.g. 'p','g', or 'x'
- @param {string} tableid Default table name
- @param {object} defcols Default columns dictionary
- @return {string} JavaScript expression
-*/
+yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) {
-yy.Expression.prototype.toJS = function(context, tableid, defcols) {
+ // return "'"+doubleqq(this.value)+"'";
+ return context;
+};
- if (this.expression.reduced) {
- return 'true';
- }
- return this.expression.toJS(context, tableid, defcols);
+yy.ArrayValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.ArrayValue.prototype.toString = function() {
+ return 'ARRAY[]';
};
-/**
- Compile AST to JavaScript expression
- @this ExpressionStatement
- @param {string} context Context string, e.g. 'p','g', or 'x'
- @param {string} tableid Default table name
- @param {object} defcols Default columns dictionary
- @return {string} JavaScript expression
-*/
+yy.ArrayValue.prototype.toType = function() {
+ return 'object';
+};
-yy.Expression.prototype.compile = function(context, tableid, defcols) {
+yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) {
- if (this.reduced) {
- return returnTrue();
- }
- return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols));
+ // return "'"+doubleqq(this.value)+"'";
+ return (
+ '[(' +
+ this.value
+ .map(function(el) {
+ return el.toJS(context, tableid, defcols);
+ })
+ .join('), (') +
+ ')]'
+ );
};
-/**
- JavaScript class
- @class
-*/
-yy.JavaScript = function(params) {
+yy.LogicValue = function(params) {
return yy.extend(this, params);
};
-yy.JavaScript.prototype.toString = function() {
- var s = '``' + this.value + '``';
- return s;
+yy.LogicValue.prototype.toString = function() {
+ return this.value ? 'TRUE' : 'FALSE';
};
-yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) {
-
- return '(' + this.value + ')';
-};
-yy.JavaScript.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- var expr = new Function('params,alasql,p', this.value);
- expr(params, alasql);
- if (cb) {
- res = cb(res);
- }
- return res;
+yy.LogicValue.prototype.toType = function() {
+ return 'boolean';
};
-/**
- Literal class
- @class
- @example
- MyVar, [My vairable], `MySQL variable`
-*/
+yy.LogicValue.prototype.toJS = function() {
+ return this.value ? 'true' : 'false';
+};
-yy.Literal = function(params) {
+yy.NullValue = function(params) {
return yy.extend(this, params);
};
-yy.Literal.prototype.toString = function(dontas) {
- var s = this.value;
- if (this.value1) {
- s = this.value1 + '.' + s;
- }
- if (this.alias && !dontas) s += ' AS ' + this.alias;
- // else s = tableid+'.'+s;
- return s;
+yy.NullValue.prototype.toString = function() {
+ return 'NULL';
+};
+yy.NullValue.prototype.toJS = function() {
+ return 'undefined';
+ // return 'undefined';
};
-/**
- Join class
- @class
-*/
-
-yy.Join = function(params) {
+yy.ParamValue = function(params) {
return yy.extend(this, params);
};
-yy.Join.prototype.toString = function() {
- var s = ' ';
- if (this.joinmode) {
- s += this.joinmode + ' ';
- }
- s += 'JOIN ' + this.table.toString();
- return s;
-};
-
-// }
-
-/**
- Table class
- @class
-*/
-
-yy.Table = function(params) {
- return yy.extend(this, params);
+yy.ParamValue.prototype.toString = function() {
+ return '$' + this.param;
};
-yy.Table.prototype.toString = function() {
- var s = this.tableid;
- // if(this.joinmode)
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
+yy.ParamValue.prototype.toJS = function() {
+ if (typeof this.param === 'string') {
+ return "params['" + this.param + "']";
}
- return s;
-};
-
-/**
- View class
- @class
-*/
-yy.View = function(params) {
- return yy.extend(this, params);
-};
-yy.View.prototype.toString = function() {
- var s = this.viewid;
- // if(this.joinmode)
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
- }
- return s;
+ return 'params[' + this.param + ']';
};
-/**
- Binary operation class
- @class
-*/
-yy.Op = function(params) {
+yy.UniOp = function(params) {
return yy.extend(this, params);
};
-yy.Op.prototype.toString = function() {
- if (this.op === 'IN' || this.op === 'NOT IN') {
- return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')';
+yy.UniOp.prototype.toString = function() {
+ var s;
+ s = void 0;
+ if (this.op === '~') {
+ s = this.op + this.right.toString();
}
- if (this.allsome) {
- return (
- this.left.toString() +
- ' ' +
- this.op +
- ' ' +
- this.allsome +
- ' (' +
- this.right.toString() +
- ')'
- );
+ if (this.op === '-') {
+ s = this.op + this.right.toString();
}
- if (this.op === '->' || this.op === '!') {
- var s = this.left.toString() + this.op;
-
- if (typeof this.right !== 'string' && typeof this.right !== 'number') {
- s += '(';
- }
-
- s += this.right.toString();
-
- if (typeof this.right !== 'string' && typeof this.right !== 'number') {
- s += ')';
- }
-
- return s;
+ if (this.op === '+') {
+ s = this.op + this.right.toString();
}
- return (
- this.left.toString() +
- ' ' +
- this.op +
- ' ' +
- (this.allsome ? this.allsome + ' ' : '') +
- this.right.toString()
- );
+ if (this.op === '#') {
+ s = this.op + this.right.toString();
+ }
+ if (this.op === 'NOT') {
+ s = this.op + '(' + this.right.toString() + ')';
+ }
+ if (this.op === null) {
+ s = '(' + this.right.toString() + ')';
+ }
+ if (!s) {
+ s = '(' + this.right.toString() + ')';
+ }
+ return s;
};
-yy.Op.prototype.findAggregator = function(query) {
-
- if (this.left && this.left.findAggregator) {
- this.left.findAggregator(query);
- }
- // Do not go in > ALL
- if (this.right && this.right.findAggregator && !this.allsome) {
+yy.UniOp.prototype.findAggregator = function(query) {
+ if (this.right.findAggregator) {
this.right.findAggregator(query);
}
};
-yy.Op.prototype.toType = function(tableid) {
- if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) {
+yy.UniOp.prototype.toType = function() {
+ if (this.op === '-') {
return 'number';
}
- if (['||'].indexOf(this.op) > -1) {
- return 'string';
- }
+
if (this.op === '+') {
- if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') {
- return 'string';
- }
- if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') {
- return 'number';
- }
+ return 'number';
}
- if (
- [
- 'AND',
- 'OR',
- 'NOT',
- '=',
- '==',
- '===',
- '!=',
- '!==',
- '!===',
- '>',
- '>=',
- '<',
- '<=',
- 'IN',
- 'NOT IN',
- 'LIKE',
- 'NOT LIKE',
- 'REGEXP',
- 'GLOB',
- ].indexOf(this.op) > -1
- ) {
+ if (this.op === 'NOT') {
return 'boolean';
}
- if (
- this.op === 'BETWEEN' ||
- this.op === 'NOT BETWEEN' ||
- this.op === 'IS NULL' ||
- this.op === 'IS NOT NULL'
- ) {
- return 'boolean';
- }
+ // Todo: implement default case
+};
- if (this.allsome) {
- return 'boolean';
+yy.UniOp.prototype.toJS = function(context, tableid, defcols) {
+ if (this.op === '~') {
+ return '(~(' + this.right.toJS(context, tableid, defcols) + '))';
}
- if (!this.op) {
- return this.left.toType();
+ if (this.op === '-') {
+ return '(-(' + this.right.toJS(context, tableid, defcols) + '))';
}
- return 'unknown';
-};
-
-yy.Op.prototype.toJS = function(context, tableid, defcols) {
-
- var s;
- var refs = [];
- var op = this.op;
- var _this = this;
- //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)};
- //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)};
- var accessedLeft = false,
- accessedRight = false;
- var ref = function(expr) {
- if (expr.toJS) {
- expr = expr.toJS(context, tableid, defcols);
- }
- var i = refs.push(expr) - 1;
- return 'y[' + i + ']';
- };
- var leftJS = function() {
- return ref(_this.left);
- };
- var rightJS = function() {
- return ref(_this.right);
- };
-
- if (this.op === '=') {
- op = '===';
- } else if (this.op === '<>') {
- op = '!=';
- } else if (this.op === 'OR') {
- op = '||';
+ if (this.op === '+') {
+ return '(' + this.right.toJS(context, tableid, defcols) + ')';
}
- // Arrow operator
- if (this.op === '->') {
- // Expression to prevent error if object is empty (#344)
- var ljs = '(' + leftJS() + '||{})';
+ if (this.op === 'NOT') {
+ return '!(' + this.right.toJS(context, tableid, defcols) + ')';
+ }
- if (typeof this.right === 'string') {
- s = ljs + '["' + this.right + '"]';
- } else if (typeof this.right === 'number') {
- s = ljs + '[' + this.right + ']';
- } else if (this.right instanceof yy.FuncValue) {
- var ss = [];
- if (!(!this.right.args || 0 === this.right.args.length)) {
- var ss = this.right.args.map(ref);
- }
- s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')';
+ if (this.op === '#') {
+ if (this.right instanceof yy.Column) {
+ return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])";
} else {
- s = '' + ljs + '[' + rightJS() + ']';
+ return (
+ '(alasql.databases[alasql.useid].objects[' +
+ this.right.toJS(context, tableid, defcols) +
+ '])'
+ );
}
}
- if (this.op === '!') {
- if (typeof this.right === 'string') {
- s =
- '' +
- 'alasql.databases[alasql.useid].objects[' +
- leftJS() +
- ']["' +
- this.right +
- '"]';
- }
- // TODO - add other cases
+ // Please avoid === here
+ if (this.op == null) {
+ // jshint ignore:line
+ return '(' + this.right.toJS(context, tableid, defcols) + ')';
}
- if (this.op === 'IS') {
- s =
- '' +
- '(' +
- '(' +
- leftJS() +
- '==null)' + // Cant be ===
- ' === ' +
- '(' +
- rightJS() +
- '==null)' + // Cant be ===
- ')';
- }
-
- if (this.op === '==') {
- s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')';
- }
-
- if (this.op === '===' || this.op === '!===') {
- s =
- '' +
- '(' +
- (this.op === '!===' ? '!' : '') +
- '(' +
- '(' +
- leftJS() +
- ').valueOf()' +
- '===' +
- '(' +
- rightJS() +
- ').valueOf()' +
- ')' +
- ')';
- }
+ // Todo: implement default case.
+};
- if (this.op === '!==') {
- s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))';
- }
- if (this.op === '||') {
- s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))';
+yy.Column = function(params) {
+ return yy.extend(this, params);
+};
+yy.Column.prototype.toString = function(dontas) {
+ var s;
+ if (this.columnid == +this.columnid) {
+ // jshint ignore:line
+ s = '[' + this.columnid + ']';
+ } else {
+ s = this.columnid;
}
- if (this.op === 'LIKE' || this.op === 'NOT LIKE') {
- var s =
- '(' +
- (this.op === 'NOT LIKE' ? '!' : '') +
- 'alasql.utils.like(' +
- rightJS() +
- ',' +
- leftJS();
- if (this.escape) {
- s += ',' + ref(this.escape);
+ if (this.tableid) {
+ if (+this.columnid === this.columnid) {
+ s = this.tableid + s;
+ } else {
+ s = this.tableid + '.' + s;
+ }
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
}
- s += '))';
- }
- if (this.op === 'REGEXP') {
- s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')';
- }
- if (this.op === 'GLOB') {
- s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')';
}
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ return s;
+};
- if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {
- var left = leftJS();
- s =
- '' +
- '(' +
- (this.op === 'NOT BETWEEN' ? '!' : '') +
- '(' +
- '(' +
- ref(this.right1) +
- '<=' +
- left +
- ') && (' +
- left +
- '<=' +
- ref(this.right2) +
- ')' +
- ')' +
- ')';
+yy.Column.prototype.toJS = function(context, tableid, defcols) {
- }
+ var s = '';
+ if (!this.tableid && tableid === '' && !defcols) {
+ if (this.columnid !== '_') {
+ s = context + "['" + this.columnid + "']";
+ } else {
+ if (context === 'g') {
+ s = "g['_']";
+ } else {
+ s = context;
+ }
+ }
+ } else {
+ if (context === 'g') {
+ // if(this.columnid == '_') {
+ // } else {
+ s = "g['" + this.nick + "']";
+ // }
+ } else if (this.tableid) {
+ if (this.columnid !== '_') {
+ // if() {
+ // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']';
+ // } else {
+ s = context + "['" + this.tableid + "']['" + this.columnid + "']";
+ // }
+ } else {
+ if (context === 'g') {
+ s = "g['_']";
+ } else {
+ s = context + "['" + this.tableid + "']";
+ }
+ }
+ } else if (defcols) {
+ var tbid = defcols[this.columnid];
+ if (tbid === '-') {
+ throw new Error(
+ 'Cannot resolve column "' +
+ this.columnid +
+ '" because it exists in two source tables'
+ );
+ } else if (tbid) {
+ if (this.columnid !== '_') {
+ s = context + "['" + tbid + "']['" + this.columnid + "']";
+ } else {
+ s = context + "['" + tbid + "']";
+ }
- if (this.op === 'IN') {
- if (this.right instanceof yy.Select) {
- s = '(';
- // s += 'this.query.queriesdata['+this.queriesidx+']';
- // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))';
- s +=
- 'alasql.utils.flatArray(this.queriesfn[' +
- this.queriesidx +
- '](params,null,' +
- context +
- '))';
- s += '.indexOf(';
- s += leftJS() + ')>-1)';
- } else if (Array.isArray(this.right)) {
- // if(this.right.length == 0) return 'false';
- s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)';
+ } else {
+ if (this.columnid !== '_') {
+ // if(defcols['.'][this.tableid]) {
+ // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']';
+ // } else {
+ s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
+ // }
+ } else {
+ s = context + "['" + (this.tableid || tableid) + "']";
+ }
+ }
+ } else if (tableid === -1) {
+ // if(this.columnid != '') {
+ s = context + "['" + this.columnid + "']";
+ // } else {
+ // s = context;
+ // }
} else {
- s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';
-
- // } else {
- // throw new Error('Wrong IN operator without SELECT part');
+ if (this.columnid !== '_') {
+ s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
+ } else {
+ s = context + "['" + (this.tableid || tableid) + "']";
+ }
}
}
- if (this.op === 'NOT IN') {
- if (this.right instanceof yy.Select) {
- s = '(';
- //this.query.queriesdata['+this.queriesidx+']
- // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))';
- s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';
- s += '.indexOf(';
- s += leftJS() + ')<0)';
- } else if (Array.isArray(this.right)) {
- // if(this.right.length == 0) return 'true';
- s = '([' + this.right.map(ref).join(',') + '].indexOf(';
- s += leftJS() + ')<0)';
- } else {
- s = '(' + rightJS() + '.indexOf(';
- s += leftJS() + ')==-1)';
+ // console.trace(new Error());
- // throw new Error('Wrong NOT IN operator without SELECT part');
- }
- }
+ return s;
+};
- if (this.allsome === 'ALL') {
- var s;
- if (this.right instanceof yy.Select) {
- // var s = 'this.query.queriesdata['+this.queriesidx+']';
- s =
- 'alasql.utils.flatArray(this.query.queriesfn[' +
- this.queriesidx +
- '](params,null,p))';
+yy.AggrValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.AggrValue.prototype.toString = function(dontas) {
+ var s = '';
+ if (this.aggregatorid === 'REDUCE') {
+ s += this.funcid + '(';
+ } else {
+ s += this.aggregatorid + '(';
+ }
- s += '.every(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else if (Array.isArray(this.right)) {
- s =
- '' +
- (this.right.length == 1
- ? ref(this.right[0])
- : '[' + this.right.map(ref).join(',') + ']');
- s += '.every(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else {
- throw new Error('NOT IN operator without SELECT');
- }
+ if (this.distinct) {
+ s += 'DISTINCT ';
}
- if (this.allsome === 'SOME' || this.allsome === 'ANY') {
- var s;
- if (this.right instanceof yy.Select) {
- // var s = 'this.query.queriesdata['+this.queriesidx+']';
- s =
- 'alasql.utils.flatArray(this.query.queriesfn[' +
- this.queriesidx +
- '](params,null,p))';
- s += '.some(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else if (Array.isArray(this.right)) {
- s =
- '' +
- (this.right.length == 1
- ? ref(this.right[0])
- : '[' + this.right.map(ref).join(',') + ']');
- s += '.some(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else {
- throw new Error('SOME/ANY operator without SELECT');
- }
+ if (this.expression) {
+ s += this.expression.toString();
}
- // Special case for AND optimization (if reduced)
- if (this.op === 'AND') {
- if (this.left.reduced) {
- if (this.right.reduced) {
- return 'true';
- } else {
- s = rightJS();
- }
- } else if (this.right.reduced) {
- s = leftJS();
- }
+ s += ')';
- // Otherwise process as regular operation (see below)
- op = '&&';
+ if (this.over) {
+ s += ' ' + this.over.toString();
}
- // if(this.op === '^') {
- // // return 'Math.pow('
- // // + leftJS()
- // // + ','
- // // + rightJS()
- // // + ')';
- // }
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ // if(this.alias) s += ' AS '+this.alias;
+ return s;
+};
- // Change names
+yy.AggrValue.prototype.findAggregator = function(query) {
- var expr = s || '(' + leftJS() + op + rightJS() + ')';
+ // var colas = this.as || this.toString();
- var declareRefs = 'y=[(' + refs.join('), (') + ')]';
+ var colas = escapeq(this.toString()) + ':' + query.selectGroup.length;
- if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') {
- return '(' + declareRefs + ', ' + expr + ')';
- }
+ // if(!query.selectColumns[colas]) {
+ // }
- return (
- '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')'
- );
-};
+ var found = false;
-yy.VarValue = function(params) {
- return yy.extend(this, params);
-};
-yy.VarValue.prototype.toString = function() {
- return '@' + this.variable;
-};
+ if (!found) {
+ if (!this.nick) {
+ this.nick = colas;
+ var found = false;
+ for (var i = 0; i < query.removeKeys.length; i++) {
+ if (query.removeKeys[i] === colas) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ query.removeKeys.push(colas);
+ }
+ }
+ query.selectGroup.push(this);
+ }
-yy.VarValue.prototype.toType = function() {
- return 'unknown';
+ // this.reduced = true;
+ return;
};
-yy.VarValue.prototype.toJS = function() {
- return "alasql.vars['" + this.variable + "']";
-};
+yy.AggrValue.prototype.toType = function() {
+ if (
+ ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) >
+ -1
+ ) {
+ return 'number';
+ }
-yy.NumValue = function(params) {
- return yy.extend(this, params);
-};
-yy.NumValue.prototype.toString = function() {
- return this.value.toString();
-};
+ if (['ARRAY'].indexOf(this.aggregatorid) > -1) {
+ return 'array';
+ }
-yy.NumValue.prototype.toType = function() {
- return 'number';
-};
+ if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) {
+ return this.expression.toType();
+ }
-yy.NumValue.prototype.toJS = function() {
- return '' + this.value;
+ // todo: implement default;
};
-yy.StringValue = function(params) {
- return yy.extend(this, params);
-};
-yy.StringValue.prototype.toString = function() {
- return "'" + this.value.toString() + "'";
-};
+yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) {
-yy.StringValue.prototype.toType = function() {
- return 'string';
+ var colas = this.nick;
+ if (colas === undefined) {
+ colas = this.toString();
+ }
+ return "g['" + colas + "']";
};
-yy.StringValue.prototype.toJS = function() {
-
- // return "'"+doubleqq(this.value)+"'";
- return "'" + escapeq(this.value) + "'";
+yy.OrderExpression = function(params) {
+ return yy.extend(this, params);
};
+yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString;
-yy.DomainValueValue = function(params) {
+yy.GroupExpression = function(params) {
return yy.extend(this, params);
};
-yy.DomainValueValue.prototype.toString = function() {
- return 'VALUE';
-};
-
-yy.DomainValueValue.prototype.toType = function() {
- return 'object';
+yy.GroupExpression.prototype.toString = function() {
+ return this.type + '(' + this.group.toString() + ')';
};
-yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) {
-
- // return "'"+doubleqq(this.value)+"'";
- return context;
-};
+// Alasql Linq library
-yy.ArrayValue = function(params) {
+yy.FromData = function(params) {
return yy.extend(this, params);
};
-yy.ArrayValue.prototype.toString = function() {
- return 'ARRAY[]';
+yy.FromData.prototype.toString = function() {
+ if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')';
+ else return '?';
};
+yy.FromData.prototype.toJS = function() {
-yy.ArrayValue.prototype.toType = function() {
- return 'object';
};
-yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) {
+yy.Select.prototype.exec = function(params, cb) {
+ if (this.preparams) params = this.preparams.concat(params);
- // return "'"+doubleqq(this.value)+"'";
- return (
- '[(' +
- this.value
- .map(function(el) {
- return el.toJS(context, tableid, defcols);
- })
- .join('), (') +
- ')]'
- );
-};
+ var databaseid = alasql.useid;
+ db = alasql.databases[databaseid];
+ var sql = this.toString();
+ var hh = hash(sql);
-yy.LogicValue = function(params) {
- return yy.extend(this, params);
-};
-yy.LogicValue.prototype.toString = function() {
- return this.value ? 'TRUE' : 'FALSE';
-};
+ var statement = this.compile(databaseid);
+ if (!statement) return;
+ statement.sql = sql;
+ statement.dbversion = db.dbversion;
-yy.LogicValue.prototype.toType = function() {
- return 'boolean';
+ // Secure sqlCache size
+ if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
+ db.resetSqlCache();
+ }
+ db.sqlCacheSize++;
+ db.sqlCache[hh] = statement;
+ var res = (alasql.res = statement(params, cb));
+ return res;
};
-yy.LogicValue.prototype.toJS = function() {
- return this.value ? 'true' : 'false';
-};
+yy.Select.prototype.Select = function() {
+ var self = this;
+ var agrs = [];
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
+ }
-yy.NullValue = function(params) {
- return yy.extend(this, params);
-};
-yy.NullValue.prototype.toString = function() {
- return 'NULL';
-};
-yy.NullValue.prototype.toJS = function() {
- return 'undefined';
- // return 'undefined';
-};
+ self.columns = [];
-yy.ParamValue = function(params) {
- return yy.extend(this, params);
-};
-yy.ParamValue.prototype.toString = function() {
- return '$' + this.param;
+ args.forEach(function(arg) {
+ if (typeof arg == 'string') {
+ self.columns.push(new yy.Column({columnid: arg}));
+ } else if (typeof arg == 'function') {
+ var pari = 0;
+ if (self.preparams) {
+ pari = self.preparams.length;
+ } else {
+ self.preparams = [];
+ }
+ self.preparams.push(arg);
+ self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari}));
+ } else {
+ // Unknown type
+ }
+ });
+
+ return self;
};
-yy.ParamValue.prototype.toJS = function() {
- if (typeof this.param === 'string') {
- return "params['" + this.param + "']";
- }
- return 'params[' + this.param + ']';
+yy.Select.prototype.From = function(tableid) {
+ var self = this;
+ if (!self.from) self.from = [];
+ if (Array.isArray(tableid)) {
+ var pari = 0;
+ if (self.preparams) {
+ pari = self.preparams.length;
+ } else {
+ self.preparams = [];
+ }
+ self.preparams.push(tableid);
+ self.from.push(new yy.ParamValue({param: pari}));
+ } else if (typeof tableid == 'string') {
+ self.from.push(new yy.Table({tableid: tableid}));
+ } else {
+ throw new Error('Unknown arguments in From() function');
+ }
+ return self;
};
-yy.UniOp = function(params) {
- return yy.extend(this, params);
-};
-yy.UniOp.prototype.toString = function() {
- var s;
- s = void 0;
- if (this.op === '~') {
- s = this.op + this.right.toString();
- }
- if (this.op === '-') {
- s = this.op + this.right.toString();
- }
- if (this.op === '+') {
- s = this.op + this.right.toString();
- }
- if (this.op === '#') {
- s = this.op + this.right.toString();
- }
- if (this.op === 'NOT') {
- s = this.op + '(' + this.right.toString() + ')';
- }
- if (this.op === null) {
- s = '(' + this.right.toString() + ')';
+yy.Select.prototype.OrderBy = function() {
+ var self = this;
+ var agrs = [];
+
+ self.order = [];
+
+ if (arguments.length == 0) {
+ // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'}));
+ args = ['_'];
+ } else if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
}
- if (!s) {
- s = '(' + this.right.toString() + ')';
+
+ if (args.length > 0) {
+ args.forEach(function(arg) {
+ var expr = new yy.Column({columnid: arg});
+ if (typeof arg == 'function') {
+ expr = arg;
+ }
+ self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'}));
+ });
}
- return s;
+ return self;
};
-yy.UniOp.prototype.findAggregator = function(query) {
- if (this.right.findAggregator) {
- this.right.findAggregator(query);
- }
+yy.Select.prototype.Top = function(topnum) {
+ var self = this;
+ self.top = new yy.NumValue({value: topnum});
+ return self;
};
-yy.UniOp.prototype.toType = function() {
- if (this.op === '-') {
- return 'number';
- }
+yy.Select.prototype.GroupBy = function() {
+ var self = this;
+ var agrs = [];
- if (this.op === '+') {
- return 'number';
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
}
- if (this.op === 'NOT') {
- return 'boolean';
- }
+ self.group = [];
- // Todo: implement default case
+ args.forEach(function(arg) {
+ var expr = new yy.Column({columnid: arg});
+ self.group.push(expr);
+ });
+
+ return self;
};
-yy.UniOp.prototype.toJS = function(context, tableid, defcols) {
- if (this.op === '~') {
- return '(~(' + this.right.toJS(context, tableid, defcols) + '))';
+yy.Select.prototype.Where = function(expr) {
+ var self = this;
+ if (typeof expr == 'function') {
+ self.where = expr;
}
+ return self;
+};
- if (this.op === '-') {
- return '(-(' + this.right.toJS(context, tableid, defcols) + '))';
- }
+/*
+//
+// Functions for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- if (this.op === '+') {
- return '(' + this.right.toJS(context, tableid, defcols) + ')';
- }
+yy.FuncValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.FuncValue.prototype.toString = function(dontas) {
+ var s = '';
- if (this.op === 'NOT') {
- return '!(' + this.right.toJS(context, tableid, defcols) + ')';
- }
+ if (alasql.fn[this.funcid]) s += this.funcid;
+ else if (alasql.aggr[this.funcid]) s += this.funcid;
+ else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()])
+ s += this.funcid.toUpperCase();
- if (this.op === '#') {
- if (this.right instanceof yy.Column) {
- return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])";
- } else {
- return (
- '(alasql.databases[alasql.useid].objects[' +
- this.right.toJS(context, tableid, defcols) +
- '])'
- );
- }
+ s += '(';
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(',');
}
+ s += ')';
+ if (this.as && !dontas) s += ' AS ' + this.as.toString();
+ // if(this.alias) s += ' AS '+this.alias;
+ return s;
+};
- // Please avoid === here
- if (this.op == null) {
- // jshint ignore:line
- return '(' + this.right.toJS(context, tableid, defcols) + ')';
- }
+yy.FuncValue.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ alasql.precompile(this, databaseid, params); // Precompile queries
- // Todo: implement default case.
+ var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null));
+ expr(params, alasql);
+ if (cb) res = cb(res);
+ return res;
};
-yy.Column = function(params) {
- return yy.extend(this, params);
-};
-yy.Column.prototype.toString = function(dontas) {
- var s;
- if (this.columnid == +this.columnid) {
- // jshint ignore:line
- s = '[' + this.columnid + ']';
- } else {
- s = this.columnid;
+yy.FuncValue.prototype.findAggregator = function(query) {
+ if (this.args && this.args.length > 0) {
+ this.args.forEach(function(arg) {
+ if (arg.findAggregator) arg.findAggregator(query);
+ });
}
- if (this.tableid) {
- if (+this.columnid === this.columnid) {
- s = this.tableid + s;
+};
+
+yy.FuncValue.prototype.toJS = function(context, tableid, defcols) {
+ var s = '';
+ var funcid = this.funcid;
+ // IF this is standard compile functions
+ if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) {
+ if (this.args && this.args.length > 0) {
+ s += alasql.stdlib[funcid.toUpperCase()].apply(
+ this,
+ this.args.map(function(arg) {
+ return arg.toJS(context, tableid);
+ })
+ );
} else {
- s = this.tableid + '.' + s;
+ s += alasql.stdlib[funcid.toUpperCase()]();
}
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
+ } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) {
+ if (this.newid) s += 'new ';
+ s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '(';
+ // if(this.args) s += this.args.toJS(context, tableid);
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toJS(context, tableid, defcols);
+ })
+ .join(',');
}
+ s += ')';
+ } else {
+ // This is user-defined run-time function
+ // TODO arguments!!!
+ // var s = '';
+ if (this.newid) s += 'new ';
+ s += 'alasql.fn.' + this.funcid + '(';
+ // if(this.args) s += this.args.toJS(context, tableid);
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toJS(context, tableid, defcols);
+ })
+ .join(',');
+ }
+ s += ')';
}
- if (this.alias && !dontas) s += ' AS ' + this.alias;
+
+ // if(this.alias) s += ' AS '+this.alias;
return s;
};
-yy.Column.prototype.toJS = function(context, tableid, defcols) {
+var stdlib = (alasql.stdlib = {});
+var stdfn = (alasql.stdfn = {});
- var s = '';
- if (!this.tableid && tableid === '' && !defcols) {
- if (this.columnid !== '_') {
- s = context + "['" + this.columnid + "']";
- } else {
- if (context === 'g') {
- s = "g['_']";
- } else {
- s = context;
- }
- }
- } else {
- if (context === 'g') {
- // if(this.columnid == '_') {
- // } else {
- s = "g['" + this.nick + "']";
- // }
- } else if (this.tableid) {
- if (this.columnid !== '_') {
- // if() {
- // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']';
- // } else {
- s = context + "['" + this.tableid + "']['" + this.columnid + "']";
- // }
- } else {
- if (context === 'g') {
- s = "g['_']";
- } else {
- s = context + "['" + this.tableid + "']";
- }
- }
- } else if (defcols) {
- var tbid = defcols[this.columnid];
- if (tbid === '-') {
- throw new Error(
- 'Cannot resolve column "' +
- this.columnid +
- '" because it exists in two source tables'
- );
- } else if (tbid) {
- if (this.columnid !== '_') {
- s = context + "['" + tbid + "']['" + this.columnid + "']";
- } else {
- s = context + "['" + tbid + "']";
- }
-
- } else {
- if (this.columnid !== '_') {
- // if(defcols['.'][this.tableid]) {
-
- // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']';
- // } else {
- s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
- // }
- } else {
- s = context + "['" + (this.tableid || tableid) + "']";
- }
- }
- } else if (tableid === -1) {
- // if(this.columnid != '') {
- s = context + "['" + this.columnid + "']";
- // } else {
- // s = context;
- // }
- } else {
- if (this.columnid !== '_') {
- s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
- } else {
- s = context + "['" + (this.tableid || tableid) + "']";
- }
- }
- }
-
- // console.trace(new Error());
-
- return s;
+stdlib.ABS = function(a) {
+ return 'Math.abs(' + a + ')';
};
-
-yy.AggrValue = function(params) {
- return yy.extend(this, params);
+stdlib.CLONEDEEP = function(a) {
+ return 'alasql.utils.cloneDeep(' + a + ')';
};
-yy.AggrValue.prototype.toString = function(dontas) {
- var s = '';
- if (this.aggregatorid === 'REDUCE') {
- s += this.funcid + '(';
- } else {
- s += this.aggregatorid + '(';
- }
- if (this.distinct) {
- s += 'DISTINCT ';
- }
+stdfn.CONCAT = function() {
+ return Array.prototype.slice.call(arguments).join('');
+};
+stdlib.EXP = function(a) {
+ return 'Math.pow(Math.E,' + a + ')';
+};
- if (this.expression) {
- s += this.expression.toString();
+stdlib.IIF = function(a, b, c) {
+ if (arguments.length == 3) {
+ return '((' + a + ')?(' + b + '):(' + c + '))';
+ } else {
+ throw new Error('Number of arguments of IFF is not equals to 3');
}
+};
+stdlib.IFNULL = function(a, b) {
+ return '(' + a + '||' + b + ')';
+};
+stdlib.INSTR = function(s, p) {
+ return '((' + s + ').indexOf(' + p + ')+1)';
+};
- s += ')';
+//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';};
- if (this.over) {
- s += ' ' + this.over.toString();
- }
+stdlib.LEN = stdlib.LENGTH = function(s) {
+ return und(s, 'y.length');
+};
+//stdlib.LENGTH = function(s) {return '('+s+').length'};
- if (this.alias && !dontas) s += ' AS ' + this.alias;
- // if(this.alias) s += ' AS '+this.alias;
- return s;
+stdlib.LOWER = stdlib.LCASE = function(s) {
+ return und(s, 'String(y).toLowerCase()');
};
+//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';}
-yy.AggrValue.prototype.findAggregator = function(query) {
+// Returns a character expression after it removes leading blanks.
+// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql
+stdlib.LTRIM = function(s) {
+ return und(s, 'y.replace(/^[ ]+/,"")');
+};
- // var colas = this.as || this.toString();
+// Returns a character string after truncating all trailing spaces.
+// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql
+stdlib.RTRIM = function(s) {
+ return und(s, 'y.replace(/[ ]+$/,"")');
+};
- var colas = escapeq(this.toString()) + ':' + query.selectGroup.length;
+stdlib.MAX = stdlib.GREATEST = function() {
+ return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')';
+};
- // if(!query.selectColumns[colas]) {
- // }
+stdlib.MIN = stdlib.LEAST = function() {
+ return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')';
+};
- var found = false;
+stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) {
+ if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)');
+ else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')');
+};
- if (!found) {
- if (!this.nick) {
- this.nick = colas;
- var found = false;
- for (var i = 0; i < query.removeKeys.length; i++) {
- if (query.removeKeys[i] === colas) {
- found = true;
- break;
- }
- }
- if (!found) {
- query.removeKeys.push(colas);
- }
- }
- query.selectGroup.push(this);
- }
+stdfn.REGEXP_LIKE = function(a, b, c) {
- // this.reduced = true;
- return;
+ return (a || '').search(RegExp(b, c)) > -1;
};
-yy.AggrValue.prototype.toType = function() {
- if (
- ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) >
- -1
- ) {
- return 'number';
- }
+// Here we uses undefined instead of null
+stdlib.ISNULL = stdlib.NULLIF = function(a, b) {
+ return '(' + a + '==' + b + '?undefined:' + a + ')';
+};
- if (['ARRAY'].indexOf(this.aggregatorid) > -1) {
- return 'array';
- }
+stdlib.POWER = function(a, b) {
+ return 'Math.pow(' + a + ',' + b + ')';
+};
- if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) {
- return this.expression.toType();
+stdlib.RANDOM = function(r) {
+ if (arguments.length == 0) {
+ return 'Math.random()';
+ } else {
+ return '(Math.random()*(' + r + ')|0)';
}
-
- // todo: implement default;
};
-
-yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) {
-
- var colas = this.nick;
- if (colas === undefined) {
- colas = this.toString();
+stdlib.ROUND = function(s, d) {
+ if (arguments.length == 2) {
+ return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))';
+ } else {
+ return 'Math.round(' + s + ')';
}
- return "g['" + colas + "']";
};
-
-yy.OrderExpression = function(params) {
- return yy.extend(this, params);
+stdlib.CEIL = stdlib.CEILING = function(s) {
+ return 'Math.ceil(' + s + ')';
+};
+stdlib.FLOOR = function(s) {
+ return 'Math.floor(' + s + ')';
};
-yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString;
-yy.GroupExpression = function(params) {
- return yy.extend(this, params);
+stdlib.ROWNUM = function() {
+ return '1';
};
-yy.GroupExpression.prototype.toString = function() {
- return this.type + '(' + this.group.toString() + ')';
+stdlib.ROW_NUMBER = function() {
+ return '1';
};
-// Alasql Linq library
-
-yy.FromData = function(params) {
- return yy.extend(this, params);
-};
-yy.FromData.prototype.toString = function() {
- if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')';
- else return '?';
+stdlib.SQRT = function(s) {
+ return 'Math.sqrt(' + s + ')';
};
-yy.FromData.prototype.toJS = function() {
+stdlib.TRIM = function(s) {
+ return und(s, 'y.trim()');
};
-yy.Select.prototype.exec = function(params, cb) {
- if (this.preparams) params = this.preparams.concat(params);
+stdlib.UPPER = stdlib.UCASE = function(s) {
+ return und(s, 'String(y).toUpperCase()');
+};
- var databaseid = alasql.useid;
- db = alasql.databases[databaseid];
- var sql = this.toString();
- var hh = hash(sql);
+// Concatination of strings
+stdfn.CONCAT_WS = function() {
+ var args = Array.prototype.slice.call(arguments);
+ return args.slice(1, args.length).join(args[0]);
+};
- var statement = this.compile(databaseid);
- if (!statement) return;
- statement.sql = sql;
- statement.dbversion = db.dbversion;
+//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';}
+//REPLACE
+// RTRIM
+// SUBSTR
+// TRIM
+//REPLACE
+// RTRIM
+// SUBSTR
+// TRIM
- // Secure sqlCache size
- if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
- db.resetSqlCache();
+// Aggregator for joining strings
+alasql.aggr.GROUP_CONCAT = function(v, s, stage) {
+ if (stage === 1) {
+ return '' + v;
+ } else if (stage === 2) {
+ s += ',' + v;
+ return s;
}
- db.sqlCacheSize++;
- db.sqlCache[hh] = statement;
- var res = (alasql.res = statement(params, cb));
- return res;
+ return s;
};
-yy.Select.prototype.Select = function() {
- var self = this;
- var agrs = [];
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
+alasql.aggr.MEDIAN = function(v, s, stage) {
+ if (stage === 2) {
+ if (v !== null) {
+ s.push(v);
}
+ return s;
+ } else if (stage === 1) {
+ if (v === null) {
+ return [];
+ }
+ return [v];
} else {
- throw new Error('Wrong number of arguments of Select() function');
- }
-
- self.columns = [];
+ if (!s.length) {
+ return s;
+ }
- args.forEach(function(arg) {
- if (typeof arg == 'string') {
- self.columns.push(new yy.Column({columnid: arg}));
- } else if (typeof arg == 'function') {
- var pari = 0;
- if (self.preparams) {
- pari = self.preparams.length;
- } else {
- self.preparams = [];
- }
- self.preparams.push(arg);
- self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari}));
- } else {
- // Unknown type
+ var r = s.sort();
+ var p = (r.length + 1) / 2;
+ if (Number.isInteger(p)) {
+ return r[p - 1];
}
- });
- return self;
+ return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2;
+ }
};
-yy.Select.prototype.From = function(tableid) {
- var self = this;
- if (!self.from) self.from = [];
- if (Array.isArray(tableid)) {
- var pari = 0;
- if (self.preparams) {
- pari = self.preparams.length;
- } else {
- self.preparams = [];
+alasql.aggr.QUART = function(v, s, stage, nth) {
+ //Quartile (first quartile per default or input param)
+ if (stage === 2) {
+ if (v !== null) {
+ s.push(v);
}
- self.preparams.push(tableid);
- self.from.push(new yy.ParamValue({param: pari}));
- } else if (typeof tableid == 'string') {
- self.from.push(new yy.Table({tableid: tableid}));
+ return s;
+ } else if (stage === 1) {
+ if (v === null) {
+ return [];
+ }
+ return [v];
} else {
- throw new Error('Unknown arguments in From() function');
+ if (!s.length) {
+ return s;
+ }
+
+ nth = !nth ? 1 : nth;
+ var r = s.sort();
+ var p = (nth * (r.length + 1)) / 4;
+ if (Number.isInteger(p)) {
+ return r[p - 1]; //Integer value
+ }
+ return r[Math.floor(p)]; //Math.ceil -1 or Math.floor
}
- return self;
};
-yy.Select.prototype.OrderBy = function() {
- var self = this;
- var agrs = [];
-
- self.order = [];
+alasql.aggr.QUART2 = function(v, s, stage) {
+ //Second Quartile
+ return alasql.aggr.QUART(v, s, stage, 2);
+};
+alasql.aggr.QUART3 = function(v, s, stage) {
+ //Third Quartile
+ return alasql.aggr.QUART(v, s, stage, 3);
+};
- if (arguments.length == 0) {
- // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'}));
- args = ['_'];
- } else if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
+// Standard deviation
+alasql.aggr.VAR = function(v, s, stage) {
+ if (stage === 1) {
+ if (v === null) {
+ return {arr: [], sum: 0};
+ }
+ return {arr: [v], sum: v};
+ } else if (stage === 2) {
+ if (v === null) {
+ return s;
}
+ s.arr.push(v);
+ s.sum += v;
+ return s;
} else {
- throw new Error('Wrong number of arguments of Select() function');
+ var N = s.arr.length;
+ var avg = s.sum / N;
+ var std = 0;
+ for (var i = 0; i < N; i++) {
+ std += (s.arr[i] - avg) * (s.arr[i] - avg);
+ }
+ std = std / (N - 1);
+ return std;
}
+};
- if (args.length > 0) {
- args.forEach(function(arg) {
- var expr = new yy.Column({columnid: arg});
- if (typeof arg == 'function') {
- expr = arg;
- }
- self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'}));
- });
+alasql.aggr.STDEV = function(v, s, stage) {
+ if (stage === 1 || stage === 2) {
+ return alasql.aggr.VAR(v, s, stage);
+ } else {
+ return Math.sqrt(alasql.aggr.VAR(v, s, stage));
}
- return self;
};
-yy.Select.prototype.Top = function(topnum) {
- var self = this;
- self.top = new yy.NumValue({value: topnum});
- return self;
-};
+// Standard deviation
+// alasql.aggr.VARP = function(v,s,acc){
-yy.Select.prototype.GroupBy = function() {
- var self = this;
- var agrs = [];
+// };
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
- }
+alasql.aggr.VARP = function(v, s, stage) {
+ if (stage == 1) {
+ return {arr: [v], sum: v};
+ } else if (stage == 2) {
+ s.arr.push(v);
+ s.sum += v;
+ return s;
} else {
- throw new Error('Wrong number of arguments of Select() function');
+ var N = s.arr.length;
+ var avg = s.sum / N;
+ var std = 0;
+ for (var i = 0; i < N; i++) {
+ std += (s.arr[i] - avg) * (s.arr[i] - avg);
+ }
+ std = std / N;
+ return std;
}
+};
- self.group = [];
+alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) {
+ if (stage == 1 || stage == 2) {
+ return alasql.aggr.VARP(v, s, stage);
+ } else {
+ return Math.sqrt(alasql.aggr.VARP(v, s, stage));
+ }
+};
- args.forEach(function(arg) {
- var expr = new yy.Column({columnid: arg});
- self.group.push(expr);
- });
+alasql._aggrOriginal = alasql.aggr;
+alasql.aggr = {};
+Object.keys(alasql._aggrOriginal).forEach(function(k) {
+ alasql.aggr[k] = function(v, s, stage) {
+ if (stage === 3 && typeof s === 'undefined') return undefined;
+ return alasql._aggrOriginal[k].apply(null, arguments);
+ };
+});
- return self;
+// String functions
+stdfn.REPLACE = function(target, pattern, replacement) {
+ return (target || '').split(pattern).join(replacement);
};
-yy.Select.prototype.Where = function(expr) {
- var self = this;
- if (typeof expr == 'function') {
- self.where = expr;
- }
- return self;
+// This array is required for fast GUID generation
+var lut = [];
+for (var i = 0; i < 256; i++) {
+ lut[i] = (i < 16 ? '0' : '') + i.toString(16);
+}
+
+stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() {
+ var d0 = (Math.random() * 0xffffffff) | 0;
+ var d1 = (Math.random() * 0xffffffff) | 0;
+ var d2 = (Math.random() * 0xffffffff) | 0;
+ var d3 = (Math.random() * 0xffffffff) | 0;
+ return (
+ lut[d0 & 0xff] +
+ lut[(d0 >> 8) & 0xff] +
+ lut[(d0 >> 16) & 0xff] +
+ lut[(d0 >> 24) & 0xff] +
+ '-' +
+ lut[d1 & 0xff] +
+ lut[(d1 >> 8) & 0xff] +
+ '-' +
+ lut[((d1 >> 16) & 0x0f) | 0x40] +
+ lut[(d1 >> 24) & 0xff] +
+ '-' +
+ lut[(d2 & 0x3f) | 0x80] +
+ lut[(d2 >> 8) & 0xff] +
+ '-' +
+ lut[(d2 >> 16) & 0xff] +
+ lut[(d2 >> 24) & 0xff] +
+ lut[d3 & 0xff] +
+ lut[(d3 >> 8) & 0xff] +
+ lut[(d3 >> 16) & 0xff] +
+ lut[(d3 >> 24) & 0xff]
+ );
};
/*
//
-// Functions for Alasql.js
+// CASE for Alasql.js
// Date: 03.11.2014
// (c) 2014, Andrey Gershun
//
*/
-yy.FuncValue = function(params) {
+yy.CaseValue = function(params) {
return yy.extend(this, params);
};
-yy.FuncValue.prototype.toString = function(dontas) {
- var s = '';
-
- if (alasql.fn[this.funcid]) s += this.funcid;
- else if (alasql.aggr[this.funcid]) s += this.funcid;
- else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()])
- s += this.funcid.toUpperCase();
-
- s += '(';
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toString();
+yy.CaseValue.prototype.toString = function() {
+ var s = 'CASE ';
+ if (this.expression) s += this.expression.toString();
+ if (this.whens) {
+ s += this.whens
+ .map(function(w) {
+ return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString();
})
- .join(',');
+ .join();
}
- s += ')';
- if (this.as && !dontas) s += ' AS ' + this.as.toString();
- // if(this.alias) s += ' AS '+this.alias;
+ s += ' END';
return s;
};
-yy.FuncValue.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- alasql.precompile(this, databaseid, params); // Precompile queries
-
- var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null));
- expr(params, alasql);
- if (cb) res = cb(res);
- return res;
-};
+yy.CaseValue.prototype.findAggregator = function(query) {
-yy.FuncValue.prototype.findAggregator = function(query) {
- if (this.args && this.args.length > 0) {
- this.args.forEach(function(arg) {
- if (arg.findAggregator) arg.findAggregator(query);
+ if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query);
+ if (this.whens && this.whens.length > 0) {
+ this.whens.forEach(function(w) {
+ if (w.when.findAggregator) w.when.findAggregator(query);
+ if (w.then.findAggregator) w.then.findAggregator(query);
});
}
+ if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query);
};
-yy.FuncValue.prototype.toJS = function(context, tableid, defcols) {
- var s = '';
- var funcid = this.funcid;
- // IF this is standard compile functions
- if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) {
- if (this.args && this.args.length > 0) {
- s += alasql.stdlib[funcid.toUpperCase()].apply(
- this,
- this.args.map(function(arg) {
- return arg.toJS(context, tableid);
- })
- );
- } else {
- s += alasql.stdlib[funcid.toUpperCase()]();
- }
- } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) {
- if (this.newid) s += 'new ';
- s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '(';
- // if(this.args) s += this.args.toJS(context, tableid);
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toJS(context, tableid, defcols);
- })
- .join(',');
- }
- s += ')';
+yy.CaseValue.prototype.toJS = function(context, tableid, defcols) {
+ var s = '((function(' + context + ',params,alasql){var y,r;';
+ if (this.expression) {
+ // this.expression.toJS(context, tableid)
+ s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';';
+ s += (this.whens || [])
+ .map(function(w) {
+ return (
+ ' if(v==' +
+ w.when.toJS(context, tableid, defcols) +
+ ') {r=' +
+ w.then.toJS(context, tableid, defcols) +
+ '}'
+ );
+ })
+ .join(' else ');
+ if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
} else {
- // This is user-defined run-time function
- // TODO arguments!!!
- // var s = '';
- if (this.newid) s += 'new ';
- s += 'alasql.fn.' + this.funcid + '(';
- // if(this.args) s += this.args.toJS(context, tableid);
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toJS(context, tableid, defcols);
- })
- .join(',');
- }
- s += ')';
+ s += (this.whens || [])
+ .map(function(w) {
+ return (
+ ' if(' +
+ w.when.toJS(context, tableid, defcols) +
+ ') {r=' +
+ w.then.toJS(context, tableid, defcols) +
+ '}'
+ );
+ })
+ .join(' else ');
+ if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
}
+ // TODO remove bind from CASE
+ s += ';return r;}).bind(this))(' + context + ',params,alasql)';
- // if(this.alias) s += ' AS '+this.alias;
return s;
};
-var stdlib = (alasql.stdlib = {});
-var stdfn = (alasql.stdfn = {});
+/*
+//
+// JSON for Alasql.js
+// Date: 19.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
-stdlib.ABS = function(a) {
- return 'Math.abs(' + a + ')';
+yy.Json = function(params) {
+ return yy.extend(this, params);
};
-stdlib.CLONEDEEP = function(a) {
- return 'alasql.utils.cloneDeep(' + a + ')';
+yy.Json.prototype.toString = function() {
+ var s = ''; // '@'
+ s += JSONtoString(this.value);
+ s += '';
+ return s;
};
-stdfn.CONCAT = function() {
- return Array.prototype.slice.call(arguments).join('');
-};
-stdlib.EXP = function(a) {
- return 'Math.pow(Math.E,' + a + ')';
-};
+var JSONtoString = (alasql.utils.JSONtoString = function(obj) {
+ var s = '';
+ if (typeof obj == 'string') s = '"' + obj + '"';
+ else if (typeof obj == 'number') s = obj;
+ else if (typeof obj == 'boolean') s = obj;
+ else if (typeof obj == 'object') {
+ if (Array.isArray(obj)) {
+ s +=
+ '[' +
+ obj
+ .map(function(b) {
+ return JSONtoString(b);
+ })
+ .join(',') +
+ ']';
+ } else if (!obj.toJS || obj instanceof yy.Json) {
+ // to prevent recursion
+ s = '{';
+ var ss = [];
+ for (var k in obj) {
+ var s1 = '';
+ if (typeof k == 'string') s1 += '"' + k + '"';
+ else if (typeof k == 'number') s1 += k;
+ else if (typeof k == 'boolean') s1 += k;
+ else {
+ throw new Error('THis is not ES6... no expressions on left side yet');
+ }
+ s1 += ':' + JSONtoString(obj[k]);
+ ss.push(s1);
+ }
+ s += ss.join(',') + '}';
+ } else if (obj.toString) {
+ s = obj.toString();
+ } else {
+ throw new Error('1Can not show JSON object ' + JSON.stringify(obj));
+ }
+ } else {
+ throw new Error('2Can not show JSON object ' + JSON.stringify(obj));
+ }
-stdlib.IIF = function(a, b, c) {
- if (arguments.length == 3) {
- return '((' + a + ')?(' + b + '):(' + c + '))';
+ return s;
+});
+
+function JSONtoJS(obj, context, tableid, defcols) {
+ var s = '';
+ if (typeof obj == 'string') s = '"' + obj + '"';
+ else if (typeof obj == 'number') s = '(' + obj + ')';
+ else if (typeof obj == 'boolean') s = obj;
+ else if (typeof obj == 'object') {
+ if (Array.isArray(obj)) {
+ s +=
+ '[' +
+ obj
+ .map(function(b) {
+ return JSONtoJS(b, context, tableid, defcols);
+ })
+ .join(',') +
+ ']';
+ } else if (!obj.toJS || obj instanceof yy.Json) {
+ // to prevent recursion
+ s = '{';
+ var ss = [];
+ for (var k in obj) {
+ var s1 = '';
+ if (typeof k == 'string') s1 += '"' + k + '"';
+ else if (typeof k == 'number') s1 += k;
+ else if (typeof k == 'boolean') s1 += k;
+ else {
+ throw new Error('THis is not ES6... no expressions on left side yet');
+ }
+ s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols);
+ ss.push(s1);
+ }
+ s += ss.join(',') + '}';
+ } else if (obj.toJS) {
+ s = obj.toJS(context, tableid, defcols);
+ } else {
+ throw new Error('1Can not parse JSON object ' + JSON.stringify(obj));
+ }
} else {
- throw new Error('Number of arguments of IFF is not equals to 3');
+ throw new Error('2Can not parse JSON object ' + JSON.stringify(obj));
}
-};
-stdlib.IFNULL = function(a, b) {
- return '(' + a + '||' + b + ')';
-};
-stdlib.INSTR = function(s, p) {
- return '((' + s + ').indexOf(' + p + ')+1)';
-};
-//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';};
+ return s;
+}
-stdlib.LEN = stdlib.LENGTH = function(s) {
- return und(s, 'y.length');
+yy.Json.prototype.toJS = function(context, tableid, defcols) {
+ // TODO redo
+ return JSONtoJS(this.value, context, tableid, defcols);
};
-//stdlib.LENGTH = function(s) {return '('+s+').length'};
-stdlib.LOWER = stdlib.LCASE = function(s) {
- return und(s, 'String(y).toLowerCase()');
-};
-//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';}
+/*
+//
+// CAST and CONVERT functions
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
-// Returns a character expression after it removes leading blanks.
-// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql
-stdlib.LTRIM = function(s) {
- return und(s, 'y.replace(/^[ ]+/,"")');
+yy.Convert = function(params) {
+ return yy.extend(this, params);
};
-
-// Returns a character string after truncating all trailing spaces.
-// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql
-stdlib.RTRIM = function(s) {
- return und(s, 'y.replace(/[ ]+$/,"")');
-};
-
-stdlib.MAX = stdlib.GREATEST = function() {
- return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')';
-};
-
-stdlib.MIN = stdlib.LEAST = function() {
- return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')';
-};
-
-stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) {
- if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)');
- else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')');
-};
-
-stdfn.REGEXP_LIKE = function(a, b, c) {
-
- return (a || '').search(RegExp(b, c)) > -1;
-};
-
-// Here we uses undefined instead of null
-stdlib.ISNULL = stdlib.NULLIF = function(a, b) {
- return '(' + a + '==' + b + '?undefined:' + a + ')';
-};
-
-stdlib.POWER = function(a, b) {
- return 'Math.pow(' + a + ',' + b + ')';
-};
-
-stdlib.RANDOM = function(r) {
- if (arguments.length == 0) {
- return 'Math.random()';
- } else {
- return '(Math.random()*(' + r + ')|0)';
- }
-};
-stdlib.ROUND = function(s, d) {
- if (arguments.length == 2) {
- return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))';
- } else {
- return 'Math.round(' + s + ')';
- }
-};
-stdlib.CEIL = stdlib.CEILING = function(s) {
- return 'Math.ceil(' + s + ')';
-};
-stdlib.FLOOR = function(s) {
- return 'Math.floor(' + s + ')';
-};
-
-stdlib.ROWNUM = function() {
- return '1';
-};
-stdlib.ROW_NUMBER = function() {
- return '1';
-};
-
-stdlib.SQRT = function(s) {
- return 'Math.sqrt(' + s + ')';
-};
-
-stdlib.TRIM = function(s) {
- return und(s, 'y.trim()');
-};
-
-stdlib.UPPER = stdlib.UCASE = function(s) {
- return und(s, 'String(y).toUpperCase()');
-};
-
-// Concatination of strings
-stdfn.CONCAT_WS = function() {
- var args = Array.prototype.slice.call(arguments);
- return args.slice(1, args.length).join(args[0]);
-};
-
-//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';}
-//REPLACE
-// RTRIM
-// SUBSTR
-// TRIM
-//REPLACE
-// RTRIM
-// SUBSTR
-// TRIM
-
-// Aggregator for joining strings
-alasql.aggr.GROUP_CONCAT = function(v, s, stage) {
- if (stage === 1) {
- return '' + v;
- } else if (stage === 2) {
- s += ',' + v;
- return s;
+yy.Convert.prototype.toString = function() {
+ var s = 'CONVERT(';
+ s += this.dbtypeid;
+ if (typeof this.dbsize != 'undefined') {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) s += ',' + this.dbprecision;
+ s += ')';
}
+ s += ',' + this.expression.toString();
+ if (this.style) s += ',' + this.style;
+ s += ')';
return s;
};
+yy.Convert.prototype.toJS = function(context, tableid, defcols) {
+ // if(this.style) {
+ return (
+ 'alasql.stdfn.CONVERT(' +
+ this.expression.toJS(context, tableid, defcols) +
+ ',{dbtypeid:"' +
+ this.dbtypeid +
+ '",dbsize:' +
+ this.dbsize +
+ ',dbprecision:' +
+ this.dbprecision +
+ ',style:' +
+ this.style +
+ '})'
+ );
+ // }
-alasql.aggr.MEDIAN = function(v, s, stage) {
- if (stage === 2) {
- if (v !== null) {
- s.push(v);
- }
- return s;
- } else if (stage === 1) {
- if (v === null) {
- return [];
- }
- return [v];
- } else {
- if (!s.length) {
- return s;
- }
-
- var r = s.sort();
- var p = (r.length + 1) / 2;
- if (Number.isInteger(p)) {
- return r[p - 1];
- }
-
- return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2;
- }
-};
-
-alasql.aggr.QUART = function(v, s, stage, nth) {
- //Quartile (first quartile per default or input param)
- if (stage === 2) {
- if (v !== null) {
- s.push(v);
- }
- return s;
- } else if (stage === 1) {
- if (v === null) {
- return [];
- }
- return [v];
- } else {
- if (!s.length) {
- return s;
- }
-
- nth = !nth ? 1 : nth;
- var r = s.sort();
- var p = nth * (r.length + 1) / 4;
- if (Number.isInteger(p)) {
- return r[p - 1]; //Integer value
- }
- return r[Math.floor(p)]; //Math.ceil -1 or Math.floor
- }
-};
-
-alasql.aggr.QUART2 = function(v, s, stage) {
- //Second Quartile
- return alasql.aggr.QUART(v, s, stage, 2);
-};
-alasql.aggr.QUART3 = function(v, s, stage) {
- //Third Quartile
- return alasql.aggr.QUART(v, s, stage, 3);
-};
-
-// Standard deviation
-alasql.aggr.VAR = function(v, s, stage) {
- if (stage === 1) {
- if (v === null) {
- return {arr: [], sum: 0};
- }
- return {arr: [v], sum: v};
- } else if (stage === 2) {
- if (v === null) {
- return s;
- }
- s.arr.push(v);
- s.sum += v;
- return s;
- } else {
- var N = s.arr.length;
- var avg = s.sum / N;
- var std = 0;
- for (var i = 0; i < N; i++) {
- std += (s.arr[i] - avg) * (s.arr[i] - avg);
- }
- std = std / (N - 1);
- return std;
- }
-};
-
-alasql.aggr.STDEV = function(v, s, stage) {
- if (stage === 1 || stage === 2) {
- return alasql.aggr.VAR(v, s, stage);
- } else {
- return Math.sqrt(alasql.aggr.VAR(v, s, stage));
- }
+ throw new Error('There is not such type conversion for ' + this.toString());
};
-// Standard deviation
-// alasql.aggr.VARP = function(v,s,acc){
-
-// };
+/**
+ Convert one type to another
+ */
+alasql.stdfn.CONVERT = function(value, args) {
+ var val = value;
-alasql.aggr.VARP = function(v, s, stage) {
- if (stage == 1) {
- return {arr: [v], sum: v};
- } else if (stage == 2) {
- s.arr.push(v);
- s.sum += v;
- return s;
- } else {
- var N = s.arr.length;
- var avg = s.sum / N;
- var std = 0;
- for (var i = 0; i < N; i++) {
- std += (s.arr[i] - avg) * (s.arr[i] - avg);
+ if (args.style) {
+ // TODO 9,109, 20,120,21,121,126,130,131 conversions
+ var t;
+ if (/\d{8}/.test(val)) {
+ t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));
+ } else {
+ t = new Date(val);
}
- std = std / N;
- return std;
- }
-};
-
-alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) {
- if (stage == 1 || stage == 2) {
- return alasql.aggr.VARP(v, s, stage);
- } else {
- return Math.sqrt(alasql.aggr.VARP(v, s, stage));
- }
-};
-
-alasql._aggrOriginal = alasql.aggr;
-alasql.aggr = {};
-Object.keys(alasql._aggrOriginal).forEach(function(k) {
- alasql.aggr[k] = function(v, s, stage) {
- if (stage === 3 && typeof s === 'undefined') return undefined;
- return alasql._aggrOriginal[k].apply(null, arguments);
- };
-});
-
-// String functions
-stdfn.REPLACE = function(target, pattern, replacement) {
- return (target || '').split(pattern).join(replacement);
-};
-
-// This array is required for fast GUID generation
-var lut = [];
-for (var i = 0; i < 256; i++) {
- lut[i] = (i < 16 ? '0' : '') + i.toString(16);
-}
-
-stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() {
- var d0 = (Math.random() * 0xffffffff) | 0;
- var d1 = (Math.random() * 0xffffffff) | 0;
- var d2 = (Math.random() * 0xffffffff) | 0;
- var d3 = (Math.random() * 0xffffffff) | 0;
- return (
- lut[d0 & 0xff] +
- lut[(d0 >> 8) & 0xff] +
- lut[(d0 >> 16) & 0xff] +
- lut[(d0 >> 24) & 0xff] +
- '-' +
- lut[d1 & 0xff] +
- lut[(d1 >> 8) & 0xff] +
- '-' +
- lut[((d1 >> 16) & 0x0f) | 0x40] +
- lut[(d1 >> 24) & 0xff] +
- '-' +
- lut[(d2 & 0x3f) | 0x80] +
- lut[(d2 >> 8) & 0xff] +
- '-' +
- lut[(d2 >> 16) & 0xff] +
- lut[(d2 >> 24) & 0xff] +
- lut[d3 & 0xff] +
- lut[(d3 >> 8) & 0xff] +
- lut[(d3 >> 16) & 0xff] +
- lut[(d3 >> 24) & 0xff]
- );
-};
-
-/*
-//
-// CASE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.CaseValue = function(params) {
- return yy.extend(this, params);
-};
-yy.CaseValue.prototype.toString = function() {
- var s = 'CASE ';
- if (this.expression) s += this.expression.toString();
- if (this.whens) {
- s += this.whens
- .map(function(w) {
- return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString();
- })
- .join();
- }
- s += ' END';
- return s;
-};
-
-yy.CaseValue.prototype.findAggregator = function(query) {
-
- if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query);
- if (this.whens && this.whens.length > 0) {
- this.whens.forEach(function(w) {
- if (w.when.findAggregator) w.when.findAggregator(query);
- if (w.then.findAggregator) w.then.findAggregator(query);
- });
- }
- if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query);
-};
-
-yy.CaseValue.prototype.toJS = function(context, tableid, defcols) {
- var s = '((function(' + context + ',params,alasql){var y,r;';
- if (this.expression) {
- // this.expression.toJS(context, tableid)
- s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';';
- s += (this.whens || [])
- .map(function(w) {
- return (
- ' if(v==' +
- w.when.toJS(context, tableid, defcols) +
- ') {r=' +
- w.then.toJS(context, tableid, defcols) +
- '}'
- );
- })
- .join(' else ');
- if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
- } else {
- s += (this.whens || [])
- .map(function(w) {
- return (
- ' if(' +
- w.when.toJS(context, tableid, defcols) +
- ') {r=' +
- w.then.toJS(context, tableid, defcols) +
- '}'
- );
- })
- .join(' else ');
- if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
- }
- // TODO remove bind from CASE
- s += ';return r;}).bind(this))(' + context + ',params,alasql)';
-
- return s;
-};
-
-/*
-//
-// JSON for Alasql.js
-// Date: 19.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Json = function(params) {
- return yy.extend(this, params);
-};
-yy.Json.prototype.toString = function() {
- var s = ''; // '@'
- s += JSONtoString(this.value);
- s += '';
- return s;
-};
-
-var JSONtoString = (alasql.utils.JSONtoString = function(obj) {
- var s = '';
- if (typeof obj == 'string') s = '"' + obj + '"';
- else if (typeof obj == 'number') s = obj;
- else if (typeof obj == 'boolean') s = obj;
- else if (typeof obj == 'object') {
- if (Array.isArray(obj)) {
- s +=
- '[' +
- obj
- .map(function(b) {
- return JSONtoString(b);
- })
- .join(',') +
- ']';
- } else if (!obj.toJS || obj instanceof yy.Json) {
- // to prevent recursion
- s = '{';
- var ss = [];
- for (var k in obj) {
- var s1 = '';
- if (typeof k == 'string') s1 += '"' + k + '"';
- else if (typeof k == 'number') s1 += k;
- else if (typeof k == 'boolean') s1 += k;
- else {
- throw new Error('THis is not ES6... no expressions on left side yet');
- }
- s1 += ':' + JSONtoString(obj[k]);
- ss.push(s1);
- }
- s += ss.join(',') + '}';
- } else if (obj.toString) {
- s = obj.toString();
- } else {
- throw new Error('1Can not show JSON object ' + JSON.stringify(obj));
- }
- } else {
- throw new Error('2Can not show JSON object ' + JSON.stringify(obj));
- }
-
- return s;
-});
-
-function JSONtoJS(obj, context, tableid, defcols) {
- var s = '';
- if (typeof obj == 'string') s = '"' + obj + '"';
- else if (typeof obj == 'number') s = '(' + obj + ')';
- else if (typeof obj == 'boolean') s = obj;
- else if (typeof obj == 'object') {
- if (Array.isArray(obj)) {
- s +=
- '[' +
- obj
- .map(function(b) {
- return JSONtoJS(b, context, tableid, defcols);
- })
- .join(',') +
- ']';
- } else if (!obj.toJS || obj instanceof yy.Json) {
- // to prevent recursion
- s = '{';
- var ss = [];
- for (var k in obj) {
- var s1 = '';
- if (typeof k == 'string') s1 += '"' + k + '"';
- else if (typeof k == 'number') s1 += k;
- else if (typeof k == 'boolean') s1 += k;
- else {
- throw new Error('THis is not ES6... no expressions on left side yet');
- }
- s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols);
- ss.push(s1);
- }
- s += ss.join(',') + '}';
- } else if (obj.toJS) {
- s = obj.toJS(context, tableid, defcols);
- } else {
- throw new Error('1Can not parse JSON object ' + JSON.stringify(obj));
- }
- } else {
- throw new Error('2Can not parse JSON object ' + JSON.stringify(obj));
- }
-
- return s;
-}
-
-yy.Json.prototype.toJS = function(context, tableid, defcols) {
- // TODO redo
- return JSONtoJS(this.value, context, tableid, defcols);
-};
-
-/*
-//
-// CAST and CONVERT functions
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Convert = function(params) {
- return yy.extend(this, params);
-};
-yy.Convert.prototype.toString = function() {
- var s = 'CONVERT(';
- s += this.dbtypeid;
- if (typeof this.dbsize != 'undefined') {
- s += '(' + this.dbsize;
- if (this.dbprecision) s += ',' + this.dbprecision;
- s += ')';
- }
- s += ',' + this.expression.toString();
- if (this.style) s += ',' + this.style;
- s += ')';
- return s;
-};
-yy.Convert.prototype.toJS = function(context, tableid, defcols) {
- // if(this.style) {
- return (
- 'alasql.stdfn.CONVERT(' +
- this.expression.toJS(context, tableid, defcols) +
- ',{dbtypeid:"' +
- this.dbtypeid +
- '",dbsize:' +
- this.dbsize +
- ',dbprecision:' +
- this.dbprecision +
- ',style:' +
- this.style +
- '})'
- );
- // }
-
- throw new Error('There is not such type conversion for ' + this.toString());
-};
-
-/**
- Convert one type to another
- */
-alasql.stdfn.CONVERT = function(value, args) {
- var val = value;
-
- if (args.style) {
- // TODO 9,109, 20,120,21,121,126,130,131 conversions
- var t;
- if (/\d{8}/.test(val)) {
- t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));
- } else {
- t = new Date(val);
- }
- switch (args.style) {
- case 1: // mm/dd/yy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 2: // yy.mm.dd
- val =
- ('0' + t.getYear()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 3: // dd/mm/yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 4: // dd.mm.yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 5: // dd-mm-yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 6: // dd mon yy
- val =
- ('0' + t.getDate()).substr(-2) +
- ' ' +
- t
- .toString()
- .substr(4, 3)
- .toLowerCase() +
- ' ' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 7: // Mon dd,yy
- val =
- t.toString().substr(4, 3) +
- ' ' +
- ('0' + t.getDate()).substr(-2) +
- ',' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 8: // hh:mm:ss
- case 108: // hh:mm:ss
- val =
- ('0' + t.getHours()).substr(-2) +
- ':' +
- ('0' + t.getMinutes()).substr(-2) +
- ':' +
- ('0' + t.getSeconds()).substr(-2);
- break;
- case 10: // mm-dd-yy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 11: // yy/mm/dd
- val =
- ('0' + t.getYear()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 12: // yymmdd
- val =
- ('0' + t.getYear()).substr(-2) +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- ('0' + t.getDate()).substr(-2);
- break;
- case 101: // mm/dd/yyyy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2) +
- '/' +
- t.getFullYear();
- break;
- case 102: // yyyy.mm.dd
- val =
- t.getFullYear() +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 103: // dd/mm/yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- t.getFullYear();
- break;
- case 104: // dd.mm.yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- t.getFullYear();
- break;
- case 105: // dd-mm-yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- t.getFullYear();
- break;
- case 106: // dd mon yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- ' ' +
- t
- .toString()
- .substr(4, 3)
- .toLowerCase() +
- ' ' +
- t.getFullYear();
- break;
- case 107: // Mon dd,yyyy
- val =
- t.toString().substr(4, 3) +
- ' ' +
- ('0' + t.getDate()).substr(-2) +
- ',' +
- t.getFullYear();
- break;
- case 110: // mm-dd-yyyy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getDate()).substr(-2) +
- '-' +
- t.getFullYear();
- break;
- case 111: // yyyy/mm/dd
- val =
- t.getFullYear() +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2);
- break;
-
- case 112: // yyyymmdd
- val =
- t.getFullYear() +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- ('0' + t.getDate()).substr(-2);
- break;
- default:
- throw new Error('The CONVERT style ' + args.style + ' is not realized yet.');
- }
- }
-
- var udbtypeid = args.dbtypeid.toUpperCase();
-
- if (args.dbtypeid == 'Date') {
- return new Date(val);
- } else if (udbtypeid == 'DATE') {
- var d = new Date(val);
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- return s;
- } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {
- var d = new Date(val);
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- s +=
- ' ' +
- ('0' + d.getHours()).substr(-2) +
- ':' +
- ('0' + d.getMinutes()).substr(-2) +
- ':' +
- ('0' + d.getSeconds()).substr(-2);
- s += '.' + ('00' + d.getMilliseconds()).substr(-3);
- return s;
- } else if (['MONEY'].indexOf(udbtypeid) > -1) {
- var m = +val;
- return (m | 0) + ((m * 100) % 100) / 100;
- } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) {
- return !!val;
- } else if (
- ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(
- args.dbtypeid.toUpperCase()
- ) > -1
- ) {
- return val | 0;
- } else if (
- ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(
- args.dbtypeid.toUpperCase()
- ) > -1
- ) {
- if (args.dbsize) return ('' + val).substr(0, args.dbsize);
- else return '' + val;
- } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) {
- return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize);
- //else return ""+val.substr(0,1);
- } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) {
- var m = +val;
- //toPrecision sets the number of numbers total in the result
- m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m;
- //toFixed sets the number of numbers to the right of the decimal
- m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m;
- return m;
- } else if (['JSON'].indexOf(udbtypeid) > -1) {
- if (typeof val == 'object') return val;
- try {
- return JSON.parse(val);
- } catch (err) {
- throw new Error('Cannot convert string to JSON');
- }
- }
- return val;
-};
-
-/*
-//
-// CREATE TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global alasql, yy, hash */
-
-yy.ColumnDef = function(params) {
- return yy.extend(this, params);
-};
-yy.ColumnDef.prototype.toString = function() {
- var s = this.columnid;
- if (this.dbtypeid) {
- s += ' ' + this.dbtypeid;
- }
-
- if (this.dbsize) {
- s += '(' + this.dbsize;
- if (this.dbprecision) {
- s += ',' + this.dbprecision;
- }
- s += ')';
- }
-
- if (this.primarykey) {
- s += ' PRIMARY KEY';
- }
-
- if (this.notnull) {
- s += ' NOT NULL';
- }
-
- return s;
-};
-
-yy.CreateTable = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateTable.prototype.toString = function() {
- var s = 'CREATE';
- if (this.temporary) {
- s += ' TEMPORARY';
- }
-
- if (this.view) {
- s += ' VIEW';
- } else {
- s += ' ' + (this.class ? 'CLASS' : 'TABLE');
- }
- if (this.ifnotexists) {
- s += ' IF NOT EXISTS';
- }
- s += ' ' + this.table.toString();
- if (this.viewcolumns) {
- s +=
- '(' +
- this.viewcolumns
- .map(function(vcol) {
- return vcol.toString();
- })
- .join(',') +
- ')';
- }
- if (this.as) {
- s += ' AS ' + this.as;
- } else {
- var ss = this.columns.map(function(col) {
- return col.toString();
- });
- s += ' (' + ss.join(',') + ')';
- }
-
- if (this.view && this.select) {
- s += ' AS ' + this.select.toString();
- }
-
- return s;
-};
-
-// CREATE TABLE
-//yy.CreateTable.prototype.compile = returnUndefined;
-yy.CreateTable.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[this.table.databaseid || databaseid];
-
- var tableid = this.table.tableid;
- if (!tableid) {
- throw new Error('Table name is not defined');
- }
-
- // var ifnotexists = this.ifnotexists;
- var columns = this.columns;
- // if(false) {
- // if(!columns) {
- // throw new Error('Columns are not defined');
- // }
- // }
- var constraints = this.constraints || [];
-
- // IF NOT EXISTS
- if (this.ifnotexists && db.tables[tableid]) {
- return cb ? cb(0) : 0;
- }
-
- if (db.tables[tableid]) {
- throw new Error(
- "Can not create table '" +
- tableid +
- "', because it already exists in the database '" +
- db.databaseid +
- "'"
- );
- }
-
- var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object?
- // If this is a class
- if (this.class) {
- table.isclass = true;
- }
-
- var ss = []; // DEFAULT function components
- var uss = []; // ON UPDATE function components
- if (columns) {
- columns.forEach(function(col) {
- var dbtypeid = col.dbtypeid;
- if (!alasql.fn[dbtypeid]) {
- dbtypeid = dbtypeid.toUpperCase();
- }
-
- // Process SERIAL data type like Postgress
- if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) {
- col.identity = {value: 1, step: 1};
- }
-
- var newcol = {
- columnid: col.columnid,
- dbtypeid: dbtypeid,
- dbsize: col.dbsize, // Fixed issue #150
- dbprecision: col.dbprecision, // Fixed issue #150
- notnull: col.notnull,
- identity: col.identity,
- };
- if (col.identity) {
- table.identities[col.columnid] = {
- value: +col.identity.value,
- step: +col.identity.step,
- };
- // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\''
- // +tableid+'\'].identities[\''+col.columnid+'\'].value)');
- }
- if (col.check) {
- table.checks.push({
- id: col.check.constrantid,
- fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')),
- });
- }
-
- if (col.default) {
- ss.push("'" + col.columnid + "':" + col.default.toJS('r', ''));
- }
-
- // Check for primary key
- if (col.primarykey) {
- var pk = (table.pk = {});
- pk.columns = [col.columnid];
- pk.onrightfns = "r['" + col.columnid + "']";
- pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
- pk.hh = hash(pk.onrightfns);
- table.uniqs[pk.hh] = {};
- }
-
- // UNIQUE clause
- if (col.unique) {
- var uk = {};
- table.uk = table.uk || [];
- table.uk.push(uk);
- uk.columns = [col.columnid];
- uk.onrightfns = "r['" + col.columnid + "']";
- uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
- uk.hh = hash(uk.onrightfns);
- table.uniqs[uk.hh] = {};
- }
-
- // UNIQUE clause
- if (col.foreignkey) {
-
- var fk = col.foreignkey.table;
- var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
- if (typeof fk.columnid === 'undefined') {
- if (fktable.pk.columns && fktable.pk.columns.length > 0) {
- fk.columnid = fktable.pk.columns[0];
- } else {
- throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs');
- }
- }
-
- var fkfn = function(r) {
- var rr = {};
- if (typeof r[col.columnid] === 'undefined') {
- return true;
- }
- rr[fk.columnid] = r[col.columnid];
- var addr = fktable.pk.onrightfn(rr);
-
- if (!fktable.uniqs[fktable.pk.hh][addr]) {
- throw new Error(
- 'Foreign key "' +
- r[col.columnid] +
- '" is not found in table ' +
- fktable.tableid
- );
- }
- return true;
- };
- table.checks.push({fn: fkfn});
-
- }
-
- if (col.onupdate) {
- uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', ''));
- }
-
- table.columns.push(newcol);
- table.xcolumns[newcol.columnid] = newcol;
- });
- }
- table.defaultfns = ss.join(',');
- table.onupdatefns = uss.join(';');
-
- // if(constraints) {
- constraints.forEach(function(con) {
-
- var checkfn;
-
- if (con.type === 'PRIMARY KEY') {
- if (table.pk) {
- throw new Error('Primary key already exists');
- }
- var pk = (table.pk = {});
- pk.columns = con.columns;
- pk.onrightfns = pk.columns
- .map(function(columnid) {
- return "r['" + columnid + "']";
- })
- .join("+'`'+");
- pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
- pk.hh = hash(pk.onrightfns);
- table.uniqs[pk.hh] = {};
- } else if (con.type === 'CHECK') {
-
- checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', ''));
- } else if (con.type === 'UNIQUE') {
-
- var uk = {};
- table.uk = table.uk || [];
- table.uk.push(uk);
- uk.columns = con.columns;
- uk.onrightfns = uk.columns
- .map(function(columnid) {
- return "r['" + columnid + "']";
- })
- .join("+'`'+");
- uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
- uk.hh = hash(uk.onrightfns);
- table.uniqs[uk.hh] = {};
- } else if (con.type === 'FOREIGN KEY') {
-
- var col = table.xcolumns[con.columns[0]];
- var fk = con.fktable;
- if (con.fkcolumns && con.fkcolumns.length > 0) {
- fk.columnid = con.fkcolumns[0];
- }
- var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
- if (typeof fk.columnid === 'undefined') {
- fk.columnid = fktable.pk.columns[0];
- }
-
- checkfn = function(r) {
- var rr = {};
- if (typeof r[col.columnid] === 'undefined') {
- return true;
- }
- rr[fk.columnid] = r[col.columnid];
- var addr = fktable.pk.onrightfn(rr);
-
- if (!fktable.uniqs[fktable.pk.hh][addr]) {
-
- throw new Error(
- 'Foreign key "' +
- r[col.columnid] +
- '" is not found in table ' +
- fktable.tableid
- );
- }
- return true;
- };
- }
- if (checkfn) {
- table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'});
- }
- });
-
- if (this.view && this.viewcolumns) {
- var self = this;
- this.viewcolumns.forEach(function(vcol, idx) {
- self.select.columns[idx].as = vcol.columnid;
- });
- }
-
- //Used in 420from queryfn when table.view = true!
- if (this.view && this.select) {
- table.view = true;
-
- table.select = this.select.compile(this.table.databaseid || databaseid);
- }
-
- if (db.engineid) {
-
- return alasql.engines[db.engineid].createTable(
- this.table.databaseid || databaseid,
- tableid,
- this.ifnotexists,
- cb
- );
-
- // return res1;
- }
-
- // }
- // if(table.pk) {
-
- table.insert = function(r, orreplace) {
- var oldinserted = alasql.inserted;
- alasql.inserted = [r];
-
- var table = this;
-
- var toreplace = false; // For INSERT OR REPLACE
-
- /*
- // IDENTINY or AUTO_INCREMENT
- // if(table.identities && table.identities.length>0) {
- // table.identities.forEach(function(ident){
- // r[ident.columnid] = ident.value;
- // });
- // }
-*/
- // Trigger prevent functionality
- var prevent = false;
- for (var tr in table.beforeinsert) {
- var trigger = table.beforeinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return;
-
- // Trigger prevent functionality
- var escape = false;
- for (tr in table.insteadofinsert) {
- escape = true;
- trigger = table.insteadofinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- for (var columnid in table.identities) {
- var ident = table.identities[columnid];
-
- r[columnid] = ident.value;
-
- }
-
- if (table.checks && table.checks.length > 0) {
- table.checks.forEach(function(check) {
- if (!check.fn(r)) {
- // if(orreplace) toreplace=true; else
- throw new Error('Violation of CHECK constraint ' + (check.id || ''));
- }
- });
- }
-
- table.columns.forEach(function(column) {
- if (column.notnull && typeof r[column.columnid] === 'undefined') {
- throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
- }
- });
- if (table.pk) {
- var pk = table.pk;
- var addr = pk.onrightfn(r);
-
- if (typeof table.uniqs[pk.hh][addr] !== 'undefined') {
-
- if (orreplace) toreplace = table.uniqs[pk.hh][addr];
- else
- throw new Error(
- 'Cannot insert record, because it already exists in primary key index'
- );
- }
- // table.uniqs[pk.hh][addr]=r;
- }
-
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') {
- if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr];
- else
- throw new Error(
- 'Cannot insert record, because it already exists in unique index'
- );
- }
- // table.uniqs[uk.hh][ukaddr]=r;
- });
- }
-
- if (toreplace) {
- // Do UPDATE!!!
-
- table.update(
- function(t) {
- for (var f in r) t[f] = r[f];
- },
- table.data.indexOf(toreplace),
- params
- );
- } else {
- table.data.push(r);
-
- // Final change before insert
-
- // Update indices
-
- for (var columnid in table.identities) {
- var ident = table.identities[columnid];
-
- ident.value += ident.step;
-
- }
-
- if (table.pk) {
- var pk = table.pk;
- var addr = pk.onrightfn(r);
- table.uniqs[pk.hh][addr] = r;
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- table.uniqs[uk.hh][ukaddr] = r;
- });
- }
- }
-
- // Trigger prevent functionality
- for (var tr in table.afterinsert) {
- var trigger = table.afterinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- alasql.inserted = oldinserted;
- };
-
- table.delete = function(index) {
- var table = this;
- var r = table.data[index];
-
- // Prevent trigger
- var prevent = false;
- for (var tr in table.beforedelete) {
- var trigger = table.beforedelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return false;
-
- // Trigger prevent functionality
- var escape = false;
- for (var tr in table.insteadofdelete) {
- escape = true;
- var trigger = table.insteadofdelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- if (this.pk) {
- var pk = this.pk;
- var addr = pk.onrightfn(r);
- if (typeof this.uniqs[pk.hh][addr] === 'undefined') {
- throw new Error('Something wrong with primary key index on table');
- } else {
- this.uniqs[pk.hh][addr] = undefined;
- }
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') {
- throw new Error('Something wrong with unique index on table');
- }
- table.uniqs[uk.hh][ukaddr] = undefined;
- });
- }
- };
-
- table.deleteall = function() {
- this.data.length = 0;
- if (this.pk) {
- // var r = this.data[i];
- this.uniqs[this.pk.hh] = {};
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- table.uniqs[uk.hh] = {};
- });
- }
- };
-
- table.update = function(assignfn, i, params) {
- // TODO: Analyze the speed
- var r = cloneDeep(this.data[i]);
-
- var pk;
- // PART 1 - PRECHECK
- if (this.pk) {
- pk = this.pk;
- pk.pkaddr = pk.onrightfn(r, params);
- if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') {
- throw new Error('Something wrong with index on table');
- }
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- uk.ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') {
- throw new Error('Something wrong with unique index on table');
- }
- });
- }
-
- assignfn(r, params, alasql);
-
- // Prevent trigger
- var prevent = false;
- for (var tr in table.beforeupdate) {
- var trigger = table.beforeupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](this.data[i], r) === false)
- prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return false;
-
- // Trigger prevent functionality
- var escape = false;
- for (var tr in table.insteadofupdate) {
- escape = true;
- var trigger = table.insteadofupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](this.data[i], r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- // PART 2 - POST CHECK
- if (table.checks && table.checks.length > 0) {
- table.checks.forEach(function(check) {
- if (!check.fn(r)) {
- throw new Error('Violation of CHECK constraint ' + (check.id || ''));
- }
- });
- }
-
- table.columns.forEach(function(column) {
- if (column.notnull && typeof r[column.columnid] === 'undefined') {
- throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
- }
- });
- if (this.pk) {
- pk.newpkaddr = pk.onrightfn(r);
- if (
- typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' &&
- pk.newpkaddr !== pk.pkaddr
- ) {
- throw new Error('Record already exists');
- }
- }
-
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- uk.newukaddr = uk.onrightfn(r);
- if (
- typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' &&
- uk.newukaddr !== uk.ukaddr
- ) {
- throw new Error('Record already exists');
- }
- });
- }
-
- // PART 3 UPDATE
- if (this.pk) {
- this.uniqs[pk.hh][pk.pkaddr] = undefined;
- this.uniqs[pk.hh][pk.newpkaddr] = r;
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- table.uniqs[uk.hh][uk.ukaddr] = undefined;
- table.uniqs[uk.hh][uk.newukaddr] = r;
- });
- }
-
- this.data[i] = r;
-
- // Trigger prevent functionality
- for (var tr in table.afterupdate) {
- var trigger = table.afterupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](this.data[i], r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- };
-
- var res;
-
- if (!alasql.options.nocount) {
- res = 1;
- }
-
- if (cb) res = cb(res);
- return res;
-};
-
-//
-// Date functions
-//
-// (c) 2014, Andrey Gershun
-//
-
-/** Standard JavaScript data types */
-
-alasql.fn.Date = Object;
-alasql.fn.Date = Date;
-alasql.fn.Number = Number;
-alasql.fn.String = String;
-alasql.fn.Boolean = Boolean;
-
-/** Extend Object with properties */
-stdfn.EXTEND = alasql.utils.extend;
-
-stdfn.CHAR = String.fromCharCode.bind(String);
-stdfn.ASCII = function(a) {
- return a.charCodeAt(0);
-};
-
-/**
- Return first non-null argument
- See https://msdn.microsoft.com/en-us/library/ms190349.aspx
-*/
-stdfn.COALESCE = function() {
- for (var i = 0; i < arguments.length; i++) {
- if (typeof arguments[i] == 'undefined') continue;
- if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue;
- return arguments[i];
- }
- return undefined;
-};
-
-stdfn.USER = function() {
- return 'alasql';
-};
-
-stdfn.OBJECT_ID = function(objid) {
- return !!alasql.tables[objid];
-};
-
-stdfn.DATE = function(d) {
- if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));
- return new Date(d);
-};
-
-stdfn.NOW = function() {
- var d = new Date();
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- s +=
- ' ' +
- ('0' + d.getHours()).substr(-2) +
- ':' +
- ('0' + d.getMinutes()).substr(-2) +
- ':' +
- ('0' + d.getSeconds()).substr(-2);
- s += '.' + ('00' + d.getMilliseconds()).substr(-3);
- return s;
-};
-
-stdfn.GETDATE = stdfn.NOW;
-stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
-
-stdfn.SECOND = function(d) {
- var d = new Date(d);
- return d.getSeconds();
-};
-
-stdfn.MINUTE = function(d) {
- var d = new Date(d);
- return d.getMinutes();
-};
-
-stdfn.HOUR = function(d) {
- var d = new Date(d);
- return d.getHours();
-};
-
-stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) {
- var d = new Date(d);
- return d.getDay();
-};
-
-stdfn.DAY = stdfn.DAYOFMONTH = function(d) {
- var d = new Date(d);
- return d.getDate();
-};
-
-stdfn.MONTH = function(d) {
- var d = new Date(d);
- return d.getMonth() + 1;
-};
-
-stdfn.YEAR = function(d) {
- var d = new Date(d);
- return d.getFullYear();
-};
-
-var PERIODS = {
- year: 1000 * 3600 * 24 * 365,
- quarter: 1000 * 3600 * 24 * 365 / 4,
- month: 1000 * 3600 * 24 * 30,
- week: 1000 * 3600 * 24 * 7,
- day: 1000 * 3600 * 24,
- dayofyear: 1000 * 3600 * 24,
- weekday: 1000 * 3600 * 24,
- hour: 1000 * 3600,
- minute: 1000 * 60,
- second: 1000,
- millisecond: 1,
- microsecond: 0.001,
-};
-
-alasql.stdfn.DATEDIFF = function(period, d1, d2) {
- var interval = new Date(d2).getTime() - new Date(d1).getTime();
- return interval / PERIODS[period.toLowerCase()];
-};
-
-alasql.stdfn.DATEADD = function(period, interval, d) {
- var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()];
- return new Date(nd);
-};
-
-alasql.stdfn.INTERVAL = function(interval, period) {
- return interval * PERIODS[period.toLowerCase()];
-};
-
-alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) {
- var nd = new Date(d).getTime() + interval;
- return new Date(nd);
-};
-
-alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) {
- var nd = new Date(d).getTime() - interval;
- return new Date(nd);
-};
-
-/*
-//
-// DROP TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.DropTable = function(params) {
- return yy.extend(this, params);
-};
-yy.DropTable.prototype.toString = function() {
- var s = 'DROP' + ' ';
- if (this.view) s += 'VIEW';
- else s += 'TABLE';
- if (this.ifexists) s += ' IF EXISTS';
- s += ' ' + this.tables.toString();
- return s;
-};
-
-// DROP TABLE
-/**
- Drop tables
- @param {string} databaseid Database id
- @param {object} params Parameters
- @param {callback} cb Callback function
- @return Number of dropped tables
- @example
- DROP TABLE one;
- DROP TABLE IF NOT EXISTS two, three;
-*/
-yy.DropTable.prototype.execute = function(databaseid, params, cb) {
- var ifexists = this.ifexists;
- var res = 0; // No tables removed
- var count = 0;
- var tlen = this.tables.length;
-
- // For each table in the list
- this.tables.forEach(function(table) {
- var db = alasql.databases[table.databaseid || databaseid];
- var tableid = table.tableid;
-
- /** @todo Test with AUTOCOMMIT flag is ON */
- /** @todo Test with IndexedDB and multiple tables */
-
- if (!ifexists || (ifexists && db.tables[tableid])) {
- if (!db.tables[tableid]) {
- if (!alasql.options.dropifnotexists) {
- throw new Error(
- "Can not drop table '" +
- table.tableid +
- "', because it does not exist in the database."
- );
- }
- } else {
- if (db.engineid /*&& alasql.options.autocommit*/) {
- alasql.engines[db.engineid].dropTable(
- table.databaseid || databaseid,
- tableid,
- ifexists,
- function(res1) {
- delete db.tables[tableid];
- res += res1;
- count++;
- if (count == tlen && cb) cb(res);
- }
- );
- } else {
- delete db.tables[tableid];
- res++;
- count++;
- if (count == tlen && cb) cb(res);
- }
- }
- } else {
- count++;
- if (count == tlen && cb) cb(res);
- }
- });
- // if(cb) res = cb(res);
- return res;
-};
-
-yy.TruncateTable = function(params) {
- return yy.extend(this, params);
-};
-yy.TruncateTable.prototype.toString = function() {
- var s = 'TRUNCATE TABLE';
- s += ' ' + this.table.toString();
- return s;
-};
-
-yy.TruncateTable.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- var tableid = this.table.tableid;
- if (db.engineid) {
- return alasql.engines[db.engineid].truncateTable(
- this.table.databaseid || databaseid,
- tableid,
- this.ifexists,
- cb
- );
- }
- if (db.tables[tableid]) {
- db.tables[tableid].data = [];
- } else {
- throw new Error('Cannot truncate table becaues it does not exist');
- }
- return cb ? cb(0) : 0;
-};
-
-/*
-//
-// CREATE VERTEX for AlaSQL
-// Date: 21.04.2015
-// (c) 2015, Andrey Gershun
-//
-*/
-
-yy.CreateVertex = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateVertex.prototype.toString = function() {
- var s = 'CREATE VERTEX ';
- if (this.class) {
- s += this.class + ' ';
- }
- if (this.sharp) {
- s += '#' + this.sharp + ' ';
- }
- if (this.sets) {
- s += this.sets.toString();
- } else if (this.content) {
- s += this.content.toString();
- } else if (this.select) {
- s += this.select.toString();
- }
-
- return s;
-};
-
-yy.CreateVertex.prototype.toJS = function(context) {
-
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
- // var s = '';
- return s;
-};
-
-// CREATE TABLE
-
-yy.CreateVertex.prototype.compile = function(databaseid) {
- var dbid = databaseid;
-
- // CREATE VERTEX #id
- var sharp = this.sharp;
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', s);
- }
-
- // Todo: check for content, select and default
-
- var statement = function(params, cb) {
- var res;
-
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var id;
- if (typeof sharp !== 'undefined') {
- id = sharp;
- } else {
- id = db.counter++;
- }
- var vertex = {$id: id, $node: 'VERTEX'};
- db.objects[vertex.$id] = vertex;
- res = vertex;
- if (namefn) {
- namefn(vertex);
- }
- if (setfn) {
- setfn(vertex, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
- return res;
- };
- return statement;
-};
-
-yy.CreateEdge = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateEdge.prototype.toString = function() {
-
- var s = 'CREATE EDGE' + ' ';
- if (this.class) {
- s += this.class + ' ';
- }
- // todo: SET
- // todo: CONTENT
- // todo: SELECT
- return s;
-};
-
-yy.CreateEdge.prototype.toJS = function(context) {
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
- return s;
-};
-
-// CREATE TABLE
-
-yy.CreateEdge.prototype.compile = function(databaseid) {
- var dbid = databaseid;
- var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
- var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', 'var y;' + s);
- }
-
- /*
- todo: handle content, select and default
- else if(this.content) {
-
- } else if(this.select) {
-
- } else {
- }
- */
-
- var statement = function(params, cb) {
- var res = 0;
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var edge = {$id: db.counter++, $node: 'EDGE'};
- var v1 = fromfn(params, alasql);
- var v2 = tofn(params, alasql);
- // Set link
- edge.$in = [v1.$id];
- edge.$out = [v2.$id];
- // Set sides
- if (v1.$out === undefined) {
- v1.$out = [];
- }
- v1.$out.push(edge.$id);
-
- if (typeof v2.$in === undefined) {
- v2.$in = [];
- }
- v2.$in.push(edge.$id);
-
- // Save in objects
- db.objects[edge.$id] = edge;
- res = edge;
- if (namefn) {
- namefn(edge);
- }
-
- if (setfn) {
- setfn(edge, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
-
- return res;
- };
- return statement;
-};
-
-yy.CreateGraph = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateGraph.prototype.toString = function() {
- var s = 'CREATE GRAPH' + ' ';
- if (this.class) {
- s += this.class + ' ';
- }
- return s;
-};
-
-yy.CreateGraph.prototype.execute = function(databaseid, params, cb) {
- var res = [];
- if (this.from) {
- if (alasql.from[this.from.funcid]) {
- this.graph = alasql.from[this.from.funcid.toUpperCase()];
- }
- }
-
- // stop;
- this.graph.forEach(function(g) {
- if (g.source) {
- // GREATE EDGE
- var e = {};
- if (typeof g.as !== 'undefined') {
- alasql.vars[g.as] = e;
- }
-
- if (typeof g.prop !== 'undefined') {
- // e[g.prop] = e;
- // v.$id = g.prop; // We do not create $id for edge automatically
- e.name = g.prop;
- }
- if (typeof g.sharp !== 'undefined') {
- e.$id = g.sharp;
- }
- if (typeof g.name !== 'undefined') {
- e.name = g.name;
- }
- if (typeof g.class !== 'undefined') {
- e.$class = g.class;
- }
-
- var db = alasql.databases[databaseid];
- if (typeof e.$id === 'undefined') {
- e.$id = db.counter++;
- }
- e.$node = 'EDGE';
- if (typeof g.json !== 'undefined') {
- extend(
- e,
- new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
- );
- }
-
- var v1;
- if (g.source.vars) {
- var vo = alasql.vars[g.source.vars];
- if (typeof vo === 'object') {
- v1 = vo;
- } else {
- v1 = db.objects[vo];
- }
- } else {
- var av1 = g.source.sharp;
- if (typeof av1 === 'undefined') {
- av1 = g.source.prop;
- }
- v1 = alasql.databases[databaseid].objects[av1];
- if (
- typeof v1 === 'undefined' &&
- alasql.options.autovertex &&
- (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined')
- ) {
- v1 = findVertex(g.source.prop || g.source.name);
- if (typeof v1 === 'undefined') {
- v1 = createVertex(g.source);
- }
- }
- }
-
- var v2;
- if (g.source.vars) {
- var vo = alasql.vars[g.target.vars];
- if (typeof vo === 'object') {
- v2 = vo;
- } else {
- v2 = db.objects[vo];
- }
- } else {
- var av2 = g.target.sharp;
- if (typeof av2 === 'undefined') {
- av2 = g.target.prop;
- }
- v2 = alasql.databases[databaseid].objects[av2];
- if (
- typeof v2 === 'undefined' &&
- alasql.options.autovertex &&
- (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined')
- ) {
- v2 = findVertex(g.target.prop || g.target.name);
- if (typeof v2 === 'undefined') {
- v2 = createVertex(g.target);
- }
- }
- }
-
- // Set link
- e.$in = [v1.$id];
- e.$out = [v2.$id];
- // Set sides
- if (typeof v1.$out === 'undefined') {
- v1.$out = [];
- }
- v1.$out.push(e.$id);
- if (typeof v2.$in === 'undefined') {
- v2.$in = [];
- }
- v2.$in.push(e.$id);
-
- db.objects[e.$id] = e;
- if (typeof e.$class !== 'undefined') {
- if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') {
- throw new Error('No such class. Pleace use CREATE CLASS');
- } else {
- // TODO - add insert()
- alasql.databases[databaseid].tables[e.$class].data.push(e);
- }
- }
-
- res.push(e.$id);
- } else {
- createVertex(g);
- }
- });
-
- if (cb) {
- res = cb(res);
- }
- return res;
-
- // Find vertex by name
- function findVertex(name) {
- var objects = alasql.databases[alasql.useid].objects;
- for (var k in objects) {
- if (objects[k].name === name) {
- return objects[k];
- }
- }
- return undefined;
- }
-
- function createVertex(g) {
- // GREATE VERTEX
- var v = {};
- if (typeof g.as !== 'undefined') {
- alasql.vars[g.as] = v;
- }
-
- if (typeof g.prop !== 'undefined') {
- // v[g.prop] = true;
- v.$id = g.prop;
- v.name = g.prop;
- }
-
- if (typeof g.sharp !== 'undefined') {
- v.$id = g.sharp;
- }
- if (typeof g.name !== 'undefined') {
- v.name = g.name;
- }
- if (typeof g.class !== 'undefined') {
- v.$class = g.class;
- }
-
- var db = alasql.databases[databaseid];
- if (typeof v.$id === 'undefined') {
- v.$id = db.counter++;
- }
- v.$node = 'VERTEX';
- if (typeof g.json !== 'undefined') {
- extend(
- v,
- new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
- );
- }
- db.objects[v.$id] = v;
- if (typeof v.$class !== 'undefined') {
- if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') {
- throw new Error('No such class. Pleace use CREATE CLASS');
- } else {
- // TODO - add insert()
- alasql.databases[databaseid].tables[v.$class].data.push(v);
- }
- }
-
- res.push(v.$id);
- return v;
- }
-};
-
-yy.CreateGraph.prototype.compile1 = function(databaseid) {
- var dbid = databaseid;
- var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
- var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', 'var y;' + s);
- }
-
- // Todo: handle content, select and default
-
- var statement = function(params, cb) {
- var res = 0;
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var edge = {$id: db.counter++, $node: 'EDGE'};
- var v1 = fromfn(params, alasql);
- var v2 = tofn(params, alasql);
- // Set link
- edge.$in = [v1.$id];
- edge.$out = [v2.$id];
- // Set sides
- if (typeof v1.$out === 'undefined') {
- v1.$out = [];
- }
- v1.$out.push(edge.$id);
-
- if (typeof v2.$in === 'undefined') {
- v2.$in = [];
- }
- v2.$in.push(edge.$id);
- // Save in objects
- db.objects[edge.$id] = edge;
- res = edge;
- if (namefn) {
- namefn(edge);
- }
- if (setfn) {
- setfn(edge, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
- return res;
- };
- return statement;
-};
-
-/*
-//
-// ALTER TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-/* global alasql yy */
-
-// ALTER TABLE table1 RENAME TO table2
-yy.AlterTable = function(params) {
- return yy.extend(this, params);
-};
-yy.AlterTable.prototype.toString = function() {
- var s = 'ALTER TABLE ' + this.table.toString();
- if (this.renameto) s += ' RENAME TO ' + this.renameto;
- return s;
-};
-
-yy.AlterTable.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[databaseid];
- db.dbversion = Date.now();
-
- if (this.renameto) {
- var oldtableid = this.table.tableid;
- var newtableid = this.renameto;
- var res = 1;
- if (db.tables[newtableid]) {
- throw new Error(
- "Can not rename a table '" +
- oldtableid +
- "' to '" +
- newtableid +
- "', because the table with this name already exists"
- );
- } else if (newtableid === oldtableid) {
- throw new Error("Can not rename a table '" + oldtableid + "' to itself");
- } else {
- db.tables[newtableid] = db.tables[oldtableid];
- delete db.tables[oldtableid];
- res = 1;
- }
- if (cb) cb(res);
- return res;
- } else if (this.addcolumn) {
- db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.addcolumn.columnid;
- if (table.xcolumns[columnid]) {
- throw new Error(
- 'Cannot add column "' +
- columnid +
- '", because it already exists in the table "' +
- tableid +
- '"'
- );
- }
-
- var col = {
- columnid: columnid,
- dbtypeid: this.dbtypeid,
- dbsize: this.dbsize,
- dbprecision: this.dbprecision,
- dbenum: this.dbenum,
- defaultfns: null, // TODO defaultfns!!!
- };
-
- var defaultfn = function() {};
-
- table.columns.push(col);
- table.xcolumns[columnid] = col;
-
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
-
- table.data[i][columnid] = defaultfn();
- }
-
- // TODO
- return cb ? cb(1) : 1;
- } else if (this.modifycolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.modifycolumn.columnid;
-
- if (!table.xcolumns[columnid]) {
- throw new Error(
- 'Cannot modify column "' +
- columnid +
- '", because it was not found in the table "' +
- tableid +
- '"'
- );
- }
-
- col = table.xcolumns[columnid];
- col.dbtypeid = this.dbtypeid;
- col.dbsize = this.dbsize;
- col.dbprecision = this.dbprecision;
- col.dbenum = this.dbenum;
-
- // TODO
- return cb ? cb(1) : 1;
- } else if (this.renamecolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
-
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.renamecolumn;
- var tocolumnid = this.to;
-
- var col;
- if (!table.xcolumns[columnid]) {
- throw new Error(
- 'Column "' + columnid + '" is not found in the table "' + tableid + '"'
- );
- }
- if (table.xcolumns[tocolumnid]) {
- throw new Error(
- 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"'
- );
- }
-
- if (columnid != tocolumnid) {
- for (var j = 0; j < table.columns.length; j++) {
- if (table.columns[j].columnid == columnid) {
- table.columns[j].columnid = tocolumnid;
- }
- }
-
- table.xcolumns[tocolumnid] = table.xcolumns[columnid];
- delete table.xcolumns[columnid];
-
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
-
- table.data[i][tocolumnid] = table.data[i][columnid];
- delete table.data[i][columnid];
- }
- return table.data.length;
- } else {
- return cb ? cb(0) : 0;
- }
- } else if (this.dropcolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.dropcolumn;
-
- var found = false;
- for (var j = 0; j < table.columns.length; j++) {
- if (table.columns[j].columnid == columnid) {
- found = true;
- table.columns.splice(j, 1);
- break;
- }
- }
-
- if (!found) {
- throw new Error(
- 'Cannot drop column "' +
- columnid +
- '", because it was not found in the table "' +
- tableid +
- '"'
- );
- }
-
- delete table.xcolumns[columnid];
-
- for (i = 0, ilen = table.data.length; i < ilen; i++) {
- delete table.data[i][columnid];
- }
- return cb ? cb(table.data.length) : table.data.length;
- } else {
- throw Error('Unknown ALTER TABLE method');
- }
-};
-
-/*
-//
-// CREATE TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.CreateIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateIndex.prototype.toString = function() {
- var s = 'CREATE';
- if (this.unique) s += ' UNIQUE';
- s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString();
- s += '(' + this.columns.toString() + ')';
- return s;
-};
-
-// CREATE TABLE
-yy.CreateIndex.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[databaseid];
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var indexid = this.indexid;
- db.indices[indexid] = tableid;
-
- var rightfns = this.columns
- .map(function(expr) {
- return expr.expression.toJS('r', '');
- })
- .join("+'`'+");
-
- var rightfn = new Function('r,params,alasql', 'return ' + rightfns);
-
- if (this.unique) {
- table.uniqdefs[indexid] = {
- rightfns: rightfns,
- };
- var ux = (table.uniqs[indexid] = {});
- if (table.data.length > 0) {
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- var addr = rightfns(table.data[i]);
- if (!ux[addr]) {
- ux[addr] = {num: 0};
- }
- ux[addr].num++;
- }
- }
- } else {
- var hh = hash(rightfns);
- table.inddefs[indexid] = {rightfns: rightfns, hh: hh};
- table.indices[hh] = {};
-
- var ix = (table.indices[hh] = {});
- if (table.data.length > 0) {
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- var addr = rightfn(table.data[i], params, alasql);
- if (!ix[addr]) {
- ix[addr] = [];
- }
- ix[addr].push(table.data[i]);
- }
- }
- }
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.Reindex = function(params) {
- return yy.extend(this, params);
-};
-yy.Reindex.prototype.toString = function() {
- var s = 'REINDEX ' + this.indexid;
- return s;
-};
-
-// CREATE TABLE
-yy.Reindex.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[databaseid];
- var indexid = this.indexid;
-
- var tableid = db.indices[indexid];
- var table = db.tables[tableid];
- table.indexColumns();
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// DROP TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.DropIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.DropIndex.prototype.toString = function() {
- return 'DROP INDEX' + this.indexid;
-};
-
-// DROP TABLE
-yy.DropIndex.prototype.compile = function(db) {
- var indexid = this.indexid;
- return function() {
- return 1;
- };
-};
-
-/*
-//
-// WITH SELECT for Alasql.js
-// Date: 11.01.2015
-// (c) 2015, Andrey Gershun
-//
-*/
-
-yy.WithSelect = function(params) {
- return yy.extend(this, params);
-};
-yy.WithSelect.prototype.toString = function() {
- var s = 'WITH ';
- s +=
- this.withs
- .map(function(w) {
- return w.name + ' AS (' + w.select.toString() + ')';
- })
- .join(',') + ' ';
- s += this.select.toString();
- return s;
-};
-
-yy.WithSelect.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- // Create temporary tables
- var savedTables = [];
- self.withs.forEach(function(w) {
- savedTables.push(alasql.databases[databaseid].tables[w.name]);
- var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name}));
- tb.data = w.select.execute(databaseid, params);
- });
-
- var res = 1;
- res = this.select.execute(databaseid, params, function(data) {
- // Clear temporary tables
- // setTimeout(function(){
- self.withs.forEach(function(w, idx) {
- if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx];
- else delete alasql.databases[databaseid].tables[w.name];
- });
- // },0);
-
- if (cb) data = cb(data);
- return data;
- });
- return res;
-};
-
-/*
-//
-// IF for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.If = function(params) {
- return yy.extend(this, params);
-};
-yy.If.prototype.toString = function() {
- var s = 'IF' + ' ';
- s += this.expression.toString();
- s += ' ' + this.thenstat.toString();
- if (this.elsestat) s += ' ELSE ' + this.thenstat.toString();
- return s;
-};
-
-// CREATE TABLE
-
-yy.If.prototype.execute = function(databaseid, params, cb) {
- var res;
-
- var fn = new Function(
- 'params,alasql,p',
- 'var y;return ' + this.expression.toJS('({})', '', null)
- ).bind(this);
-
- if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb);
- else {
- if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb);
- else {
- if (cb) res = cb(res);
- }
- }
- // else res = this.elsestat.execute(databaseid,params,cb,scope);
- return res;
-};
-
-/*
-//
-// CREATE VIEW for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.While = function(params) {
- return yy.extend(this, params);
-};
-yy.While.prototype.toString = function() {
- var s = 'WHILE ';
- s += this.expression.toString();
- s += ' ' + this.loopstat.toString();
- return s;
-};
-
-yy.While.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- var res = [];
-
- var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS());
-
- if (cb) {
- var first = false;
- loop();
- function loop(data) {
- if (first) {
- res.push(data);
- } else {
- first = true;
- }
- setTimeout(function() {
- if (fn(params, alasql)) {
- self.loopstat.execute(databaseid, params, loop);
- } else {
- res = cb(res);
- }
- }, 0);
- }
- } else {
- while (fn(params, alasql)) {
- var res1 = self.loopstat.execute(databaseid, params);
- res.push(res1);
- }
- }
- return res;
-};
-
-yy.Break = function(params) {
- return yy.extend(this, params);
-};
-yy.Break.prototype.toString = function() {
- var s = 'BREAK';
- return s;
-};
-
-yy.Break.prototype.execute = function(databaseid, params, cb, scope) {
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.Continue = function(params) {
- return yy.extend(this, params);
-};
-yy.Continue.prototype.toString = function() {
- var s = 'CONTINUE';
- return s;
-};
-
-yy.Continue.prototype.execute = function(databaseid, params, cb, scope) {
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.BeginEnd = function(params) {
- return yy.extend(this, params);
-};
-yy.BeginEnd.prototype.toString = function() {
- var s = 'BEGIN ' + this.statements.toString() + ' END';
- return s;
-};
-
-yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) {
- var self = this;
- var res = [];
-
- var idx = 0;
- runone();
- function runone() {
- self.statements[idx].execute(databaseid, params, function(data) {
- res.push(data);
- idx++;
- if (idx < self.statements.length) return runone();
- if (cb) res = cb(res);
- });
- }
- return res;
-};
-
-/*
-//
-// INSERT for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql*/
-yy.Insert = function(params) {
- return yy.extend(this, params);
-};
-yy.Insert.prototype.toString = function() {
- var s = 'INSERT ';
- if (this.orreplace) s += 'OR REPLACE ';
- if (this.replaceonly) s = 'REPLACE ';
- s += 'INTO ' + this.into.toString();
- if (this.columns) s += '(' + this.columns.toString() + ')';
- if (this.values) s += ' VALUES ' + this.values.toString();
- if (this.select) s += ' ' + this.select.toString();
- return s;
-};
-
-yy.Insert.prototype.toJS = function(context, tableid, defcols) {
-
- // if(this.expression.reduced) return 'true';
- // return this.expression.toJS(context, tableid, defcols);
-
- // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
-
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
-
- return s;
-};
-
-yy.Insert.prototype.compile = function(databaseid) {
- var self = this;
- databaseid = self.into.databaseid || databaseid;
- var db = alasql.databases[databaseid];
-
- var tableid = self.into.tableid;
- var table = db.tables[tableid];
-
- if (!table) {
- throw "Table '" + tableid + "' could not be found";
- }
-
- // Check, if this dirty flag is required
- var s = '';
- var sw = '';
- var s = "db.tables['" + tableid + "'].dirty=true;";
- var s3 = 'var a,aa=[],x;';
-
- var s33;
-
- // INSERT INTO table VALUES
- if (this.values) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- self.values.forEach(function(values) {
- var ss = [];
-
- // s += 'db.tables[\''+tableid+'\'].data.push({';
-
- // s += '';
- if (self.columns) {
- self.columns.forEach(function(col, idx) {
-
- // ss.push(col.columnid +':'+ self.values[idx].value.toString());
-
- // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined;
-
- // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0;
- // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value];
- var q = "'" + col.columnid + "':";
- if (table.xcolumns && table.xcolumns[col.columnid]) {
- if (
- ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(
- table.xcolumns[col.columnid].dbtypeid
- ) >= 0
- ) {
- //q += ''
- q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)';
- } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) {
- q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '(';
- q += values[idx].toJS();
- q += '))';
- } else {
- q += values[idx].toJS();
- }
- } else {
- q += values[idx].toJS();
- }
- ss.push(q);
- });
- } else {
- // var table = db.tables[tableid];
-
- if (Array.isArray(values) && table.columns && table.columns.length > 0) {
- table.columns.forEach(function(col, idx) {
- var q = "'" + col.columnid + "':";
- // var val = values[idx].toJS();
-
- if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) {
- q += '+' + values[idx].toJS();
- } else if (alasql.fn[col.dbtypeid]) {
- q += '(new ' + col.dbtypeid + '(';
- q += values[idx].toJS();
- q += '))';
- } else {
- q += values[idx].toJS();
- }
-
- ss.push(q);
-
- });
- } else {
-
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
- sw = JSONtoJS(values);
- }
- }
-
- if (db.tables[tableid].defaultfns) {
- ss.unshift(db.tables[tableid].defaultfns);
- }
- if (sw) {
- s += 'a=' + sw + ';';
- } else {
- s += 'a={' + ss.join(',') + '};';
- }
-
- // If this is a class
- if (db.tables[tableid].isclass) {
- s += "var db=alasql.databases['" + databaseid + "'];";
- s += 'a.$class="' + tableid + '";';
- s += 'a.$id=db.counter++;';
- s += 'db.objects[a.$id]=a;';
- }
- // s += 'db.tables[\''+tableid+'\'].insert(r);';
- if (db.tables[tableid].insert) {
- s += "var db=alasql.databases['" + databaseid + "'];";
- s +=
- "db.tables['" +
- tableid +
- "'].insert(a," +
- (self.orreplace ? 'true' : 'false') +
- ');';
- } else {
- s += 'aa.push(a);';
- }
- });
-
- s33 = s3 + s;
-
- if (db.tables[tableid].insert) {
- // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);';
- } else {
- s +=
- "alasql.databases['" +
- databaseid +
- "'].tables['" +
- tableid +
- "'].data=" +
- "alasql.databases['" +
- databaseid +
- "'].tables['" +
- tableid +
- "'].data.concat(aa);";
- }
-
- if (db.tables[tableid].insert) {
- if (db.tables[tableid].isclass) {
- s += 'return a.$id;';
- } else {
- s += 'return ' + self.values.length;
- }
- } else {
- s += 'return ' + self.values.length;
- }
-
- var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this);
-
- // INSERT INTO table SELECT
- } else if (this.select) {
- this.select.modifier = 'RECORDSET';
- var selectfn = this.select.compile(databaseid);
- if (db.engineid && alasql.engines[db.engineid].intoTable) {
- var statement = function(params, cb) {
- var aa = selectfn(params);
- var res = alasql.engines[db.engineid].intoTable(
- db.databaseid,
- tableid,
- aa.data,
- null,
- cb
- );
- return res;
- };
- return statement;
- } else {
-
- var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})';
- var defaultfn = new Function('r,db,params,alasql', defaultfns);
- var insertfn = function(db, params, alasql) {
- var res = selectfn(params).data;
- if (db.tables[tableid].insert) {
- // If insert() function exists (issue #92)
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- var r = cloneDeep(res[i]);
- defaultfn(r, db, params, alasql);
- db.tables[tableid].insert(r, self.orreplace);
- }
- } else {
- db.tables[tableid].data = db.tables[tableid].data.concat(res);
- }
- if (alasql.options.nocount) return;
- else return res.length;
- };
- }
- } else if (this.default) {
- var insertfns =
- "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;';
- var insertfn = new Function('db,params,alasql', insertfns);
- } else {
- throw new Error('Wrong INSERT parameters');
- }
-
- if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) {
- var statement = function(params, cb) {
- var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params);
-
- var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb);
- // if(cb) cb(res);
- return res;
- };
- } else {
- var statement = function(params, cb) {
-
- var db = alasql.databases[databaseid];
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var res = insertfn(db, params, alasql);
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
- // var res = insertfn(db, params);
- if (alasql.options.nocount) res = undefined;
- if (cb) cb(res);
- return res;
- };
- }
-
- return statement;
-};
-
-yy.Insert.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
- // throw new Error('Insert statement is should be compiled')
-};
-
-/*
-//
-// TRIGGER for Alasql.js
-// Date: 29.12.2015
-//
-*/
-
-yy.CreateTrigger = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateTrigger.prototype.toString = function() {
- var s = 'CREATE TRIGGER ' + this.trigger + ' ';
- if (this.when) s += this.when + ' ';
- s += this.action + ' ON ';
- if (this.table.databaseid) s += this.table.databaseid + '.';
- s += this.table.tableid + ' ';
- s += this.statement.toString();
- return s;
-};
-
-yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) {
- var res = 1; // No tables removed
- var triggerid = this.trigger;
- databaseid = this.table.databaseid || databaseid;
- var db = alasql.databases[databaseid];
- var tableid = this.table.tableid;
-
- var trigger = {
- action: this.action,
- when: this.when,
- statement: this.statement,
- funcid: this.funcid,
- };
-
- db.triggers[triggerid] = trigger;
- if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforeinsert[triggerid] = trigger;
- } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') {
- db.tables[tableid].afterinsert[triggerid] = trigger;
- } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofinsert[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforedelete[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') {
- db.tables[tableid].afterdelete[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofdelete[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforeupdate[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') {
- db.tables[tableid].afterupdate[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofupdate[triggerid] = trigger;
- }
-
- if (cb) res = cb(res);
- return res;
-};
-
-yy.DropTrigger = function(params) {
- return yy.extend(this, params);
-};
-yy.DropTrigger.prototype.toString = function() {
- var s = 'DROP TRIGGER ' + this.trigger;
- return s;
-};
-
-/**
- Drop trigger
- @param {string} databaseid Database id
- @param {object} params Parameters
- @param {callback} cb Callback function
- @return Number of dropped triggers
- @example
- DROP TRIGGER one;
-*/
-yy.DropTrigger.prototype.execute = function(databaseid, params, cb) {
- var res = 0; // No tables removed
- var db = alasql.databases[databaseid];
- var triggerid = this.trigger;
- // For each table in the list
- var tableid = db.triggers[triggerid];
- if (tableid) {
- res = 1;
- delete db.tables[tableid].beforeinsert[triggerid];
- delete db.tables[tableid].afterinsert[triggerid];
- delete db.tables[tableid].insteadofinsert[triggerid];
- delete db.tables[tableid].beforedelte[triggerid];
- delete db.tables[tableid].afterdelete[triggerid];
- delete db.tables[tableid].insteadofdelete[triggerid];
- delete db.tables[tableid].beforeupdate[triggerid];
- delete db.tables[tableid].afterupdate[triggerid];
- delete db.tables[tableid].insteadofupdate[triggerid];
- delete db.triggers[triggerid];
- } else {
- throw new Error('Trigger not found');
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// DELETE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Delete = function(params) {
- return yy.extend(this, params);
-};
-yy.Delete.prototype.toString = function() {
- var s = 'DELETE FROM ' + this.table.toString();
- if (this.where) s += ' WHERE ' + this.where.toString();
- return s;
-};
-
-yy.Delete.prototype.compile = function(databaseid) {
-
- databaseid = this.table.databaseid || databaseid;
- var tableid = this.table.tableid;
- var statement;
- var db = alasql.databases[databaseid];
-
- if (this.where) {
-
- // this.query = {};
-
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- // try {
-
- // var query = {};
-
- var wherefn = new Function(
- 'r,params,alasql',
- 'var y;return (' + this.where.toJS('r', '') + ')'
- ).bind(this);
-
- statement = function(params, cb) {
- if (db.engineid && alasql.engines[db.engineid].deleteFromTable) {
- return alasql.engines[db.engineid].deleteFromTable(
- databaseid,
- tableid,
- wherefn,
- params,
- cb
- );
- }
-
- if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- // table.dirty = true;
- var orignum = table.data.length;
-
- var newtable = [];
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- if (wherefn(table.data[i], params, alasql)) {
- // Check for transaction - if it is not possible then return all back
- if (table.delete) {
- table.delete(i, params, alasql);
- } else {
- // Simply do not push
- }
- } else newtable.push(table.data[i]);
- }
- // table.data = table.data.filter(function(r){return !;});
- table.data = newtable;
-
- // Trigger prevent functionality
- for (var tr in table.afterdelete) {
- var trigger = table.afterdelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid]();
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
-
- var res = orignum - table.data.length;
- if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(res);
- return res;
- };
- // .bind(query);
-
- // if(!this.queries) return;
- // query.queriesfn = this.queries.map(function(q) {
- // return q.compile(alasql.useid);
- // });
- } else {
- statement = function(params, cb) {
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- table.dirty = true;
- var orignum = db.tables[tableid].data.length;
- //table.deleteall();
- // Delete all records from the array
- db.tables[tableid].data.length = 0;
-
- // Reset PRIMARY KEY and indexes
- for (var ix in db.tables[tableid].uniqs) {
- db.tables[tableid].uniqs[ix] = {};
- }
-
- for (var ix in db.tables[tableid].indices) {
- db.tables[tableid].indices[ix] = {};
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(orignum);
- return orignum;
- };
- }
-
- return statement;
-};
-
-yy.Delete.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
-};
-
-/*
-//
-// UPDATE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql */
-
-yy.Update = function(params) {
- return yy.extend(this, params);
-};
-yy.Update.prototype.toString = function() {
- var s = 'UPDATE ' + this.table.toString();
- if (this.columns) s += ' SET ' + this.columns.toString();
- if (this.where) s += ' WHERE ' + this.where.toString();
- return s;
-};
-
-yy.SetColumn = function(params) {
- return yy.extend(this, params);
-};
-yy.SetColumn.prototype.toString = function() {
- return this.column.toString() + '=' + this.expression.toString();
-};
-
-yy.Update.prototype.compile = function(databaseid) {
-
- databaseid = this.table.databaseid || databaseid;
- var tableid = this.table.tableid;
-
- if (this.where) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- var wherefn = new Function(
- 'r,params,alasql',
- 'var y;return ' + this.where.toJS('r', '')
- ).bind(this);
- }
-
- // Construct update function
- var s = alasql.databases[databaseid].tables[tableid].onupdatefns || '';
- s += ';';
- this.columns.forEach(function(col) {
- s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';';
- });
-
- var assignfn = new Function('r,params,alasql', 'var y;' + s);
-
- var statement = function(params, cb) {
- var db = alasql.databases[databaseid];
-
- if (db.engineid && alasql.engines[db.engineid].updateTable) {
-
- return alasql.engines[db.engineid].updateTable(
- databaseid,
- tableid,
- assignfn,
- wherefn,
- params,
- cb
- );
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- if (!table) {
- throw new Error("Table '" + tableid + "' not exists");
- }
- // table.dirty = true;
- var numrows = 0;
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- if (!wherefn || wherefn(table.data[i], params, alasql)) {
- if (table.update) {
- table.update(assignfn, i, params);
- } else {
- assignfn(table.data[i], params, alasql);
- }
- numrows++;
- }
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(numrows);
- return numrows;
- };
- return statement;
-};
-
-yy.Update.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
-};
-
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global alasql, yy */
-
-yy.Merge = function(params) {
- return yy.extend(this, params);
-};
-yy.Merge.prototype.toString = function() {
- var s = 'MERGE ';
- s += this.into.tableid + ' ';
- if (this.into.as) s += 'AS ' + this.into.as + ' ';
- s += 'USING ' + this.using.tableid + ' ';
- if (this.using.as) s += 'AS ' + this.using.as + ' ';
- s += 'ON ' + this.on.toString() + ' ';
- this.matches.forEach(function(m) {
- s += 'WHEN ';
- if (!m.matched) s += 'NOT ';
- s += 'MATCHED ';
- if (m.bytarget) s += 'BY TARGET ';
- if (m.bysource) s += 'BY SOURCE ';
- if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' ';
- s += 'THEN ';
- if (m.action.delete) s += 'DELETE ';
- if (m.action.insert) {
- s += 'INSERT ';
- if (m.action.columns) s += '(' + m.action.columns.toString() + ') ';
- if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') ';
- if (m.action.defaultvalues) s += 'DEFAULT VALUES ';
- }
- if (m.action.update) {
- s += 'UPDATE ';
- s +=
- m.action.update
- .map(function(u) {
- return u.toString();
- })
- .join(',') + ' ';
- }
- });
-
- return s;
-};
-
-yy.Merge.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
-
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// UPDATE for Alasql.js
-// Date: 03.11.2014
-// Modified: 16.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql */
-
-// CREATE DATABASE databaseid
-yy.CreateDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateDatabase.prototype.toString = function() {
- var s = 'CREATE';
- if (this.engineid) s += ' ' + this.engineid;
- s += ' DATABASE';
- if (this.ifnotexists) s += ' IF NOT EXISTS';
- s += ' ' + this.databaseid;
- if (this.args && this.args.length > 0) {
- s +=
- '(' +
- this.args
- .map(function(arg) {
- return arg.toString();
- })
- .join(', ') +
- ')';
- }
- if (this.as) s += ' AS ' + this.as;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) {
- var args;
- if (this.args && this.args.length > 0) {
- args = this.args.map(function(arg) {
-
- return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql);
- });
- }
- if (this.engineid) {
- var res = alasql.engines[this.engineid].createDatabase(
- this.databaseid,
- this.args,
- this.ifnotexists,
- this.as,
- cb
- );
- return res;
- } else {
- var dbid = this.databaseid;
- if (alasql.databases[dbid]) {
- throw new Error("Database '" + dbid + "' already exists");
- }
- var a = new alasql.Database(dbid);
- var res = 1;
- if (cb) return cb(res);
- return res;
- }
-};
-
-// CREATE DATABASE databaseid
-yy.AttachDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.AttachDatabase.prototype.toString = function(args) {
- var s = 'ATTACH';
- if (this.engineid) s += ' ' + this.engineid;
- s += ' DATABASE' + ' ' + this.databaseid;
- // TODO add params
- if (args) {
- s += '(';
- if (args.length > 0) {
- s += args
- .map(function(arg) {
- return arg.toString();
- })
- .join(', ');
- }
- s += ')';
- }
- if (this.as) s += ' AS' + ' ' + this.as;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) {
- if (!alasql.engines[this.engineid]) {
- throw new Error('Engine "' + this.engineid + '" is not defined.');
- }
- var res = alasql.engines[this.engineid].attachDatabase(
- this.databaseid,
- this.as,
- this.args,
- params,
- cb
- );
- return res;
-};
-
-// CREATE DATABASE databaseid
-yy.DetachDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.DetachDatabase.prototype.toString = function() {
- var s = 'DETACH';
- s += ' DATABASE' + ' ' + this.databaseid;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) {
- if (!alasql.databases[this.databaseid].engineid) {
- throw new Error(
- 'Cannot detach database "' + this.engineid + '", because it was not attached.'
- );
- }
- var res;
-
- var dbid = this.databaseid;
-
- if (dbid === alasql.DEFAULTDATABASEID) {
- throw new Error('Drop of default database is prohibited');
- }
-
- if (!alasql.databases[dbid]) {
- if (!this.ifexists) {
- throw new Error("Database '" + dbid + "' does not exist");
- } else {
- res = 0;
- }
- } else {
- delete alasql.databases[dbid];
- if (dbid === alasql.useid) {
- alasql.use();
- }
- res = 1;
- }
- if (cb) cb(res);
- return res;
- // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb);
- // return res;
-};
-
-// USE DATABSE databaseid
-// USE databaseid
-yy.UseDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.UseDatabase.prototype.toString = function() {
- return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid;
-};
-//yy.UseDatabase.prototype.compile = returnUndefined;
-yy.UseDatabase.prototype.execute = function(databaseid, params, cb) {
- var dbid = this.databaseid;
- if (!alasql.databases[dbid]) {
- throw new Error("Database '" + dbid + "' does not exist");
- }
- alasql.use(dbid);
- var res = 1;
- if (cb) cb(res);
- return res;
-};
-
-// DROP DATABASE databaseid
-yy.DropDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.DropDatabase.prototype.toString = function() {
- var s = 'DROP';
- if (this.ifexists) s += ' IF EXISTS';
- s += ' DATABASE ' + this.databaseid;
- return s;
-};
-//yy.DropDatabase.prototype.compile = returnUndefined;
-yy.DropDatabase.prototype.execute = function(databaseid, params, cb) {
- if (this.engineid) {
- return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb);
- }
- var res;
-
- var dbid = this.databaseid;
-
- if (dbid === alasql.DEFAULTDATABASEID) {
- throw new Error('Drop of default database is prohibited');
- }
- if (!alasql.databases[dbid]) {
- if (!this.ifexists) {
- throw new Error("Database '" + dbid + "' does not exist");
- } else {
- res = 0;
- }
- } else {
- if (alasql.databases[dbid].engineid) {
- throw new Error(
- "Cannot drop database '" + dbid + "', because it is attached. Detach it."
- );
- }
-
- delete alasql.databases[dbid];
- if (dbid === alasql.useid) {
- alasql.use();
- }
- res = 1;
- }
- if (cb) cb(res);
- return res;
-};
-
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Declare = function(params) {
- return yy.extend(this, params);
-};
-yy.Declare.prototype.toString = function() {
- var s = 'DECLARE ';
- if (this.declares && this.declares.length > 0) {
- s = this.declares
- .map(function(declare) {
- var s = '';
- s += '@' + declare.variable + ' ';
- s += declare.dbtypeid;
- if (this.dbsize) {
- s += '(' + this.dbsize;
- if (this.dbprecision) {
- s += ',' + this.dbprecision;
- }
- s += ')';
- }
- if (declare.expression) {
- s += ' = ' + declare.expression.toString();
- }
- return s;
- })
- .join(',');
- }
- return s;
-};
-
-yy.Declare.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (this.declares && this.declares.length > 0) {
- this.declares.map(function(declare) {
- var dbtypeid = declare.dbtypeid;
- if (!alasql.fn[dbtypeid]) {
- dbtypeid = dbtypeid.toUpperCase();
- }
- alasql.declares[declare.variable] = {
- dbtypeid: dbtypeid,
- dbsize: declare.dbsize,
- dbprecision: declare.dbprecision,
- };
-
- // Set value
- if (declare.expression) {
-
- alasql.vars[declare.variable] = new Function(
- 'params,alasql',
- 'return ' + declare.expression.toJS('({})', '', null)
- )(params, alasql);
- if (alasql.declares[declare.variable]) {
- alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
- alasql.vars[declare.variable],
- alasql.declares[declare.variable]
- );
- }
- }
- });
- }
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-/*
-//
-// SHOW for Alasql.js
-// Date: 19.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+ switch (args.style) {
+ case 1: // mm/dd/yy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 2: // yy.mm.dd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 3: // dd/mm/yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 4: // dd.mm.yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 5: // dd-mm-yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 6: // dd mon yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ ' ' +
+ t
+ .toString()
+ .substr(4, 3)
+ .toLowerCase() +
+ ' ' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 7: // Mon dd,yy
+ val =
+ t.toString().substr(4, 3) +
+ ' ' +
+ ('0' + t.getDate()).substr(-2) +
+ ',' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 8: // hh:mm:ss
+ case 108: // hh:mm:ss
+ val =
+ ('0' + t.getHours()).substr(-2) +
+ ':' +
+ ('0' + t.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + t.getSeconds()).substr(-2);
+ break;
+ case 10: // mm-dd-yy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 11: // yy/mm/dd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 12: // yymmdd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 101: // mm/dd/yyyy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ t.getFullYear();
+ break;
+ case 102: // yyyy.mm.dd
+ val =
+ t.getFullYear() +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 103: // dd/mm/yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ t.getFullYear();
+ break;
+ case 104: // dd.mm.yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ t.getFullYear();
+ break;
+ case 105: // dd-mm-yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ t.getFullYear();
+ break;
+ case 106: // dd mon yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ ' ' +
+ t
+ .toString()
+ .substr(4, 3)
+ .toLowerCase() +
+ ' ' +
+ t.getFullYear();
+ break;
+ case 107: // Mon dd,yyyy
+ val =
+ t.toString().substr(4, 3) +
+ ' ' +
+ ('0' + t.getDate()).substr(-2) +
+ ',' +
+ t.getFullYear();
+ break;
+ case 110: // mm-dd-yyyy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ t.getFullYear();
+ break;
+ case 111: // yyyy/mm/dd
+ val =
+ t.getFullYear() +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2);
+ break;
-yy.ShowDatabases = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowDatabases.prototype.toString = function() {
- var s = 'SHOW DATABASES';
- if (this.like) s += 'LIKE ' + this.like.toString();
- return s;
-};
-yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) {
- if (this.engineid) {
- return alasql.engines[this.engineid].showDatabases(this.like, cb);
- } else {
- var self = this;
- var res = [];
- for (var dbid in alasql.databases) {
- res.push({databaseid: dbid});
- }
- if (self.like && res && res.length > 0) {
- res = res.filter(function(d) {
- // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
- return alasql.utils.like(self.like.value, d.databaseid);
- });
+ case 112: // yyyymmdd
+ val =
+ t.getFullYear() +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ default:
+ throw new Error('The CONVERT style ' + args.style + ' is not realized yet.');
}
- if (cb) cb(res);
- return res;
}
-};
-yy.ShowTables = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowTables.prototype.toString = function() {
- var s = 'SHOW TABLES';
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- if (this.like) s += ' LIKE ' + this.like.toString();
- return s;
-};
-yy.ShowTables.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
+ var udbtypeid = args.dbtypeid.toUpperCase();
- var self = this;
- var res = [];
- for (var tableid in db.tables) {
- res.push({tableid: tableid});
- }
- if (self.like && res && res.length > 0) {
- res = res.filter(function(d) {
- //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
- return alasql.utils.like(self.like.value, d.tableid);
- });
+ if (args.dbtypeid == 'Date') {
+ return new Date(val);
+ } else if (udbtypeid == 'DATE') {
+ var d = new Date(val);
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ return s;
+ } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {
+ var d = new Date(val);
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ s +=
+ ' ' +
+ ('0' + d.getHours()).substr(-2) +
+ ':' +
+ ('0' + d.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + d.getSeconds()).substr(-2);
+ s += '.' + ('00' + d.getMilliseconds()).substr(-3);
+ return s;
+ } else if (['MONEY'].indexOf(udbtypeid) > -1) {
+ var m = +val;
+ return (m | 0) + ((m * 100) % 100) / 100;
+ } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) {
+ return !!val;
+ } else if (
+ ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(
+ args.dbtypeid.toUpperCase()
+ ) > -1
+ ) {
+ return val | 0;
+ } else if (
+ ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(
+ args.dbtypeid.toUpperCase()
+ ) > -1
+ ) {
+ if (args.dbsize) return ('' + val).substr(0, args.dbsize);
+ else return '' + val;
+ } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) {
+ return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize);
+ //else return ""+val.substr(0,1);
+ } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) {
+ var m = +val;
+ //toPrecision sets the number of numbers total in the result
+ m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m;
+ //toFixed sets the number of numbers to the right of the decimal
+ m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m;
+ return m;
+ } else if (['JSON'].indexOf(udbtypeid) > -1) {
+ if (typeof val == 'object') return val;
+ try {
+ return JSON.parse(val);
+ } catch (err) {
+ throw new Error('Cannot convert string to JSON');
+ }
}
- if (cb) cb(res);
- return res;
+ return val;
};
-yy.ShowColumns = function(params) {
+/*
+//
+// CREATE TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global alasql, yy, hash */
+
+yy.ColumnDef = function(params) {
return yy.extend(this, params);
};
-yy.ShowColumns.prototype.toString = function() {
- var s = 'SHOW COLUMNS';
- if (this.table.tableid) s += ' FROM ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
+yy.ColumnDef.prototype.toString = function() {
+ var s = this.columnid;
+ if (this.dbtypeid) {
+ s += ' ' + this.dbtypeid;
+ }
-yy.ShowColumns.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
+ if (this.dbsize) {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) {
+ s += ',' + this.dbprecision;
+ }
+ s += ')';
+ }
- if (table && table.columns) {
- var res = table.columns.map(function(col) {
- return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize};
- });
- if (cb) cb(res);
- return res;
- } else {
- if (cb) cb([]);
- return [];
+ if (this.primarykey) {
+ s += ' PRIMARY KEY';
}
-};
-yy.ShowIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowIndex.prototype.toString = function() {
- var s = 'SHOW INDEX';
- if (this.table.tableid) s += ' FROM ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
-yy.ShowIndex.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
- var res = [];
- if (table && table.indices) {
- for (var ind in table.indices) {
- res.push({hh: ind, len: Object.keys(table.indices[ind]).length});
- }
+ if (this.notnull) {
+ s += ' NOT NULL';
}
- if (cb) cb(res);
- return res;
+ return s;
};
-yy.ShowCreateTable = function(params) {
+yy.CreateTable = function(params) {
return yy.extend(this, params);
};
-yy.ShowCreateTable.prototype.toString = function() {
- var s = 'SHOW CREATE TABLE ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
-yy.ShowCreateTable.prototype.execute = function(databaseid) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
- if (table) {
- var s = 'CREATE TABLE ' + this.table.tableid + ' (';
- var ss = [];
- if (table.columns) {
- table.columns.forEach(function(col) {
- var a = col.columnid + ' ' + col.dbtypeid;
- if (col.dbsize) a += '(' + col.dbsize + ')';
- if (col.primarykey) a += ' PRIMARY KEY';
- // TODO extend
- ss.push(a);
- });
- s += ss.join(', ');
- }
- s += ')';
- return s;
+yy.CreateTable.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.temporary) {
+ s += ' TEMPORARY';
+ }
+
+ if (this.view) {
+ s += ' VIEW';
} else {
- throw new Error('There is no such table "' + this.table.tableid + '"');
+ s += ' ' + (this.class ? 'CLASS' : 'TABLE');
+ }
+ if (this.ifnotexists) {
+ s += ' IF NOT EXISTS';
+ }
+ s += ' ' + this.table.toString();
+ if (this.viewcolumns) {
+ s +=
+ '(' +
+ this.viewcolumns
+ .map(function(vcol) {
+ return vcol.toString();
+ })
+ .join(',') +
+ ')';
+ }
+ if (this.as) {
+ s += ' AS ' + this.as;
+ } else {
+ var ss = this.columns.map(function(col) {
+ return col.toString();
+ });
+ s += ' (' + ss.join(',') + ')';
}
-};
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+ if (this.view && this.select) {
+ s += ' AS ' + this.select.toString();
+ }
-yy.SetVariable = function(params) {
- return yy.extend(this, params);
-};
-yy.SetVariable.prototype.toString = function() {
- var s = 'SET ';
- if (typeof this.value != 'undefined')
- s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF');
- if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString();
return s;
};
-yy.SetVariable.prototype.execute = function(databaseid, params, cb) {
-
- if (typeof this.value != 'undefined') {
- var val = this.value;
- if (val == 'ON') val = true;
- else if (val == 'OFF') val = false;
- // if(this.method == '@') {
- alasql.options[this.variable] = val;
- // } else {
- // params[this.variable] = val;
- // }
- } else if (this.expression) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
- return nq;
- // return ex.compile(databaseid);
- // TODO Include modifier
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
- return nq;
- // TODO Include modifier
- });
- }
-
- var res = new Function(
- 'params,alasql',
- 'return ' + this.expression.toJS('({})', '', null)
- ).bind(this)(params, alasql);
- if (alasql.declares[this.variable]) {
- res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]);
- }
- if (this.props && this.props.length > 0) {
- if (this.method == '@') {
- var fs = "alasql.vars['" + this.variable + "']";
- } else {
- var fs = "params['" + this.variable + "']";
- }
- fs += this.props
- .map(function(prop) {
- if (typeof prop == 'string') {
- return "['" + prop + "']";
- } else if (typeof prop == 'number') {
- return '[' + prop + ']';
- } else {
-
- return '[' + prop.toJS() + ']';
- // } else {
-
- // throw new Error('Wrong SET property');
- }
- })
- .join();
+// CREATE TABLE
+//yy.CreateTable.prototype.compile = returnUndefined;
+yy.CreateTable.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[this.table.databaseid || databaseid];
- new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql);
- } else {
- if (this.method == '@') {
- alasql.vars[this.variable] = res;
- } else {
- params[this.variable] = res;
- }
- }
+ var tableid = this.table.tableid;
+ if (!tableid) {
+ throw new Error('Table name is not defined');
}
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-// Console functions
-
-/* global alasql, yy */
+ // var ifnotexists = this.ifnotexists;
+ var columns = this.columns;
+ // if(false) {
+ // if(!columns) {
+ // throw new Error('Columns are not defined');
+ // }
+ // }
+ var constraints = this.constraints || [];
-alasql.test = function(name, times, fn) {
- if (arguments.length === 0) {
- alasql.log(alasql.con.results);
- return;
+ // IF NOT EXISTS
+ if (this.ifnotexists && db.tables[tableid]) {
+ return cb ? cb(0) : 0;
}
- var tm = Date.now();
-
- if (arguments.length === 1) {
- fn();
- alasql.con.log(Date.now() - tm);
- return;
+ if (db.tables[tableid]) {
+ throw new Error(
+ "Can not create table '" +
+ tableid +
+ "', because it already exists in the database '" +
+ db.databaseid +
+ "'"
+ );
}
- if (arguments.length === 2) {
- fn = times;
- times = 1;
+ var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object?
+ // If this is a class
+ if (this.class) {
+ table.isclass = true;
}
- for (var i = 0; i < times; i++) {
- fn();
- }
- alasql.con.results[name] = Date.now() - tm;
-};
+ var ss = []; // DEFAULT function components
+ var uss = []; // ON UPDATE function components
+ if (columns) {
+ columns.forEach(function(col) {
+ var dbtypeid = col.dbtypeid;
+ if (!alasql.fn[dbtypeid]) {
+ dbtypeid = dbtypeid.toUpperCase();
+ }
-// Console
-// alasql.log = function(sql, params) {
+ // Process SERIAL data type like Postgress
+ if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) {
+ col.identity = {value: 1, step: 1};
+ }
-// };
+ var newcol = {
+ columnid: col.columnid,
+ dbtypeid: dbtypeid,
+ dbsize: col.dbsize, // Fixed issue #150
+ dbprecision: col.dbprecision, // Fixed issue #150
+ notnull: col.notnull,
+ identity: col.identity,
+ };
+ if (col.identity) {
+ table.identities[col.columnid] = {
+ value: +col.identity.value,
+ step: +col.identity.step,
+ };
+ // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\''
+ // +tableid+'\'].identities[\''+col.columnid+'\'].value)');
+ }
+ if (col.check) {
+ table.checks.push({
+ id: col.check.constrantid,
+ fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')),
+ });
+ }
-/* global alasql, yy, utils */
+ if (col.default) {
+ ss.push("'" + col.columnid + "':" + col.default.toJS('r', ''));
+ }
-// Console
-alasql.log = function(sql, params) {
- var olduseid = alasql.useid;
- var target = alasql.options.logtarget;
- // For node other
- if (utils.isNode) {
- target = 'console';
- }
+ // Check for primary key
+ if (col.primarykey) {
+ var pk = (table.pk = {});
+ pk.columns = [col.columnid];
+ pk.onrightfns = "r['" + col.columnid + "']";
+ pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
+ pk.hh = hash(pk.onrightfns);
+ table.uniqs[pk.hh] = {};
+ }
- var res;
- if (typeof sql === 'string') {
- res = alasql(sql, params);
- } else {
- res = sql;
- }
+ // UNIQUE clause
+ if (col.unique) {
+ var uk = {};
+ table.uk = table.uk || [];
+ table.uk.push(uk);
+ uk.columns = [col.columnid];
+ uk.onrightfns = "r['" + col.columnid + "']";
+ uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
+ uk.hh = hash(uk.onrightfns);
+ table.uniqs[uk.hh] = {};
+ }
- // For Node and console.output
- if (target === 'console' || utils.isNode) {
- if (typeof sql === 'string' && alasql.options.logprompt) {
- console.log(olduseid + '>', sql);
- }
+ // UNIQUE clause
+ if (col.foreignkey) {
- if (Array.isArray(res)) {
- if (console.table) {
- // For Chrome and other consoles
- console.table(res);
- } else {
- // Add print procedure
- console.log(JSONtoString(res));
- }
- } else {
- console.log(JSONtoString(res));
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
- }
- }
+ var fk = col.foreignkey.table;
+ var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
+ if (typeof fk.columnid === 'undefined') {
+ if (fktable.pk.columns && fktable.pk.columns.length > 0) {
+ fk.columnid = fktable.pk.columns[0];
+ } else {
+ throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs');
+ }
+ }
- var s = '';
+ var fkfn = function(r) {
+ var rr = {};
+ if (typeof r[col.columnid] === 'undefined') {
+ return true;
+ }
+ rr[fk.columnid] = r[col.columnid];
+ var addr = fktable.pk.onrightfn(rr);
- if (typeof sql === 'string' && alasql.options.logprompt) {
- // s += ''+olduseid+'> '+alasql.pretty(sql)+'
';
- s += '' + alasql.pretty(sql) + ' ';
- }
+ if (!fktable.uniqs[fktable.pk.hh][addr]) {
+ throw new Error(
+ 'Foreign key "' +
+ r[col.columnid] +
+ '" is not found in table ' +
+ fktable.tableid
+ );
+ }
+ return true;
+ };
+ table.checks.push({fn: fkfn});
- if (Array.isArray(res)) {
- if (res.length === 0) {
- s += '[ ]
';
- } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) {
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- s += '' + loghtml(res[i]) + '
';
- }
- } else {
- s += loghtml(res);
}
- } else {
- s += loghtml(res);
- }
- el.innerHTML += s;
+
+ if (col.onupdate) {
+ uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', ''));
+ }
+
+ table.columns.push(newcol);
+ table.xcolumns[newcol.columnid] = newcol;
+ });
}
-};
+ table.defaultfns = ss.join(',');
+ table.onupdatefns = uss.join(';');
-alasql.clear = function() {
- var target = alasql.options.logtarget;
- // For node other
+ // if(constraints) {
+ constraints.forEach(function(con) {
- if (utils.isNode || utils.isMeteorServer) {
- if (console.clear) {
- console.clear();
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
+ var checkfn;
+
+ if (con.type === 'PRIMARY KEY') {
+ if (table.pk) {
+ throw new Error('Primary key already exists');
}
- }
- el.innerHTML = '';
- }
-};
+ var pk = (table.pk = {});
+ pk.columns = con.columns;
+ pk.onrightfns = pk.columns
+ .map(function(columnid) {
+ return "r['" + columnid + "']";
+ })
+ .join("+'`'+");
+ pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
+ pk.hh = hash(pk.onrightfns);
+ table.uniqs[pk.hh] = {};
+ } else if (con.type === 'CHECK') {
-alasql.write = function(s) {
+ checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', ''));
+ } else if (con.type === 'UNIQUE') {
- var target = alasql.options.logtarget;
- // For node other
- if (utils.isNode || utils.isMeteorServer) {
- if (console.log) {
- console.log(s);
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
+ var uk = {};
+ table.uk = table.uk || [];
+ table.uk.push(uk);
+ uk.columns = con.columns;
+ uk.onrightfns = uk.columns
+ .map(function(columnid) {
+ return "r['" + columnid + "']";
+ })
+ .join("+'`'+");
+ uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
+ uk.hh = hash(uk.onrightfns);
+ table.uniqs[uk.hh] = {};
+ } else if (con.type === 'FOREIGN KEY') {
+
+ var col = table.xcolumns[con.columns[0]];
+ var fk = con.fktable;
+ if (con.fkcolumns && con.fkcolumns.length > 0) {
+ fk.columnid = con.fkcolumns[0];
+ }
+ var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
+ if (typeof fk.columnid === 'undefined') {
+ fk.columnid = fktable.pk.columns[0];
}
- }
- el.innerHTML += s;
- }
-};
-function loghtml(res) {
+ checkfn = function(r) {
+ var rr = {};
+ if (typeof r[col.columnid] === 'undefined') {
+ return true;
+ }
+ rr[fk.columnid] = r[col.columnid];
+ var addr = fktable.pk.onrightfn(rr);
- var s = '';
- if (res === undefined) {
- s += 'undefined';
- } else if (Array.isArray(res)) {
- s += '';
- s += '';
- var cols = [];
- for (var colid in res[0]) {
- cols.push(colid);
- }
- s += '#';
- cols.forEach(function(colid) {
- s += ' ' + colid;
- });
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- s += ' ' + (i + 1);
- cols.forEach(function(colid) {
- s += ' ';
- if (res[i][colid] == +res[i][colid]) {
- // jshint ignore:line
- s += '';
- if (typeof res[i][colid] === 'undefined') {
- s += 'NULL';
- } else {
- s += res[i][colid];
- }
- s += '
';
- } else {
- if (typeof res[i][colid] === 'undefined') {
- s += 'NULL';
- } else if (typeof res[i][colid] === 'string') {
- s += res[i][colid];
- } else {
- s += JSONtoString(res[i][colid]);
- }
- // s += res[i][colid];
+ if (!fktable.uniqs[fktable.pk.hh][addr]) {
+
+ throw new Error(
+ 'Foreign key "' +
+ r[col.columnid] +
+ '" is not found in table ' +
+ fktable.tableid
+ );
}
- });
+ return true;
+ };
}
+ if (checkfn) {
+ table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'});
+ }
+ });
- s += '
';
- } else {
- s += '' + JSONtoString(res) + '
';
+ if (this.view && this.viewcolumns) {
+ var self = this;
+ this.viewcolumns.forEach(function(vcol, idx) {
+ self.select.columns[idx].as = vcol.columnid;
+ });
}
- // if() {}
- // if(typeof res == 'object') {
- // s += ''+JSON.stringify(res)+'
';
- // } else {
- // }
- return s;
-}
+ //Used in 420from queryfn when table.view = true!
+ if (this.view && this.select) {
+ table.view = true;
-function scrollTo(element, to, duration) {
- if (duration <= 0) {
- return;
+ table.select = this.select.compile(this.table.databaseid || databaseid);
}
- var difference = to - element.scrollTop;
- var perTick = difference / duration * 10;
-
- setTimeout(function() {
- if (element.scrollTop === to) {
- return;
- }
- element.scrollTop = element.scrollTop + perTick;
- scrollTo(element, to, duration - 10);
- }, 10);
-}
-alasql.prompt = function(el, useidel, firstsql) {
- if (utils.isNode) {
- throw new Error('The prompt not realized for Node.js');
- }
+ if (db.engineid) {
- var prompti = 0;
+ return alasql.engines[db.engineid].createTable(
+ this.table.databaseid || databaseid,
+ tableid,
+ this.ifnotexists,
+ cb
+ );
- if (typeof el === 'string') {
- el = document.getElementById(el);
+ // return res1;
}
- if (typeof useidel === 'string') {
- useidel = document.getElementById(useidel);
- }
+ // }
+ // if(table.pk) {
- useidel.textContent = alasql.useid;
+ table.insert = function(r, orreplace) {
+ var oldinserted = alasql.inserted;
+ alasql.inserted = [r];
- if (firstsql) {
- alasql.prompthistory.push(firstsql);
- prompti = alasql.prompthistory.length;
- try {
- var tm = Date.now();
- alasql.log(firstsql);
- alasql.write('' + (Date.now() - tm) + ' ms
');
- } catch (err) {
- alasql.write('' + olduseid + '> ' + sql + '
');
- alasql.write('' + err + '
');
- }
- }
+ var table = this;
- var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
- scrollTo(document.getElementsByTagName('body')[0], y, 500);
+ var toreplace = false; // For INSERT OR REPLACE
- el.onkeydown = function(event) {
- if (event.which === 13) {
- var sql = el.value;
- var olduseid = alasql.useid;
- el.value = '';
- alasql.prompthistory.push(sql);
- prompti = alasql.prompthistory.length;
- try {
- var tm = Date.now();
- alasql.log(sql);
- alasql.write('
' + (Date.now() - tm) + ' ms
');
- } catch (err) {
- alasql.write('' + olduseid + '> ' + alasql.pretty(sql, false) + '
');
- alasql.write('' + err + '
');
+ /*
+ // IDENTINY or AUTO_INCREMENT
+ // if(table.identities && table.identities.length>0) {
+ // table.identities.forEach(function(ident){
+ // r[ident.columnid] = ident.value;
+ // });
+ // }
+*/
+ // Trigger prevent functionality
+ var prevent = false;
+ for (var tr in table.beforeinsert) {
+ var trigger = table.beforeinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
+ }
}
- el.focus();
+ }
+ if (prevent) return;
- useidel.textContent = alasql.useid;
- var y =
- el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
- scrollTo(document.getElementsByTagName('body')[0], y, 500);
- } else if (event.which === 38) {
- prompti--;
- if (prompti < 0) {
- prompti = 0;
+ // Trigger prevent functionality
+ var escape = false;
+ for (tr in table.insteadofinsert) {
+ escape = true;
+ trigger = table.insteadofinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
}
- if (alasql.prompthistory[prompti]) {
- el.value = alasql.prompthistory[prompti];
- event.preventDefault();
+ }
+ if (escape) return;
+
+ for (var columnid in table.identities) {
+ var ident = table.identities[columnid];
+
+ r[columnid] = ident.value;
+
+ }
+
+ if (table.checks && table.checks.length > 0) {
+ table.checks.forEach(function(check) {
+ if (!check.fn(r)) {
+ // if(orreplace) toreplace=true; else
+ throw new Error('Violation of CHECK constraint ' + (check.id || ''));
+ }
+ });
+ }
+
+ table.columns.forEach(function(column) {
+ if (column.notnull && typeof r[column.columnid] === 'undefined') {
+ throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
}
- } else if (event.which === 40) {
- prompti++;
- if (prompti >= alasql.prompthistory.length) {
- prompti = alasql.prompthistory.length;
- el.value = '';
- } else if (alasql.prompthistory[prompti]) {
- el.value = alasql.prompthistory[prompti];
- event.preventDefault();
+ });
+ if (table.pk) {
+ var pk = table.pk;
+ var addr = pk.onrightfn(r);
+
+ if (typeof table.uniqs[pk.hh][addr] !== 'undefined') {
+
+ if (orreplace) toreplace = table.uniqs[pk.hh][addr];
+ else
+ throw new Error(
+ 'Cannot insert record, because it already exists in primary key index'
+ );
}
+ // table.uniqs[pk.hh][addr]=r;
}
- };
-};
-/*
-//
-// Commit for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-yy.BeginTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.BeginTransaction.prototype.toString = function() {
- return 'BEGIN TRANSACTION';
-};
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') {
+ if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr];
+ else
+ throw new Error(
+ 'Cannot insert record, because it already exists in unique index'
+ );
+ }
+ // table.uniqs[uk.hh][ukaddr]=r;
+ });
+ }
-yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
+ if (toreplace) {
+ // Do UPDATE!!!
-yy.CommitTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.CommitTransaction.prototype.toString = function() {
- return 'COMMIT TRANSACTION';
-};
+ table.update(
+ function(t) {
+ for (var f in r) t[f] = r[f];
+ },
+ table.data.indexOf(toreplace),
+ params
+ );
+ } else {
+ table.data.push(r);
-yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
+ // Final change before insert
-yy.RollbackTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.RollbackTransaction.prototype.toString = function() {
- return 'ROLLBACK TRANSACTION';
-};
+ // Update indices
-yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
+ for (var columnid in table.identities) {
+ var ident = table.identities[columnid];
-if (alasql.options.tsql) {
- //
- // Check tables and views
- // IF OBJECT_ID('dbo.Employees') IS NOT NULL
- // DROP TABLE dbo.Employees;
- // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL
- // DROP VIEW dbo.VSortedOrders;
-
- alasql.stdfn.OBJECT_ID = function(name, type) {
- if (typeof type == 'undefined') type = 'T';
- type = type.toUpperCase();
-
- var sname = name.split('.');
- var dbid = alasql.useid;
- var objname = sname[0];
- if (sname.length == 2) {
- dbid = sname[0];
- objname = sname[1];
- }
+ ident.value += ident.step;
- var tables = alasql.databases[dbid].tables;
- dbid = alasql.databases[dbid].databaseid;
- for (var tableid in tables) {
- if (tableid == objname) {
- // TODO: What OBJECT_ID actually returns
+ }
- if (tables[tableid].view && type == 'V') return dbid + '.' + tableid;
- if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid;
- return undefined;
+ if (table.pk) {
+ var pk = table.pk;
+ var addr = pk.onrightfn(r);
+ table.uniqs[pk.hh][addr] = r;
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ table.uniqs[uk.hh][ukaddr] = r;
+ });
}
}
- return undefined;
+ // Trigger prevent functionality
+ for (var tr in table.afterinsert) {
+ var trigger = table.afterinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ alasql.inserted = oldinserted;
};
-}
-if (alasql.options.mysql) {
-}
+ table.delete = function(index) {
+ var table = this;
+ var r = table.data[index];
-if (alasql.options.mysql || alasql.options.sqlite) {
- // Pseudo INFORMATION_SCHEMA function
- alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) {
- if (filename == 'VIEWS' || filename == 'TABLES') {
- var res = [];
- for (var databaseid in alasql.databases) {
- var tables = alasql.databases[databaseid].tables;
- for (var tableid in tables) {
- if (
- (tables[tableid].view && filename == 'VIEWS') ||
- (!tables[tableid].view && filename == 'TABLES')
- ) {
- res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid});
- }
+ // Prevent trigger
+ var prevent = false;
+ for (var tr in table.beforedelete) {
+ var trigger = table.beforedelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
}
}
- if (cb) res = cb(res, idx, query);
- return res;
}
- throw new Error('Unknown INFORMATION_SCHEMA table');
- };
-}
-
-if (alasql.options.postgres) {
-}
+ if (prevent) return false;
-if (alasql.options.oracle) {
-}
+ // Trigger prevent functionality
+ var escape = false;
+ for (var tr in table.insteadofdelete) {
+ escape = true;
+ var trigger = table.insteadofdelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ if (escape) return;
-if (alasql.options.sqlite) {
-}
+ if (this.pk) {
+ var pk = this.pk;
+ var addr = pk.onrightfn(r);
+ if (typeof this.uniqs[pk.hh][addr] === 'undefined') {
+ throw new Error('Something wrong with primary key index on table');
+ } else {
+ this.uniqs[pk.hh][addr] = undefined;
+ }
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') {
+ throw new Error('Something wrong with unique index on table');
+ }
+ table.uniqs[uk.hh][ukaddr] = undefined;
+ });
+ }
+ };
-//
-// into functions
-//
-// (c) 2014 Andrey Gershun
-//
+ table.deleteall = function() {
+ this.data.length = 0;
+ if (this.pk) {
+ // var r = this.data[i];
+ this.uniqs[this.pk.hh] = {};
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ table.uniqs[uk.hh] = {};
+ });
+ }
+ };
-alasql.into.SQL = function(filename, opts, data, columns, cb) {
- var res;
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
- var opt = {};
- alasql.utils.extend(opt, opts);
- if (typeof opt.tableid === 'undefined') {
- throw new Error('Table for INSERT TO is not defined.');
- }
+ table.update = function(assignfn, i, params) {
+ // TODO: Analyze the speed
+ var r = cloneDeep(this.data[i]);
- var s = '';
- if (columns.length === 0) {
- if (typeof data[0] === 'object') {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
+ var pk;
+ // PART 1 - PRECHECK
+ if (this.pk) {
+ pk = this.pk;
+ pk.pkaddr = pk.onrightfn(r, params);
+ if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') {
+ throw new Error('Something wrong with index on table');
+ }
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ uk.ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') {
+ throw new Error('Something wrong with unique index on table');
+ }
});
- } else {
- // What should I do?
- // columns = [{columnid:"_"}];
}
- }
- for (var i = 0, ilen = data.length; i < ilen; i++) {
- s += 'INSERT INTO ' + opts.tableid + '(';
- s += columns
- .map(function(col) {
- return col.columnid;
- })
- .join(',');
- s += ') VALUES (';
- s += columns.map(function(col) {
- var val = data[i][col.columnid];
- if (col.typeid) {
- if (
- col.typeid === 'STRING' ||
- col.typeid === 'VARCHAR' ||
- col.typeid === 'NVARCHAR' ||
- col.typeid === 'CHAR' ||
- col.typeid === 'NCHAR'
- ) {
- val = "'" + escapeqq(val) + "'";
+ assignfn(r, params, alasql);
+
+ // Prevent trigger
+ var prevent = false;
+ for (var tr in table.beforeupdate) {
+ var trigger = table.beforeupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](this.data[i], r) === false)
+ prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
}
- } else {
- if (typeof val == 'string') {
- val = "'" + escapeqq(val) + "'";
+ }
+ }
+ if (prevent) return false;
+
+ // Trigger prevent functionality
+ var escape = false;
+ for (var tr in table.insteadofupdate) {
+ escape = true;
+ var trigger = table.insteadofupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](this.data[i], r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
}
}
- return val;
- });
- s += ');\n';
- }
- // if(filename === '') {
- // res = s;
- // } else {
- // res = data.length;
- filename = alasql.utils.autoExtFilename(filename, 'sql', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
- return res;
-};
+ }
+ if (escape) return;
-alasql.into.HTML = function(selector, opts, data, columns, cb) {
- var res = 1;
- if (typeof exports !== 'object') {
- var opt = {headers: true};
- alasql.utils.extend(opt, opts);
+ // PART 2 - POST CHECK
+ if (table.checks && table.checks.length > 0) {
+ table.checks.forEach(function(check) {
+ if (!check.fn(r)) {
+ throw new Error('Violation of CHECK constraint ' + (check.id || ''));
+ }
+ });
+ }
- var sel = document.querySelector(selector);
- if (!sel) {
- throw new Error('Selected HTML element is not found');
+ table.columns.forEach(function(column) {
+ if (column.notnull && typeof r[column.columnid] === 'undefined') {
+ throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
+ }
+ });
+ if (this.pk) {
+ pk.newpkaddr = pk.onrightfn(r);
+ if (
+ typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' &&
+ pk.newpkaddr !== pk.pkaddr
+ ) {
+ throw new Error('Record already exists');
+ }
}
- if (columns.length === 0) {
- if (typeof data[0] === 'object') {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- } else {
- // What should I do?
- // columns = [{columnid:"_"}];
- }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ uk.newukaddr = uk.onrightfn(r);
+ if (
+ typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' &&
+ uk.newukaddr !== uk.ukaddr
+ ) {
+ throw new Error('Record already exists');
+ }
+ });
}
- var tbe = document.createElement('table');
- var thead = document.createElement('thead');
- tbe.appendChild(thead);
- if (opt.headers) {
- var tre = document.createElement('tr');
- for (var i = 0; i < columns.length; i++) {
- var the = document.createElement('th');
- the.textContent = columns[i].columnid;
- tre.appendChild(the);
- }
- thead.appendChild(tre);
+ // PART 3 UPDATE
+ if (this.pk) {
+ this.uniqs[pk.hh][pk.pkaddr] = undefined;
+ this.uniqs[pk.hh][pk.newpkaddr] = r;
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ table.uniqs[uk.hh][uk.ukaddr] = undefined;
+ table.uniqs[uk.hh][uk.newukaddr] = r;
+ });
}
- var tbody = document.createElement('tbody');
- tbe.appendChild(tbody);
- for (var j = 0; j < data.length; j++) {
- var tre = document.createElement('tr');
- for (var i = 0; i < columns.length; i++) {
- var the = document.createElement('td');
- the.textContent = data[j][columns[i].columnid];
- tre.appendChild(the);
+ this.data[i] = r;
+
+ // Trigger prevent functionality
+ for (var tr in table.afterupdate) {
+ var trigger = table.afterupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](this.data[i], r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
}
- tbody.appendChild(tre);
}
- alasql.utils.domEmptyChildren(sel);
+ };
- sel.appendChild(tbe);
- }
- if (cb) {
- res = cb(res);
- }
- return res;
-};
+ var res;
-alasql.into.JSON = function(filename, opts, data, columns, cb) {
- var res = 1;
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
+ if (!alasql.options.nocount) {
+ res = 1;
}
- var s = JSON.stringify(data);
- filename = alasql.utils.autoExtFilename(filename, 'json', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
+ if (cb) res = cb(res);
return res;
};
-alasql.into.TXT = function(filename, opts, data, columns, cb) {
- // If columns is empty
- if (columns.length === 0 && data.length > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- // If one parameter
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
-
- var res = data.length;
- var s = '';
- if (data.length > 0) {
- var key = columns[0].columnid;
- s += data
- .map(function(d) {
- return d[key];
- })
- .join('\n');
- }
+//
+// Date functions
+//
+// (c) 2014, Andrey Gershun
+//
+
+/** Standard JavaScript data types */
+
+alasql.fn.Date = Object;
+alasql.fn.Date = Date;
+alasql.fn.Number = Number;
+alasql.fn.String = String;
+alasql.fn.Boolean = Boolean;
+
+/** Extend Object with properties */
+stdfn.EXTEND = alasql.utils.extend;
+
+stdfn.CHAR = String.fromCharCode.bind(String);
+stdfn.ASCII = function(a) {
+ return a.charCodeAt(0);
+};
+
+/**
+ Return first non-null argument
+ See https://msdn.microsoft.com/en-us/library/ms190349.aspx
+*/
+stdfn.COALESCE = function() {
+ for (var i = 0; i < arguments.length; i++) {
+ if (typeof arguments[i] == 'undefined') continue;
+ if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue;
+ return arguments[i];
+ }
+ return undefined;
+};
+
+stdfn.USER = function() {
+ return 'alasql';
+};
+
+stdfn.OBJECT_ID = function(objid) {
+ return !!alasql.tables[objid];
+};
+
+stdfn.DATE = function(d) {
+ if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));
+ return new Date(d);
+};
+
+stdfn.NOW = function() {
+ var d = new Date();
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ s +=
+ ' ' +
+ ('0' + d.getHours()).substr(-2) +
+ ':' +
+ ('0' + d.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + d.getSeconds()).substr(-2);
+ s += '.' + ('00' + d.getMilliseconds()).substr(-3);
+ return s;
+};
+
+stdfn.GETDATE = stdfn.NOW;
+stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
+
+stdfn.SECOND = function(d) {
+ var d = new Date(d);
+ return d.getSeconds();
+};
+
+stdfn.MINUTE = function(d) {
+ var d = new Date(d);
+ return d.getMinutes();
+};
+
+stdfn.HOUR = function(d) {
+ var d = new Date(d);
+ return d.getHours();
+};
+
+stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) {
+ var d = new Date(d);
+ return d.getDay();
+};
+
+stdfn.DAY = stdfn.DAYOFMONTH = function(d) {
+ var d = new Date(d);
+ return d.getDate();
+};
+
+stdfn.MONTH = function(d) {
+ var d = new Date(d);
+ return d.getMonth() + 1;
+};
+
+stdfn.YEAR = function(d) {
+ var d = new Date(d);
+ return d.getFullYear();
+};
+
+var PERIODS = {
+ year: 1000 * 3600 * 24 * 365,
+ quarter: (1000 * 3600 * 24 * 365) / 4,
+ month: 1000 * 3600 * 24 * 30,
+ week: 1000 * 3600 * 24 * 7,
+ day: 1000 * 3600 * 24,
+ dayofyear: 1000 * 3600 * 24,
+ weekday: 1000 * 3600 * 24,
+ hour: 1000 * 3600,
+ minute: 1000 * 60,
+ second: 1000,
+ millisecond: 1,
+ microsecond: 0.001,
+};
+
+alasql.stdfn.DATEDIFF = function(period, d1, d2) {
+ var interval = new Date(d2).getTime() - new Date(d1).getTime();
+ return interval / PERIODS[period.toLowerCase()];
+};
+
+alasql.stdfn.DATEADD = function(period, interval, d) {
+ var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()];
+ return new Date(nd);
+};
+
+alasql.stdfn.INTERVAL = function(interval, period) {
+ return interval * PERIODS[period.toLowerCase()];
+};
+
+alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) {
+ var nd = new Date(d).getTime() + interval;
+ return new Date(nd);
+};
+
+alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) {
+ var nd = new Date(d).getTime() - interval;
+ return new Date(nd);
+};
- // } else {
- // if(utils.isNode) {
- // process.stdout.write(s);
- // } else {
+/*
+//
+// DROP TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- // };
- // }
- filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
- return res;
+yy.DropTable = function(params) {
+ return yy.extend(this, params);
};
-
-alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) {
- var opt = {};
- alasql.utils.extend(opt, opts);
- opt.separator = '\t';
- filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
- opt.autoExt = false;
- return alasql.into.CSV(filename, opt, data, columns, cb);
+yy.DropTable.prototype.toString = function() {
+ var s = 'DROP' + ' ';
+ if (this.view) s += 'VIEW';
+ else s += 'TABLE';
+ if (this.ifexists) s += ' IF EXISTS';
+ s += ' ' + this.tables.toString();
+ return s;
};
-alasql.into.CSV = function(filename, opts, data, columns, cb) {
- if (columns.length === 0 && data.length > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
-
- var opt = {headers: true};
- //opt.separator = ',';
- opt.separator = ';';
- opt.quote = '"';
-
- opt.utf8Bom = true;
- if (opts && !opts.headers && typeof opts.headers !== 'undefined') {
- opt.utf8Bom = false;
- }
-
- alasql.utils.extend(opt, opts);
- var res = data.length;
- var s = opt.utf8Bom ? '\ufeff' : '';
- if (opt.headers) {
- s +=
- opt.quote +
- columns
- .map(function(col) {
- return col.columnid.trim();
- })
- .join(opt.quote + opt.separator + opt.quote) +
- opt.quote +
- '\r\n';
- }
+// DROP TABLE
+/**
+ Drop tables
+ @param {string} databaseid Database id
+ @param {object} params Parameters
+ @param {callback} cb Callback function
+ @return Number of dropped tables
+ @example
+ DROP TABLE one;
+ DROP TABLE IF NOT EXISTS two, three;
+*/
+yy.DropTable.prototype.execute = function(databaseid, params, cb) {
+ var ifexists = this.ifexists;
+ var res = 0; // No tables removed
+ var count = 0;
+ var tlen = this.tables.length;
- data.forEach(function(d) {
- s +=
- columns
- .map(function(col) {
- var s = d[col.columnid];
- // escape the character wherever it appears in the field
- if (opt.quote !== '') {
- s = (s + '').replace(
- new RegExp('\\' + opt.quote, 'g'),
- opt.quote + opt.quote
- );
- }
- // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote;
+ // For each table in the list
+ this.tables.forEach(function(table) {
+ var db = alasql.databases[table.databaseid || databaseid];
+ var tableid = table.tableid;
- //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV
- if (+s != s) {
- // jshint ignore:line
- s = opt.quote + s + opt.quote;
- }
+ /** @todo Test with AUTOCOMMIT flag is ON */
+ /** @todo Test with IndexedDB and multiple tables */
- return s;
- })
- .join(opt.separator) + '\r\n';
+ if (!ifexists || (ifexists && db.tables[tableid])) {
+ if (!db.tables[tableid]) {
+ if (!alasql.options.dropifnotexists) {
+ throw new Error(
+ "Can not drop table '" +
+ table.tableid +
+ "', because it does not exist in the database."
+ );
+ }
+ } else {
+ if (db.engineid /*&& alasql.options.autocommit*/) {
+ alasql.engines[db.engineid].dropTable(
+ table.databaseid || databaseid,
+ tableid,
+ ifexists,
+ function(res1) {
+ delete db.tables[tableid];
+ res += res1;
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
+ );
+ } else {
+ delete db.tables[tableid];
+ res++;
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
+ }
+ } else {
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
});
-
- filename = alasql.utils.autoExtFilename(filename, 'csv', opts);
- res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true});
- if (cb) {
- res = cb(res);
- }
+ // if(cb) res = cb(res);
return res;
};
-//
-// 831xl.js - Coloring Excel
-// 18.04.2015
-// Generate XLS file with colors and styles
-// with Excel
-
-alasql.into.XLS = function(filename, opts, data, columns, cb) {
- // If filename is not defined then output to the result
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
- }
+yy.TruncateTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.TruncateTable.prototype.toString = function() {
+ var s = 'TRUNCATE TABLE';
+ s += ' ' + this.table.toString();
+ return s;
+};
- // Set sheets
- var sheets = {};
- if (opts && opts.sheets) {
- sheets = opts.sheets;
+yy.TruncateTable.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ var tableid = this.table.tableid;
+ if (db.engineid) {
+ return alasql.engines[db.engineid].truncateTable(
+ this.table.databaseid || databaseid,
+ tableid,
+ this.ifexists,
+ cb
+ );
}
-
- // Default sheet
- var sheet = {headers: true};
- if (typeof sheets['Sheet1'] != 'undefined') {
- sheet = sheets[0];
+ if (db.tables[tableid]) {
+ db.tables[tableid].data = [];
} else {
- if (typeof opts != 'undefined') {
- sheet = opts;
- }
+ throw new Error('Cannot truncate table becaues it does not exist');
}
+ return cb ? cb(0) : 0;
+};
- // Set sheet name and default is 'Sheet1'
- if (typeof sheet.sheetid == 'undefined') {
- sheet.sheetid = 'Sheet1';
- }
+/*
+//
+// CREATE VERTEX for AlaSQL
+// Date: 21.04.2015
+// (c) 2015, Andrey Gershun
+//
+*/
- var s = toHTML();
+yy.CreateVertex = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateVertex.prototype.toString = function() {
+ var s = 'CREATE VERTEX ';
+ if (this.class) {
+ s += this.class + ' ';
+ }
+ if (this.sharp) {
+ s += '#' + this.sharp + ' ';
+ }
+ if (this.sets) {
+ s += this.sets.toString();
+ } else if (this.content) {
+ s += this.content.toString();
+ } else if (this.select) {
+ s += this.select.toString();
+ }
- // File is ready to save
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- var res = alasql.utils.saveFile(filename, s);
- if (cb) res = cb(res);
- return res;
+ return s;
+};
- function toHTML() {
- // Generate prologue
- var s =
- '
\
- \
- ';
-
- // Generate body
- s += '';
- s += '';
- if (typeof sheet.caption != 'undefined') {
- var caption = sheet.caption;
- if (typeof caption == 'string') {
- caption = {title: caption};
- }
- s += '';
- s += caption.title;
- s += ' ';
- }
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+ // var s = '';
+ return s;
+};
- // Columns
+// CREATE TABLE
- // var columns = [];
+yy.CreateVertex.prototype.compile = function(databaseid) {
+ var dbid = databaseid;
- // If columns defined in sheet, then take them
- if (typeof sheet.columns != 'undefined') {
- columns = sheet.columns;
- } else {
- // Autogenerate columns if they are passed as parameters
- if (columns.length == 0 && data.length > 0) {
- if (typeof data[0] == 'object') {
- if (Array.isArray(data[0])) {
- columns = data[0].map(function(d, columnidx) {
- return {columnid: columnidx};
- });
- } else {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- }
- }
- }
+ // CREATE VERTEX #id
+ var sharp = this.sharp;
- // Prepare columns
- columns.forEach(function(column, columnidx) {
- if (typeof sheet.column != 'undefined') {
- extend(column, sheet.column);
- }
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
+ }
- if (typeof column.width == 'undefined') {
- if (sheet.column && sheet.column.width != 'undefined') {
- column.width = sheet.column.width;
- } else {
- column.width = '120px';
- }
- }
- if (typeof column.width == 'number') column.width = column.width + 'px';
- if (typeof column.columnid == 'undefined') column.columnid = columnidx;
- if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
- if (sheet.headers && Array.isArray(sheet.headers))
- column.title = sheet.headers[columnidx];
- });
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', s);
+ }
- // Set columns widths
- s += '';
- columns.forEach(function(column) {
- s += ' ';
- });
- s += ' ';
-
- // Headers
- if (sheet.headers) {
- s += '';
- s += '';
-
- // TODO: Skip columns to body
-
- // Headers
- columns.forEach(function(column, columnidx) {
- s += '';
+ // Todo: check for content, select and default
- // Column title
- if (typeof column.title != 'undefined') {
- if (typeof column.title == 'function') {
- s += column.title(sheet, column, columnidx);
- } else {
- s += column.title;
- }
- }
- s += ' ';
- });
+ var statement = function(params, cb) {
+ var res;
- s += ' ';
- s += ' ';
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var id;
+ if (typeof sharp !== 'undefined') {
+ id = sharp;
+ } else {
+ id = db.counter++;
+ }
+ var vertex = {$id: id, $node: 'VERTEX'};
+ db.objects[vertex.$id] = vertex;
+ res = vertex;
+ if (namefn) {
+ namefn(vertex);
+ }
+ if (setfn) {
+ setfn(vertex, params, alasql);
}
- s += '';
-
- // TODO: Skip lines between header and body
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+ };
+ return statement;
+};
- if (data && data.length > 0) {
- // TODO: Skip columns to body
+yy.CreateEdge = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateEdge.prototype.toString = function() {
- // Loop over data rows
- data.forEach(function(row, rowidx) {
- // Limit number of rows on the sheet
- if (rowidx > sheet.limit) return;
- // Create row
- s += '';
- // Loop over columns
- columns.forEach(function(column, columnidx) {
- // Parameters
- var cell = {};
- extend(cell, sheet.cell);
- extend(cell, srow.cell);
- if (typeof sheet.column != 'undefined') {
- extend(cell, sheet.column.cell);
- }
- extend(cell, column.cell);
- if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
- extend(cell, sheet.cells[rowidx][columnidx]);
- }
+yy.CreateEdge.prototype.toJS = function(context) {
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+ return s;
+};
- // Create value
- var value = row[column.columnid];
- if (typeof cell.value == 'function') {
- value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
- }
+// CREATE TABLE
- // Define cell type
- var typeid = cell.typeid;
- if (typeof typeid == 'function') {
- typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
- }
+yy.CreateEdge.prototype.compile = function(databaseid) {
+ var dbid = databaseid;
+ var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
+ var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
- if (typeof typeid == 'undefined') {
- if (typeof value == 'number') typeid = 'number';
- else if (typeof value == 'string') typeid = 'string';
- else if (typeof value == 'boolean') typeid = 'boolean';
- else if (typeof value == 'object') {
- if (value instanceof Date) typeid = 'date';
- }
- }
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
+ }
- var typestyle = '';
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', 'var y;' + s);
+ }
- if (typeid == 'money') {
- typestyle =
- 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
- } else if (typeid == 'number') {
- typestyle = ' ';
- } else if (typeid == 'date') {
- typestyle = 'mso-number-format:"Short Date";';
- } else {
- // FOr other types is saved
- if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
- typestyle = opts.types[typeid].typestyle;
- }
- }
+ /*
+ todo: handle content, select and default
+ else if(this.content) {
- // TODO Replace with extend...
- typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
+ } else if(this.select) {
- s += "';
-
- // TODO Replace with extend...
- var format = cell.format;
- if (typeof value == 'undefined') {
- s += '';
- } else if (typeof format != 'undefined') {
- if (typeof format == 'function') {
- s += format(value);
- } else if (typeof format == 'string') {
- s += value; // TODO - add string format
- } else {
- throw new Error('Unknown format type. Should be function or string');
- }
- } else {
- if (typeid == 'number' || typeid == 'date') {
- s += value.toString();
- } else if (typeid == 'money') {
- s += (+value).toFixed(2);
- } else {
- s += value;
- }
- }
- s += ' ';
- });
+ } else {
+ }
+ */
- s += ' ';
- });
+ var statement = function(params, cb) {
+ var res = 0;
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var edge = {$id: db.counter++, $node: 'EDGE'};
+ var v1 = fromfn(params, alasql);
+ var v2 = tofn(params, alasql);
+ // Set link
+ edge.$in = [v1.$id];
+ edge.$out = [v2.$id];
+ // Set sides
+ if (v1.$out === undefined) {
+ v1.$out = [];
}
+ v1.$out.push(edge.$id);
- s += ' ';
+ if (typeof v2.$in === undefined) {
+ v2.$in = [];
+ }
+ v2.$in.push(edge.$id);
- // Generate epilogue
- s += '
';
- s += '';
- s += '';
+ // Save in objects
+ db.objects[edge.$id] = edge;
+ res = edge;
+ if (namefn) {
+ namefn(edge);
+ }
- return s;
- }
+ if (setfn) {
+ setfn(edge, params, alasql);
+ }
- // Style function
- function style(a) {
- var s = ' style="';
- if (a && typeof a.style != 'undefined') {
- s += a.style + ';';
+ if (cb) {
+ res = cb(res);
}
- s += '" ';
- return s;
- }
-};
-alasql.into.XLSXML = function(filename, opts, data, columns, cb) {
- opts = opts || {};
+ return res;
+ };
+ return statement;
+};
- // If filename is not defined then output to the result
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
+yy.CreateGraph = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateGraph.prototype.toString = function() {
+ var s = 'CREATE GRAPH' + ' ';
+ if (this.class) {
+ s += this.class + ' ';
}
+ return s;
+};
- // Set sheets
- var sheets = {};
- var sheetsdata;
- var sheetscolumns;
- if (opts && opts.sheets) {
- sheets = opts.sheets;
- // data and columns are already an array for the sheets
- sheetsdata = data;
- sheetscolumns = columns;
- } else {
- sheets.Sheet1 = opts;
- // wrapd ata and columns array for single sheet
- sheetsdata = [data];
- sheetscolumns = [columns];
+yy.CreateGraph.prototype.execute = function(databaseid, params, cb) {
+ var res = [];
+ if (this.from) {
+ if (alasql.from[this.from.funcid]) {
+ this.graph = alasql.from[this.from.funcid.toUpperCase()];
+ }
}
- // File is ready to save
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- var res = alasql.utils.saveFile(filename, toXML());
- if (cb) res = cb(res);
- return res;
-
- function toXML() {
- var s1 =
- ' \
- \
- \
- \
- \
- \
- \
- \
- 0 \
- \
- \
- ';
-
- var s2 = ''; // for styles
-
- var s3 = ' ';
-
- var styles = {}; // hash based storage for styles
- var stylesn = 62; // First style
-
- // Generate style
- function hstyle(st) {
- // Prepare string
- var s = '';
- for (var key in st) {
- s += '<' + key;
- for (var attr in st[key]) {
- s += ' ';
- if (attr.substr(0, 2) == 'x:') {
- s += attr;
- } else {
- s += 'ss:';
- }
- s += attr + '="' + st[key][attr] + '"';
- }
- s += '/>';
+ // stop;
+ this.graph.forEach(function(g) {
+ if (g.source) {
+ // GREATE EDGE
+ var e = {};
+ if (typeof g.as !== 'undefined') {
+ alasql.vars[g.as] = e;
}
- var hh = hash(s);
- // Store in hash
- if (styles[hh]) {
- } else {
- styles[hh] = {styleid: stylesn};
- s2 += '';
- stylesn++;
+ if (typeof g.prop !== 'undefined') {
+ // e[g.prop] = e;
+ // v.$id = g.prop; // We do not create $id for edge automatically
+ e.name = g.prop;
+ }
+ if (typeof g.sharp !== 'undefined') {
+ e.$id = g.sharp;
+ }
+ if (typeof g.name !== 'undefined') {
+ e.name = g.name;
+ }
+ if (typeof g.class !== 'undefined') {
+ e.$class = g.class;
}
- return 's' + styles[hh].styleid;
- }
- function values(obj) {
- try {
- return Object.values(obj);
- } catch (e) {
- // support for older runtimes
- return Object.keys(obj).map(function(e) {
- return obj[e];
- });
+ var db = alasql.databases[databaseid];
+ if (typeof e.$id === 'undefined') {
+ e.$id = db.counter++;
+ }
+ e.$node = 'EDGE';
+ if (typeof g.json !== 'undefined') {
+ extend(
+ e,
+ new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
+ );
}
- }
- var sheetidx = 0;
- for (var sheetid in sheets) {
- var sheet = sheets[sheetid];
- var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++;
- var data = values(sheetsdata[idx]);
- // If columns defined in sheet, then take them
- var columns = undefined;
- if (typeof sheet.columns != 'undefined') {
- columns = sheet.columns;
+ var v1;
+ if (g.source.vars) {
+ var vo = alasql.vars[g.source.vars];
+ if (typeof vo === 'object') {
+ v1 = vo;
+ } else {
+ v1 = db.objects[vo];
+ }
} else {
- // Autogenerate columns if they are passed as parameters
- columns = sheetscolumns[idx];
- if (columns === undefined || (columns.length == 0 && data.length > 0)) {
- if (typeof data[0] == 'object') {
- if (Array.isArray(data[0])) {
- columns = data[0].map(function(d, columnidx) {
- return {columnid: columnidx};
- });
- } else {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
+ var av1 = g.source.sharp;
+ if (typeof av1 === 'undefined') {
+ av1 = g.source.prop;
+ }
+ v1 = alasql.databases[databaseid].objects[av1];
+ if (
+ typeof v1 === 'undefined' &&
+ alasql.options.autovertex &&
+ (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined')
+ ) {
+ v1 = findVertex(g.source.prop || g.source.name);
+ if (typeof v1 === 'undefined') {
+ v1 = createVertex(g.source);
}
}
}
- // Prepare columns
- columns.forEach(function(column, columnidx) {
- if (typeof sheet.column != 'undefined') {
- extend(column, sheet.column);
- }
-
- if (typeof column.width == 'undefined') {
- if (sheet.column && typeof sheet.column.width != 'undefined') {
- column.width = sheet.column.width;
- } else {
- column.width = 120;
- }
+ var v2;
+ if (g.source.vars) {
+ var vo = alasql.vars[g.target.vars];
+ if (typeof vo === 'object') {
+ v2 = vo;
+ } else {
+ v2 = db.objects[vo];
}
- if (typeof column.width == 'number') column.width = column.width;
- if (typeof column.columnid == 'undefined') column.columnid = columnidx;
- if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
- if (sheet.headers && Array.isArray(sheet.headers))
- column.title = sheet.headers[columnidx];
- });
-
- // Header
- s3 +=
- ' \
- ';
-
- columns.forEach(function(column, columnidx) {
- s3 +=
- ' ';
- });
-
- // Headers
- if (sheet.headers) {
- s3 += '';
-
- // TODO: Skip columns to body
-
- // Headers
- columns.forEach(function(column, columnidx) {
- s3 += '';
-
- // Column title
- if (typeof column.title != 'undefined') {
- if (typeof column.title == 'function') {
- s3 += column.title(sheet, column, columnidx);
- } else {
- s3 += column.title;
- }
+ } else {
+ var av2 = g.target.sharp;
+ if (typeof av2 === 'undefined') {
+ av2 = g.target.prop;
+ }
+ v2 = alasql.databases[databaseid].objects[av2];
+ if (
+ typeof v2 === 'undefined' &&
+ alasql.options.autovertex &&
+ (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined')
+ ) {
+ v2 = findVertex(g.target.prop || g.target.name);
+ if (typeof v2 === 'undefined') {
+ v2 = createVertex(g.target);
}
- s3 += ' | ';
- });
-
- s3 += '
';
+ }
}
- // Data
- if (data && data.length > 0) {
- // Loop over data rows
- data.forEach(function(row, rowidx) {
- // Limit number of rows on the sheet
- if (rowidx > sheet.limit) return;
-
- // Extend row properties
- var srow = {};
- extend(srow, sheet.row);
- if (sheet.rows && sheet.rows[rowidx]) {
- extend(srow, sheet.rows[rowidx]);
- }
-
- s3 += ''; //'ss:AutoFitHeight="0">'
-
- // Data
- columns.forEach(function(column, columnidx) {
- // Parameters
- var cell = {};
- extend(cell, sheet.cell);
- extend(cell, srow.cell);
- if (typeof sheet.column != 'undefined') {
- extend(cell, sheet.column.cell);
- }
- extend(cell, column.cell);
- if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
- extend(cell, sheet.cells[rowidx][columnidx]);
- }
+ // Set link
+ e.$in = [v1.$id];
+ e.$out = [v2.$id];
+ // Set sides
+ if (typeof v1.$out === 'undefined') {
+ v1.$out = [];
+ }
+ v1.$out.push(e.$id);
+ if (typeof v2.$in === 'undefined') {
+ v2.$in = [];
+ }
+ v2.$in.push(e.$id);
- // Create value
- var value = row[column.columnid];
- if (typeof cell.value == 'function') {
- value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
- }
+ db.objects[e.$id] = e;
+ if (typeof e.$class !== 'undefined') {
+ if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') {
+ throw new Error('No such class. Pleace use CREATE CLASS');
+ } else {
+ // TODO - add insert()
+ alasql.databases[databaseid].tables[e.$class].data.push(e);
+ }
+ }
- // Define cell type
- var typeid = cell.typeid;
- if (typeof typeid == 'function') {
- typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
- }
+ res.push(e.$id);
+ } else {
+ createVertex(g);
+ }
+ });
- if (typeof typeid == 'undefined') {
- if (typeof value == 'number') typeid = 'number';
- else if (typeof value == 'string') typeid = 'string';
- else if (typeof value == 'boolean') typeid = 'boolean';
- else if (typeof value == 'object') {
- if (value instanceof Date) typeid = 'date';
- }
- }
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
- var Type = 'String';
- if (typeid == 'number') Type = 'Number';
- else if (typeid == 'date') Type = 'Date';
- // TODO: What else?
-
- // Prepare Data types styles
- var typestyle = '';
-
- if (typeid == 'money') {
- typestyle =
- 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
- } else if (typeid == 'number') {
- typestyle = ' ';
- } else if (typeid == 'date') {
- typestyle = 'mso-number-format:"Short Date";';
- } else {
- // For other types is saved
- if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
- typestyle = opts.types[typeid].typestyle;
- }
- }
+ // Find vertex by name
+ function findVertex(name) {
+ var objects = alasql.databases[alasql.useid].objects;
+ for (var k in objects) {
+ if (objects[k].name === name) {
+ return objects[k];
+ }
+ }
+ return undefined;
+ }
- // TODO Replace with extend...
- typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
-
- s3 += '';
-
- s3 += '';
-
- // TODO Replace with extend...
- var format = cell.format;
- if (typeof value == 'undefined') {
- s3 += '';
- } else if (typeof format != 'undefined') {
- if (typeof format == 'function') {
- s3 += format(value);
- } else if (typeof format == 'string') {
- s3 += value; // TODO - add string format
- } else {
- throw new Error(
- 'Unknown format type. Should be function or string'
- );
- }
- } else {
- if (typeid == 'number' || typeid == 'date') {
- s3 += value.toString();
- } else if (typeid == 'money') {
- s3 += (+value).toFixed(2);
- } else {
- s3 += value;
- }
- }
+ if (typeof g.prop !== 'undefined') {
+ // v[g.prop] = true;
+ v.$id = g.prop;
+ v.name = g.prop;
+ }
- // s3 += row[column.columnid];
- s3 += ' | ';
- });
+ if (typeof g.sharp !== 'undefined') {
+ v.$id = g.sharp;
+ }
+ if (typeof g.name !== 'undefined') {
+ v.name = g.name;
+ }
+ if (typeof g.class !== 'undefined') {
+ v.$class = g.class;
+ }
- s3 += '
';
- });
+ var db = alasql.databases[databaseid];
+ if (typeof v.$id === 'undefined') {
+ v.$id = db.counter++;
+ }
+ v.$node = 'VERTEX';
+ if (typeof g.json !== 'undefined') {
+ extend(
+ v,
+ new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
+ );
+ }
+ db.objects[v.$id] = v;
+ if (typeof v.$class !== 'undefined') {
+ if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') {
+ throw new Error('No such class. Pleace use CREATE CLASS');
+ } else {
+ // TODO - add insert()
+ alasql.databases[databaseid].tables[v.$class].data.push(v);
}
- // Finish
- s3 += '
';
}
- s3 += ' ';
-
- return s1 + s2 + s3;
+ res.push(v.$id);
+ return v;
}
};
-/**
- Export to XLSX function
- @function
- @param {string|object} filename Filename or options
- @param {object|undefined} opts Options or undefined
- @param {array} data Data
- @param {array} columns Columns
- @parab {callback} cb Callback function
- @return {number} Number of files processed
-*/
-
-alasql.into.XLSX = function(filename, opts, data, columns, cb) {
- /** @type {number} result */
- var res = 1;
-
- if (deepEqual(columns, [{columnid: '_'}])) {
- data = data.map(function(dat) {
- return dat._;
- });
- columns = undefined;
- // res = [{_:1}];
- } else {
- // data = data1;
- }
-
- filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
-
- var XLSX = getXLSX();
+yy.CreateGraph.prototype.compile1 = function(databaseid) {
+ var dbid = databaseid;
+ var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
+ var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
- /* If called without filename, use opts */
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
}
- /** @type {object} Workbook */
- var wb = {SheetNames: [], Sheets: {}};
-
- // ToDo: check if cb must be treated differently here
- if (opts.sourcefilename) {
- alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) {
- wb = XLSX.read(data, {type: 'binary'});
- doExport();
- });
- } else {
- doExport();
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', 'var y;' + s);
}
- /* Return result */
- if (cb) res = cb(res);
- return res;
+ // Todo: handle content, select and default
- /**
- Export workbook
- @function
- */
- function doExport() {
- /*
- If opts is array of arrays then this is a
- multisheet workboook, else it is a singlesheet
- */
- if (typeof opts == 'object' && Array.isArray(opts)) {
- if (data && data.length > 0) {
- data.forEach(function(dat, idx) {
- prepareSheet(opts[idx], dat, undefined, idx + 1);
- });
- }
- } else {
- prepareSheet(opts, data, columns, 1);
+ var statement = function(params, cb) {
+ var res = 0;
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var edge = {$id: db.counter++, $node: 'EDGE'};
+ var v1 = fromfn(params, alasql);
+ var v2 = tofn(params, alasql);
+ // Set link
+ edge.$in = [v1.$id];
+ edge.$out = [v2.$id];
+ // Set sides
+ if (typeof v1.$out === 'undefined') {
+ v1.$out = [];
}
+ v1.$out.push(edge.$id);
- saveWorkbook(cb);
- }
-
- /**
- Prepare sheet
- @params {object} opts
- @params {array|object} data
- @params {array} columns Columns
- */
- function prepareSheet(opts, data, columns, idx) {
- /** Default options for sheet */
- var opt = {sheetid: 'Sheet ' + idx, headers: true};
- alasql.utils.extend(opt, opts);
-
- var dataLength = Object.keys(data).length;
-
- // Generate columns if they are not defined
- if ((!columns || columns.length == 0) && dataLength > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
+ if (typeof v2.$in === 'undefined') {
+ v2.$in = [];
}
-
- var cells = {};
-
- if (wb.SheetNames.indexOf(opt.sheetid) > -1) {
- cells = wb.Sheets[opt.sheetid];
- } else {
- wb.SheetNames.push(opt.sheetid);
- wb.Sheets[opt.sheetid] = {};
- cells = wb.Sheets[opt.sheetid];
+ v2.$in.push(edge.$id);
+ // Save in objects
+ db.objects[edge.$id] = edge;
+ res = edge;
+ if (namefn) {
+ namefn(edge);
+ }
+ if (setfn) {
+ setfn(edge, params, alasql);
}
- var range = 'A1';
- if (opt.range) range = opt.range;
-
- var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);
- var row0 = +range.match(/[0-9]+/)[0] - 1;
-
- if (wb.Sheets[opt.sheetid]['!ref']) {
- var rangem = wb.Sheets[opt.sheetid]['!ref'];
- var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);
- var rowm = +rangem.match(/[0-9]+/)[0] - 1;
- } else {
- var colm = 1,
- rowm = 1;
+ if (cb) {
+ res = cb(res);
}
- var colmax = Math.max(col0 + columns.length, colm);
- var rowmax = Math.max(row0 + dataLength + 2, rowm);
+ return res;
+ };
+ return statement;
+};
- var i = row0 + 1;
+/*
+//
+// ALTER TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+/* global alasql yy */
- wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax;
- // var i = 1;
+// ALTER TABLE table1 RENAME TO table2
+yy.AlterTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.AlterTable.prototype.toString = function() {
+ var s = 'ALTER TABLE ' + this.table.toString();
+ if (this.renameto) s += ' RENAME TO ' + this.renameto;
+ return s;
+};
- if (opt.headers) {
- columns.forEach(function(col, idx) {
- cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()};
- });
- i++;
- }
+yy.AlterTable.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[databaseid];
+ db.dbversion = Date.now();
- for (var j = 0; j < dataLength; j++) {
- columns.forEach(function(col, idx) {
- var cell = {v: data[j][col.columnid]};
- if (typeof data[j][col.columnid] == 'number') {
- cell.t = 'n';
- } else if (typeof data[j][col.columnid] == 'string') {
- cell.t = 's';
- } else if (typeof data[j][col.columnid] == 'boolean') {
- cell.t = 'b';
- } else if (typeof data[j][col.columnid] == 'object') {
- if (data[j][col.columnid] instanceof Date) {
- cell.t = 'd';
- }
- }
- cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell;
- });
- i++;
+ if (this.renameto) {
+ var oldtableid = this.table.tableid;
+ var newtableid = this.renameto;
+ var res = 1;
+ if (db.tables[newtableid]) {
+ throw new Error(
+ "Can not rename a table '" +
+ oldtableid +
+ "' to '" +
+ newtableid +
+ "', because the table with this name already exists"
+ );
+ } else if (newtableid === oldtableid) {
+ throw new Error("Can not rename a table '" + oldtableid + "' to itself");
+ } else {
+ db.tables[newtableid] = db.tables[oldtableid];
+ delete db.tables[oldtableid];
+ res = 1;
+ }
+ if (cb) cb(res);
+ return res;
+ } else if (this.addcolumn) {
+ db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.addcolumn.columnid;
+ if (table.xcolumns[columnid]) {
+ throw new Error(
+ 'Cannot add column "' +
+ columnid +
+ '", because it already exists in the table "' +
+ tableid +
+ '"'
+ );
}
- }
-
- /**
- Save Workbook
- @params {array} wb Workbook
- @params {callback} cb Callback
- */
- function saveWorkbook(cb) {
- var XLSX;
-
- if (typeof filename == 'undefined') {
- res = wb;
- } else {
- XLSX = getXLSX();
+ var col = {
+ columnid: columnid,
+ dbtypeid: this.dbtypeid,
+ dbsize: this.dbsize,
+ dbprecision: this.dbprecision,
+ dbenum: this.dbenum,
+ defaultfns: null, // TODO defaultfns!!!
+ };
- if (utils.isNode || utils.isMeteorServer) {
- XLSX.writeFile(wb, filename);
- } else {
- var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
- var wbout = XLSX.write(wb, wopts);
-
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
- return buf;
- }
+ var defaultfn = function() {};
- /* the saveAs call downloads a file on the local machine */
- // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"')
- // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename)
- // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"');
- if (isIE() == 9) {
- throw new Error(
- 'Cannot save XLSX files in IE9. Please use XLS() export function'
- );
- // var URI = 'data:text/plain;charset=utf-8,';
+ table.columns.push(col);
+ table.xcolumns[columnid] = col;
- /** @todo Check if this code is required */
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- // alert('ie9');
- } else {
- saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);
- }
- }
+ table.data[i][columnid] = defaultfn();
}
- }
-};
-
-/*
-//
-// FROM functions Alasql.js
-// Date: 11.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
+ // TODO
+ return cb ? cb(1) : 1;
+ } else if (this.modifycolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.modifycolumn.columnid;
-/**
- Meteor
- */
+ if (!table.xcolumns[columnid]) {
+ throw new Error(
+ 'Cannot modify column "' +
+ columnid +
+ '", because it was not found in the table "' +
+ tableid +
+ '"'
+ );
+ }
-/* global alasql Tabletop document Event */
+ col = table.xcolumns[columnid];
+ col.dbtypeid = this.dbtypeid;
+ col.dbsize = this.dbsize;
+ col.dbprecision = this.dbprecision;
+ col.dbenum = this.dbenum;
-alasql.from.METEOR = function(filename, opts, cb, idx, query) {
- var res = filename.find(opts).fetch();
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
+ // TODO
+ return cb ? cb(1) : 1;
+ } else if (this.renamecolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
-/**
- Google Spreadsheet reader
- */
-alasql.from.TABLETOP = function(key, opts, cb, idx, query) {
- var res = [];
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.renamecolumn;
+ var tocolumnid = this.to;
- var opt = {headers: true, simpleSheet: true, key: key};
- alasql.utils.extend(opt, opts);
- opt.callback = function(data) {
- res = data;
- if (cb) {
- res = cb(res, idx, query);
+ var col;
+ if (!table.xcolumns[columnid]) {
+ throw new Error(
+ 'Column "' + columnid + '" is not found in the table "' + tableid + '"'
+ );
+ }
+ if (table.xcolumns[tocolumnid]) {
+ throw new Error(
+ 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"'
+ );
}
- };
-
- Tabletop.init(opt);
- return null;
-};
-alasql.from.HTML = function(selector, opts, cb, idx, query) {
- var opt = {};
- alasql.utils.extend(opt, opts);
+ if (columnid != tocolumnid) {
+ for (var j = 0; j < table.columns.length; j++) {
+ if (table.columns[j].columnid == columnid) {
+ table.columns[j].columnid = tocolumnid;
+ }
+ }
- var sel = document.querySelector(selector);
- if (!sel && sel.tagName !== 'TABLE') {
- throw new Error('Selected HTML element is not a TABLE');
- }
+ table.xcolumns[tocolumnid] = table.xcolumns[columnid];
+ delete table.xcolumns[columnid];
- var res = [];
- var headers = opt.headers;
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- if (headers && !Array.isArray(headers)) {
- headers = [];
- var ths = sel.querySelector('thead tr').children;
- for (var i = 0; i < ths.length; i++) {
- if (
- !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)
- ) {
- headers.push(ths.item(i).textContent);
- } else {
- headers.push(undefined);
+ table.data[i][tocolumnid] = table.data[i][columnid];
+ delete table.data[i][columnid];
}
+ return table.data.length;
+ } else {
+ return cb ? cb(0) : 0;
}
- }
-
- var trs = sel.querySelectorAll('tbody tr');
-
- for (var j = 0; j < trs.length; j++) {
- var tds = trs.item(j).children;
- var r = {};
- for (i = 0; i < tds.length; i++) {
- if (
- !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)
- ) {
- if (headers) {
- r[headers[i]] = tds.item(i).textContent;
- } else {
- r[i] = tds.item(i).textContent;
+ } else if (this.dropcolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.dropcolumn;
- }
+ var found = false;
+ for (var j = 0; j < table.columns.length; j++) {
+ if (table.columns[j].columnid == columnid) {
+ found = true;
+ table.columns.splice(j, 1);
+ break;
}
}
- res.push(r);
- }
-
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
-
-alasql.from.RANGE = function(start, finish, cb, idx, query) {
- var res = [];
- for (var i = start; i <= finish; i++) {
- res.push(i);
- }
- // res = new alasql.Recordset({data:res,columns:{columnid:'_'}});
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
-
-// Read data from any file
-alasql.from.FILE = function(filename, opts, cb, idx, query) {
- var fname;
- if (typeof filename === 'string') {
- fname = filename;
- } else if (filename instanceof Event) {
- fname = filename.target.files[0].name;
- } else {
- throw new Error('Wrong usage of FILE() function');
- }
- var parts = fname.split('.');
-
- var ext = parts[parts.length - 1].toUpperCase();
+ if (!found) {
+ throw new Error(
+ 'Cannot drop column "' +
+ columnid +
+ '", because it was not found in the table "' +
+ tableid +
+ '"'
+ );
+ }
- if (alasql.from[ext]) {
+ delete table.xcolumns[columnid];
- return alasql.from[ext](filename, opts, cb, idx, query);
+ for (i = 0, ilen = table.data.length; i < ilen; i++) {
+ delete table.data[i][columnid];
+ }
+ return cb ? cb(table.data.length) : table.data.length;
} else {
- throw new Error('Cannot recognize file type for loading');
+ throw Error('Unknown ALTER TABLE method');
}
};
-// Read JSON file
-
-alasql.from.JSON = function(filename, opts, cb, idx, query) {
- var res;
-
- filename = alasql.utils.autoExtFilename(filename, 'json', opts);
- alasql.utils.loadFile(filename, !!cb, function(data) {
+/*
+//
+// CREATE TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- // res = [{a:1}];
- res = JSON.parse(data);
- if (cb) {
- res = cb(res, idx, query);
- }
- });
- return res;
+yy.CreateIndex = function(params) {
+ return yy.extend(this, params);
};
-
-alasql.from.TXT = function(filename, opts, cb, idx, query) {
- var res;
- filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
- alasql.utils.loadFile(filename, !!cb, function(data) {
- res = data.split(/\r?\n/);
-
- // Remove last line if empty
- if (res[res.length - 1] === '') {
- res.pop();
- }
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- // Please avoid '===' here
- if (res[i] == +res[i]) {
- // eslint:ignore
- // jshint ignore:line
- res[i] = +res[i];
- }
- res[i] = [res[i]];
- }
- if (cb) {
- res = cb(res, idx, query);
- }
- });
- return res;
+yy.CreateIndex.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.unique) s += ' UNIQUE';
+ s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString();
+ s += '(' + this.columns.toString() + ')';
+ return s;
};
-alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- opts.separator = '\t';
- filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
- opts.autoext = false;
- return alasql.from.CSV(filename, opts, cb, idx, query);
-};
+// CREATE TABLE
+yy.CreateIndex.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[databaseid];
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var indexid = this.indexid;
+ db.indices[indexid] = tableid;
-alasql.from.CSV = function(contents, opts, cb, idx, query) {
- var opt = {
- separator: ',',
- quote: '"',
- headers: true,
- };
- alasql.utils.extend(opt, opts);
- var res;
- var hs = [];
- function parseText(text) {
- var delimiterCode = opt.separator.charCodeAt(0);
- var quoteCode = opt.quote.charCodeAt(0);
-
- var EOL = {},
- EOF = {},
- rows = [],
- N = text.length,
- I = 0,
- n = 0,
- t,
- eol;
- function token() {
- if (I >= N) {
- return EOF;
- }
- if (eol) {
- return (eol = false), EOL;
- }
- var j = I;
- if (text.charCodeAt(j) === quoteCode) {
- var i = j;
- while (i++ < N) {
- if (text.charCodeAt(i) === quoteCode) {
- if (text.charCodeAt(i + 1) !== quoteCode) {
- break;
- }
- ++i;
- }
- }
- I = i + 2;
- var c = text.charCodeAt(i + 1);
- if (c === 13) {
- eol = true;
- if (text.charCodeAt(i + 2) === 10) {
- ++I;
- }
- } else if (c === 10) {
- eol = true;
- }
- return text.substring(j + 1, i).replace(/""/g, '"');
- }
- while (I < N) {
- var c = text.charCodeAt(I++),
- k = 1;
- if (c === 10) {
- eol = true;
- } else if (c === 13) {
- eol = true;
- if (text.charCodeAt(I) === 10) {
- ++I;
- ++k;
- }
- } else if (c !== delimiterCode) {
- continue;
- }
- return text.substring(j, I - k);
- }
- return text.substring(j);
- }
+ var rightfns = this.columns
+ .map(function(expr) {
+ return expr.expression.toJS('r', '');
+ })
+ .join("+'`'+");
- while ((t = token()) !== EOF) {
- var a = [];
- while (t !== EOL && t !== EOF) {
- a.push(t.trim());
- t = token();
- }
+ var rightfn = new Function('r,params,alasql', 'return ' + rightfns);
- if (opt.headers) {
- if (n === 0) {
- if (typeof opt.headers === 'boolean') {
- hs = a;
- } else if (Array.isArray(opt.headers)) {
- hs = opt.headers;
- var r = {};
- hs.forEach(function(h, idx) {
- r[h] = a[idx];
- // Please avoid === here
- if (
- typeof r[h] !== 'undefined' &&
- r[h].length !== 0 &&
- r[h].trim() == +r[h]
- ) {
- // jshint ignore:line
- r[h] = +r[h];
- }
- });
- rows.push(r);
- }
- } else {
- var r = {};
- hs.forEach(function(h, idx) {
- r[h] = a[idx];
- if (
- typeof r[h] !== 'undefined' &&
- r[h].length !== 0 &&
- r[h].trim() == +r[h]
- ) {
- // jshint ignore:line
- r[h] = +r[h];
- }
- });
- rows.push(r);
+ if (this.unique) {
+ table.uniqdefs[indexid] = {
+ rightfns: rightfns,
+ };
+ var ux = (table.uniqs[indexid] = {});
+ if (table.data.length > 0) {
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ var addr = rightfns(table.data[i]);
+ if (!ux[addr]) {
+ ux[addr] = {num: 0};
}
- n++;
- } else {
- rows.push(a);
+ ux[addr].num++;
}
}
+ } else {
+ var hh = hash(rightfns);
+ table.inddefs[indexid] = {rightfns: rightfns, hh: hh};
+ table.indices[hh] = {};
- res = rows;
-
- if (opt.headers) {
- if (query && query.sources && query.sources[idx]) {
- var columns = (query.sources[idx].columns = []);
- hs.forEach(function(h) {
- columns.push({columnid: h});
- });
+ var ix = (table.indices[hh] = {});
+ if (table.data.length > 0) {
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ var addr = rightfn(table.data[i], params, alasql);
+ if (!ix[addr]) {
+ ix[addr] = [];
+ }
+ ix[addr].push(table.data[i]);
}
}
-
- if (cb) {
- res = cb(res, idx, query);
- }
- }
- if (new RegExp('\n').test(contents)) {
- parseText(contents);
- } else {
- contents = alasql.utils.autoExtFilename(contents, 'csv', opts);
- alasql.utils.loadFile(contents, !!cb, parseText, query.cb);
}
+ var res = 1;
+ if (cb) res = cb(res);
return res;
};
-function XLSXLSX(X, filename, opts, cb, idx, query) {
- var opt = {};
- opts = opts || {};
- alasql.utils.extend(opt, opts);
- if (typeof opt.headers === 'undefined') {
- opt.headers = true;
- }
- var res;
-
- /**
- * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md
- * for example of using readAsArrayBuffer under `Parsing Workbooks`
- */
- function fixdata(data) {
- var o = '',
- l = 0,
- w = 10240;
- for (; l < data.byteLength / w; ++l)
- o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
- o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
- return o;
- }
- function getHeaderText(text) {
- // if casesensitive option is set to false and there is a text value return lowercase value of text
- if (text && alasql.options.casesensitive === false) {
- return text.toLowerCase();
- } else {
- return text;
- }
- }
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- alasql.utils.loadBinaryFile(
- filename,
- !!cb,
- function(data) {
- // function processData(data) {
- if (data instanceof ArrayBuffer) {
- var arr = fixdata(data);
- var workbook = X.read(btoa(arr), {type: 'base64'});
- } else {
- var workbook = X.read(data, {type: 'binary'});
- }
-
- var sheetid;
- if (typeof opt.sheetid === 'undefined') {
- sheetid = workbook.SheetNames[0];
- } else if (typeof opt.sheetid === 'number') {
- sheetid = workbook.SheetNames[opt.sheetid];
- } else {
- sheetid = opt.sheetid;
- }
- var range;
- var res = [];
- if (typeof opt.range === 'undefined') {
- range = workbook.Sheets[sheetid]['!ref'];
- } else {
- range = opt.range;
- if (workbook.Sheets[sheetid][range]) {
- range = workbook.Sheets[sheetid][range];
- }
- }
- // if range has some value then data is present in the current sheet
- // else current sheet is empty
- if (range) {
- var rg = range.split(':');
- var col0 = rg[0].match(/[A-Z]+/)[0];
- var row0 = +rg[0].match(/[0-9]+/)[0];
- var col1 = rg[1].match(/[A-Z]+/)[0];
- var row1 = +rg[1].match(/[0-9]+/)[0];
-
- var hh = {};
- var xlscnCol0 = alasql.utils.xlscn(col0);
- var xlscnCol1 = alasql.utils.xlscn(col1);
- for (var j = xlscnCol0; j <= xlscnCol1; j++) {
- var col = alasql.utils.xlsnc(j);
- if (opt.headers) {
- if (workbook.Sheets[sheetid][col + '' + row0]) {
- hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v);
- } else {
- hh[col] = getHeaderText(col);
- }
- } else {
- hh[col] = col;
- }
- }
- if (opt.headers) {
- row0++;
- }
- for (var i = row0; i <= row1; i++) {
- var row = {};
- for (var j = xlscnCol0; j <= xlscnCol1; j++) {
- var col = alasql.utils.xlsnc(j);
- if (workbook.Sheets[sheetid][col + '' + i]) {
- row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v;
- }
- }
- res.push(row);
- }
- } else {
- res.push([]);
- }
-
- // Remove last empty line (issue #548)
- if (
- res.length > 0 &&
- res[res.length - 1] &&
- Object.keys(res[res.length - 1]).length == 0
- ) {
- res.pop();
- }
+yy.Reindex = function(params) {
+ return yy.extend(this, params);
+};
+yy.Reindex.prototype.toString = function() {
+ var s = 'REINDEX ' + this.indexid;
+ return s;
+};
- if (cb) {
- res = cb(res, idx, query);
- }
- },
- function(err) {
- throw err;
- }
- );
+// CREATE TABLE
+yy.Reindex.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[databaseid];
+ var indexid = this.indexid;
+ var tableid = db.indices[indexid];
+ var table = db.tables[tableid];
+ table.indexColumns();
+ var res = 1;
+ if (cb) res = cb(res);
return res;
-}
-
-alasql.from.XLS = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
};
-alasql.from.XLSX = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+/*
+//
+// DROP TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.DropIndex = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropIndex.prototype.toString = function() {
+ return 'DROP INDEX' + this.indexid;
};
-alasql.from.ODS = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'ods', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+// DROP TABLE
+yy.DropIndex.prototype.compile = function(db) {
+ var indexid = this.indexid;
+ return function() {
+ return 1;
+ };
};
-alasql.from.XML = function(filename, opts, cb, idx, query) {
- var res;
+/*
+//
+// WITH SELECT for Alasql.js
+// Date: 11.01.2015
+// (c) 2015, Andrey Gershun
+//
+*/
- alasql.utils.loadFile(filename, !!cb, function(data) {
+yy.WithSelect = function(params) {
+ return yy.extend(this, params);
+};
+yy.WithSelect.prototype.toString = function() {
+ var s = 'WITH ';
+ s +=
+ this.withs
+ .map(function(w) {
+ return w.name + ' AS (' + w.select.toString() + ')';
+ })
+ .join(',') + ' ';
+ s += this.select.toString();
+ return s;
+};
- // res = [{a:1}];
+yy.WithSelect.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ // Create temporary tables
+ var savedTables = [];
+ self.withs.forEach(function(w) {
+ savedTables.push(alasql.databases[databaseid].tables[w.name]);
+ var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name}));
+ tb.data = w.select.execute(databaseid, params);
+ });
- res = xmlparse(data).root;
+ var res = 1;
+ res = this.select.execute(databaseid, params, function(data) {
+ // Clear temporary tables
+ // setTimeout(function(){
+ self.withs.forEach(function(w, idx) {
+ if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx];
+ else delete alasql.databases[databaseid].tables[w.name];
+ });
+ // },0);
- if (cb) res = cb(res, idx, query);
+ if (cb) data = cb(data);
+ return data;
});
return res;
};
-/**
- * Parse the given string of `xml`.
- *
- * @param {String} xml
- * @return {Object}
- * @api public
- */
-
-function xmlparse(xml) {
- xml = xml.trim();
-
- // strip comments
- xml = xml.replace(//g, '');
-
- return document();
-
- /**
- * XML document.
- */
+/*
+//
+// IF for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- function document() {
- return {
- declaration: declaration(),
- root: tag(),
- };
- }
+yy.If = function(params) {
+ return yy.extend(this, params);
+};
+yy.If.prototype.toString = function() {
+ var s = 'IF' + ' ';
+ s += this.expression.toString();
+ s += ' ' + this.thenstat.toString();
+ if (this.elsestat) s += ' ELSE ' + this.thenstat.toString();
+ return s;
+};
- /**
- * Declaration.
- */
+// CREATE TABLE
- function declaration() {
- var m = match(/^<\?xml\s*/);
- if (!m) return;
+yy.If.prototype.execute = function(databaseid, params, cb) {
+ var res;
- // tag
- var node = {
- attributes: {},
- };
+ var fn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + this.expression.toJS('({})', '', null)
+ ).bind(this);
- // attributes
- while (!(eos() || is('?>'))) {
- var attr = attribute();
- if (!attr) return node;
- node.attributes[attr.name] = attr.value;
+ if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb);
+ else {
+ if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb);
+ else {
+ if (cb) res = cb(res);
}
-
- match(/\?>\s*/);
-
- return node;
}
+ // else res = this.elsestat.execute(databaseid,params,cb,scope);
+ return res;
+};
- /**
- * Tag.
- */
-
- function tag() {
- var m = match(/^<([\w-:.]+)\s*/);
- if (!m) return;
-
- // name
- var node = {
- name: m[1],
- attributes: {},
- children: [],
- };
-
- // attributes
- while (!(eos() || is('>') || is('?>') || is('/>'))) {
- var attr = attribute();
- if (!attr) return node;
- node.attributes[attr.name] = attr.value;
- }
+/*
+//
+// CREATE VIEW for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- // self closing tag
- if (match(/^\s*\/>\s*/)) {
- return node;
- }
+yy.While = function(params) {
+ return yy.extend(this, params);
+};
+yy.While.prototype.toString = function() {
+ var s = 'WHILE ';
+ s += this.expression.toString();
+ s += ' ' + this.loopstat.toString();
+ return s;
+};
- match(/\??>\s*/);
+yy.While.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ var res = [];
- // content
- node.content = content();
+ var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS());
- // children
- var child;
- while ((child = tag())) {
- node.children.push(child);
+ if (cb) {
+ var first = false;
+ var loop = function(data) {
+ if (first) {
+ res.push(data);
+ } else {
+ first = true;
+ }
+ setTimeout(function() {
+ if (fn(params, alasql)) {
+ self.loopstat.execute(databaseid, params, loop);
+ } else {
+ res = cb(res);
+ }
+ }, 0);
+ };
+ loop();
+ } else {
+ while (fn(params, alasql)) {
+ var res1 = self.loopstat.execute(databaseid, params);
+ res.push(res1);
}
-
- // closing
- match(/^<\/[\w-:.]+>\s*/);
-
- return node;
- }
-
- /**
- * Text content.
- */
-
- function content() {
- var m = match(/^([^<]*)/);
- if (m) return m[1];
- return '';
- }
-
- /**
- * Attribute.
- */
-
- function attribute() {
- var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);
- if (!m) return;
- return {name: m[1], value: strip(m[2])};
}
+ return res;
+};
- /**
- * Strip quotes from `val`.
- */
-
- function strip(val) {
- return val.replace(/^['"]|['"]$/g, '');
- }
-
- /**
- * Match `re` and advance the string.
- */
-
- function match(re) {
- var m = xml.match(re);
- if (!m) return;
- xml = xml.slice(m[0].length);
- return m;
- }
+yy.Break = function(params) {
+ return yy.extend(this, params);
+};
+yy.Break.prototype.toString = function() {
+ var s = 'BREAK';
+ return s;
+};
- /**
- * End-of-source.
- */
+yy.Break.prototype.execute = function(databaseid, params, cb, scope) {
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
- function eos() {
- return 0 == xml.length;
- }
+yy.Continue = function(params) {
+ return yy.extend(this, params);
+};
+yy.Continue.prototype.toString = function() {
+ var s = 'CONTINUE';
+ return s;
+};
- /**
- * Check for `prefix`.
- */
+yy.Continue.prototype.execute = function(databaseid, params, cb, scope) {
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
- function is(prefix) {
- return 0 == xml.indexOf(prefix);
- }
-}
+yy.BeginEnd = function(params) {
+ return yy.extend(this, params);
+};
+yy.BeginEnd.prototype.toString = function() {
+ var s = 'BEGIN ' + this.statements.toString() + ' END';
+ return s;
+};
-alasql.from.GEXF = function(filename, opts, cb, idx, query) {
- var res;
- alasql('SEARCH FROM XML(' + filename + ')', [], function(data) {
- res = data;
+yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) {
+ var self = this;
+ var res = [];
- if (cb) res = cb(res);
- });
+ var idx = 0;
+ runone();
+ function runone() {
+ self.statements[idx].execute(databaseid, params, function(data) {
+ res.push(data);
+ idx++;
+ if (idx < self.statements.length) return runone();
+ if (cb) res = cb(res);
+ });
+ }
return res;
};
+/*
+//
+// INSERT for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global yy alasql*/
+yy.Insert = function(params) {
+ return yy.extend(this, params);
+};
+yy.Insert.prototype.toString = function() {
+ var s = 'INSERT ';
+ if (this.orreplace) s += 'OR REPLACE ';
+ if (this.replaceonly) s = 'REPLACE ';
+ s += 'INTO ' + this.into.toString();
+ if (this.columns) s += '(' + this.columns.toString() + ')';
+ if (this.values) s += ' VALUES ' + this.values.toString();
+ if (this.select) s += ' ' + this.select.toString();
+ return s;
+};
+
+yy.Insert.prototype.toJS = function(context, tableid, defcols) {
+
+ // if(this.expression.reduced) return 'true';
+ // return this.expression.toJS(context, tableid, defcols);
+
+ // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
+
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+
+ return s;
+};
+
+yy.Insert.prototype.compile = function(databaseid) {
+ var self = this;
+ databaseid = self.into.databaseid || databaseid;
+ var db = alasql.databases[databaseid];
+
+ var tableid = self.into.tableid;
+ var table = db.tables[tableid];
+
+ if (!table) {
+ throw "Table '" + tableid + "' could not be found";
+ }
+
+ // Check, if this dirty flag is required
+ var s = '';
+ var sw = '';
+ var s = "db.tables['" + tableid + "'].dirty=true;";
+ var s3 = 'var a,aa=[],x;';
+
+ var s33;
+
+ // INSERT INTO table VALUES
+ if (this.values) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ self.values.forEach(function(values) {
+ var ss = [];
+
+ // s += 'db.tables[\''+tableid+'\'].data.push({';
+
+ // s += '';
+ if (self.columns) {
+ self.columns.forEach(function(col, idx) {
+
+ // ss.push(col.columnid +':'+ self.values[idx].value.toString());
+
+ // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined;
+
+ // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0;
+ // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value];
+ var q = "'" + col.columnid + "':";
+ if (table.xcolumns && table.xcolumns[col.columnid]) {
+ if (
+ ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(
+ table.xcolumns[col.columnid].dbtypeid
+ ) >= 0
+ ) {
+ //q += ''
+ q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)';
+ } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) {
+ q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '(';
+ q += values[idx].toJS();
+ q += '))';
+ } else {
+ q += values[idx].toJS();
+ }
+ } else {
+ q += values[idx].toJS();
+ }
+ ss.push(q);
+ });
+ } else {
+ // var table = db.tables[tableid];
+
+ if (Array.isArray(values) && table.columns && table.columns.length > 0) {
+ table.columns.forEach(function(col, idx) {
+ var q = "'" + col.columnid + "':";
+ // var val = values[idx].toJS();
+
+ if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) {
+ q += '+' + values[idx].toJS();
+ } else if (alasql.fn[col.dbtypeid]) {
+ q += '(new ' + col.dbtypeid + '(';
+ q += values[idx].toJS();
+ q += '))';
+ } else {
+ q += values[idx].toJS();
+ }
+
+ ss.push(q);
+
+ });
+ } else {
+
+ // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
+ sw = JSONtoJS(values);
+ }
+ }
+
+ if (db.tables[tableid].defaultfns) {
+ ss.unshift(db.tables[tableid].defaultfns);
+ }
+ if (sw) {
+ s += 'a=' + sw + ';';
+ } else {
+ s += 'a={' + ss.join(',') + '};';
+ }
+
+ // If this is a class
+ if (db.tables[tableid].isclass) {
+ s += "var db=alasql.databases['" + databaseid + "'];";
+ s += 'a.$class="' + tableid + '";';
+ s += 'a.$id=db.counter++;';
+ s += 'db.objects[a.$id]=a;';
+ }
+ // s += 'db.tables[\''+tableid+'\'].insert(r);';
+ if (db.tables[tableid].insert) {
+ s += "var db=alasql.databases['" + databaseid + "'];";
+ s +=
+ "db.tables['" +
+ tableid +
+ "'].insert(a," +
+ (self.orreplace ? 'true' : 'false') +
+ ');';
+ } else {
+ s += 'aa.push(a);';
+ }
+ });
+
+ s33 = s3 + s;
+
+ if (db.tables[tableid].insert) {
+ // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);';
+ } else {
+ s +=
+ "alasql.databases['" +
+ databaseid +
+ "'].tables['" +
+ tableid +
+ "'].data=" +
+ "alasql.databases['" +
+ databaseid +
+ "'].tables['" +
+ tableid +
+ "'].data.concat(aa);";
+ }
+
+ if (db.tables[tableid].insert) {
+ if (db.tables[tableid].isclass) {
+ s += 'return a.$id;';
+ } else {
+ s += 'return ' + self.values.length;
+ }
+ } else {
+ s += 'return ' + self.values.length;
+ }
+
+ var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this);
+
+ // INSERT INTO table SELECT
+ } else if (this.select) {
+ this.select.modifier = 'RECORDSET';
+ var selectfn = this.select.compile(databaseid);
+ if (db.engineid && alasql.engines[db.engineid].intoTable) {
+ var statement = function(params, cb) {
+ var aa = selectfn(params);
+ var res = alasql.engines[db.engineid].intoTable(
+ db.databaseid,
+ tableid,
+ aa.data,
+ null,
+ cb
+ );
+ return res;
+ };
+ return statement;
+ } else {
+
+ var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})';
+ var defaultfn = new Function('r,db,params,alasql', defaultfns);
+ var insertfn = function(db, params, alasql) {
+ var res = selectfn(params).data;
+ if (db.tables[tableid].insert) {
+ // If insert() function exists (issue #92)
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ var r = cloneDeep(res[i]);
+ defaultfn(r, db, params, alasql);
+ db.tables[tableid].insert(r, self.orreplace);
+ }
+ } else {
+ db.tables[tableid].data = db.tables[tableid].data.concat(res);
+ }
+ if (alasql.options.nocount) return;
+ else return res.length;
+ };
+ }
+ } else if (this.default) {
+ var insertfns =
+ "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;';
+ var insertfn = new Function('db,params,alasql', insertfns);
+ } else {
+ throw new Error('Wrong INSERT parameters');
+ }
+
+ if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) {
+ var statement = function(params, cb) {
+ var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params);
+
+ var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb);
+ // if(cb) cb(res);
+ return res;
+ };
+ } else {
+ var statement = function(params, cb) {
+
+ var db = alasql.databases[databaseid];
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var res = insertfn(db, params, alasql);
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+ // var res = insertfn(db, params);
+ if (alasql.options.nocount) res = undefined;
+ if (cb) cb(res);
+ return res;
+ };
+ }
+
+ return statement;
+};
+
+yy.Insert.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+ // throw new Error('Insert statement is should be compiled')
+};
+
/*
//
-// HELP for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
+// TRIGGER for Alasql.js
+// Date: 29.12.2015
//
*/
-/* globals: alasql, yy */
+yy.CreateTrigger = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateTrigger.prototype.toString = function() {
+ var s = 'CREATE TRIGGER ' + this.trigger + ' ';
+ if (this.when) s += this.when + ' ';
+ s += this.action + ' ON ';
+ if (this.table.databaseid) s += this.table.databaseid + '.';
+ s += this.table.tableid + ' ';
+ s += this.statement.toString();
+ return s;
+};
-/**
- Print statement
- @class
- @param {object} params Initial setup properties
-*/
+yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) {
+ var res = 1; // No tables removed
+ var triggerid = this.trigger;
+ databaseid = this.table.databaseid || databaseid;
+ var db = alasql.databases[databaseid];
+ var tableid = this.table.tableid;
-/* global alasql, yy */
+ var trigger = {
+ action: this.action,
+ when: this.when,
+ statement: this.statement,
+ funcid: this.funcid,
+ };
-yy.Print = function(params) {
- return yy.extend(this, params);
+ db.triggers[triggerid] = trigger;
+ if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforeinsert[triggerid] = trigger;
+ } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterinsert[triggerid] = trigger;
+ } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofinsert[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforedelete[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterdelete[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofdelete[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforeupdate[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterupdate[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofupdate[triggerid] = trigger;
+ }
+
+ if (cb) res = cb(res);
+ return res;
};
-/**
- Generate SQL string
- @this Print statement object
-*/
-yy.Print.prototype.toString = function() {
- var s = 'PRINT';
- if (this.statement) s += ' ' + this.statement.toString();
+yy.DropTrigger = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropTrigger.prototype.toString = function() {
+ var s = 'DROP TRIGGER ' + this.trigger;
return s;
};
/**
- Print result of select statement or expression
- @param {string} databaseid Database identificator
- @param {object} params Query parameters
- @param {statement-callback} cb Callback function
- @this Print statement object
+ Drop trigger
+ @param {string} databaseid Database id
+ @param {object} params Parameters
+ @param {callback} cb Callback function
+ @return Number of dropped triggers
+ @example
+ DROP TRIGGER one;
*/
-yy.Print.prototype.execute = function(databaseid, params, cb) {
-
- var self = this;
- var res = 1;
-
- alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */
-
- if (this.exprs && this.exprs.length > 0) {
- var rs = this.exprs.map(function(expr) {
-
- var exprfn = new Function(
- 'params,alasql,p',
- 'var y;return ' + expr.toJS('({})', '', null)
- ).bind(self);
- var r = exprfn(params, alasql);
- return JSONtoString(r);
- });
- console.log.apply(console, rs);
- } else if (this.select) {
- var r = this.select.execute(databaseid, params);
- console.log(JSONtoString(r));
+yy.DropTrigger.prototype.execute = function(databaseid, params, cb) {
+ var res = 0; // No tables removed
+ var db = alasql.databases[databaseid];
+ var triggerid = this.trigger;
+ // For each table in the list
+ var tableid = db.triggers[triggerid];
+ if (tableid) {
+ res = 1;
+ delete db.tables[tableid].beforeinsert[triggerid];
+ delete db.tables[tableid].afterinsert[triggerid];
+ delete db.tables[tableid].insteadofinsert[triggerid];
+ delete db.tables[tableid].beforedelte[triggerid];
+ delete db.tables[tableid].afterdelete[triggerid];
+ delete db.tables[tableid].insteadofdelete[triggerid];
+ delete db.tables[tableid].beforeupdate[triggerid];
+ delete db.tables[tableid].afterupdate[triggerid];
+ delete db.tables[tableid].insteadofupdate[triggerid];
+ delete db.triggers[triggerid];
} else {
- console.log();
+ throw new Error('Trigger not found');
}
-
if (cb) res = cb(res);
return res;
};
+/*
+//
+// DELETE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Delete = function(params) {
+ return yy.extend(this, params);
+};
+yy.Delete.prototype.toString = function() {
+ var s = 'DELETE FROM ' + this.table.toString();
+ if (this.where) s += ' WHERE ' + this.where.toString();
+ return s;
+};
+
+yy.Delete.prototype.compile = function(databaseid) {
+
+ databaseid = this.table.databaseid || databaseid;
+ var tableid = this.table.tableid;
+ var statement;
+ var db = alasql.databases[databaseid];
+
+ if (this.where) {
+
+ // this.query = {};
+
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ // try {
+
+ // var query = {};
+
+ var wherefn = new Function(
+ 'r,params,alasql',
+ 'var y;return (' + this.where.toJS('r', '') + ')'
+ ).bind(this);
+
+ statement = function(params, cb) {
+ if (db.engineid && alasql.engines[db.engineid].deleteFromTable) {
+ return alasql.engines[db.engineid].deleteFromTable(
+ databaseid,
+ tableid,
+ wherefn,
+ params,
+ cb
+ );
+ }
+
+ if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ // table.dirty = true;
+ var orignum = table.data.length;
+
+ var newtable = [];
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ if (wherefn(table.data[i], params, alasql)) {
+ // Check for transaction - if it is not possible then return all back
+ if (table.delete) {
+ table.delete(i, params, alasql);
+ } else {
+ // Simply do not push
+ }
+ } else newtable.push(table.data[i]);
+ }
+ // table.data = table.data.filter(function(r){return !;});
+ table.data = newtable;
+
+ // Trigger prevent functionality
+ for (var tr in table.afterdelete) {
+ var trigger = table.afterdelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid]();
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+
+ var res = orignum - table.data.length;
+ if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+
+ if (cb) cb(res);
+ return res;
+ };
+ // .bind(query);
+
+ // if(!this.queries) return;
+ // query.queriesfn = this.queries.map(function(q) {
+ // return q.compile(alasql.useid);
+ // });
+ } else {
+ statement = function(params, cb) {
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ table.dirty = true;
+ var orignum = db.tables[tableid].data.length;
+ //table.deleteall();
+ // Delete all records from the array
+ db.tables[tableid].data.length = 0;
+
+ // Reset PRIMARY KEY and indexes
+ for (var ix in db.tables[tableid].uniqs) {
+ db.tables[tableid].uniqs[ix] = {};
+ }
+
+ for (var ix in db.tables[tableid].indices) {
+ db.tables[tableid].indices[ix] = {};
+ }
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+
+ if (cb) cb(orignum);
+ return orignum;
+ };
+ }
+
+ return statement;
+};
+
+yy.Delete.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+};
+
/*
//
-// HELP for Alasql.js
+// UPDATE for Alasql.js
// Date: 03.11.2014
// (c) 2014, Andrey Gershun
//
*/
-yy.Source = function(params) {
+/* global yy alasql */
+
+yy.Update = function(params) {
return yy.extend(this, params);
};
-yy.Source.prototype.toString = function() {
- var s = 'SOURCE';
- if (this.url) s += " '" + this.url + " '";
+yy.Update.prototype.toString = function() {
+ var s = 'UPDATE ' + this.table.toString();
+ if (this.columns) s += ' SET ' + this.columns.toString();
+ if (this.where) s += ' WHERE ' + this.where.toString();
return s;
};
-// SOURCE FILE
-yy.Source.prototype.execute = function(databaseid, params, cb) {
+yy.SetColumn = function(params) {
+ return yy.extend(this, params);
+};
+yy.SetColumn.prototype.toString = function() {
+ return this.column.toString() + '=' + this.expression.toString();
+};
- var res;
- loadFile(
- this.url,
- !!cb,
- function(data) {
+yy.Update.prototype.compile = function(databaseid) {
+
+ databaseid = this.table.databaseid || databaseid;
+ var tableid = this.table.tableid;
+
+ if (this.where) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ var wherefn = new Function(
+ 'r,params,alasql',
+ 'var y;return ' + this.where.toJS('r', '')
+ ).bind(this);
+ }
+
+ // Construct update function
+ var s = alasql.databases[databaseid].tables[tableid].onupdatefns || '';
+ s += ';';
+ this.columns.forEach(function(col) {
+ s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';';
+ });
+
+ var assignfn = new Function('r,params,alasql', 'var y;' + s);
+
+ var statement = function(params, cb) {
+ var db = alasql.databases[databaseid];
+
+ if (db.engineid && alasql.engines[db.engineid].updateTable) {
+
+ return alasql.engines[db.engineid].updateTable(
+ databaseid,
+ tableid,
+ assignfn,
+ wherefn,
+ params,
+ cb
+ );
+ }
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ if (!table) {
+ throw new Error("Table '" + tableid + "' not exists");
+ }
+ // table.dirty = true;
+ var numrows = 0;
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ if (!wherefn || wherefn(table.data[i], params, alasql)) {
+ if (table.update) {
+ table.update(assignfn, i, params);
+ } else {
+ assignfn(table.data[i], params, alasql);
+ }
+ numrows++;
+ }
+ }
- // res = 1;
- res = alasql(data);
- if (cb) res = cb(res);
- return res;
- },
- function(err) {
- throw err;
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
}
- );
- return res;
+
+ if (cb) cb(numrows);
+ return numrows;
+ };
+ return statement;
+};
+
+yy.Update.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
};
/*
//
-// HELP for Alasql.js
-// Date: 03.11.2014
+// SET for Alasql.js
+// Date: 01.12.2014
// (c) 2014, Andrey Gershun
//
*/
/* global alasql, yy */
-yy.Require = function(params) {
+yy.Merge = function(params) {
return yy.extend(this, params);
};
-yy.Require.prototype.toString = function() {
- var s = 'REQUIRE';
- if (this.paths && this.paths.length > 0) {
- s += this.paths
- .map(function(path) {
- return path.toString();
- })
- .join(',');
- }
- if (this.plugins && this.plugins.length > 0) {
- s += this.plugins
- .map(function(plugin) {
- return plugin.toUpperCase();
- })
- .join(',');
- }
+yy.Merge.prototype.toString = function() {
+ var s = 'MERGE ';
+ s += this.into.tableid + ' ';
+ if (this.into.as) s += 'AS ' + this.into.as + ' ';
+ s += 'USING ' + this.using.tableid + ' ';
+ if (this.using.as) s += 'AS ' + this.using.as + ' ';
+ s += 'ON ' + this.on.toString() + ' ';
+ this.matches.forEach(function(m) {
+ s += 'WHEN ';
+ if (!m.matched) s += 'NOT ';
+ s += 'MATCHED ';
+ if (m.bytarget) s += 'BY TARGET ';
+ if (m.bysource) s += 'BY SOURCE ';
+ if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' ';
+ s += 'THEN ';
+ if (m.action.delete) s += 'DELETE ';
+ if (m.action.insert) {
+ s += 'INSERT ';
+ if (m.action.columns) s += '(' + m.action.columns.toString() + ') ';
+ if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') ';
+ if (m.action.defaultvalues) s += 'DEFAULT VALUES ';
+ }
+ if (m.action.update) {
+ s += 'UPDATE ';
+ s +=
+ m.action.update
+ .map(function(u) {
+ return u.toString();
+ })
+ .join(',') + ' ';
+ }
+ });
+
return s;
};
-/**
- Attach plug-in for Alasql
- */
-yy.Require.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- var res = 0;
- var ss = '';
-
- if (this.paths && this.paths.length > 0) {
- this.paths.forEach(function(path) {
- loadFile(path.value, !!cb, function(data) {
- res++;
-
- ss += data;
- if (res < self.paths.length) return;
-
- new Function('params,alasql', ss)(params, alasql);
- if (cb) res = cb(res);
- });
- });
- } else if (this.plugins && this.plugins.length > 0) {
- this.plugins.forEach(function(plugin) {
- // If plugin is not loaded already
- if (!alasql.plugins[plugin]) {
- loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function(
- data
- ) {
- // Execute all plugins at the same time
- res++;
- ss += data;
- if (res < self.plugins.length) return;
+yy.Merge.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
- new Function('params,alasql', ss)(params, alasql);
- alasql.plugins[plugin] = true; // Plugin is loaded
- if (cb) res = cb(res);
- });
- }
- });
- } else {
- if (cb) res = cb(res);
- }
+ if (cb) res = cb(res);
return res;
};
/*
//
-// HELP for Alasql.js
+// UPDATE for Alasql.js
// Date: 03.11.2014
+// Modified: 16.11.2014
// (c) 2014, Andrey Gershun
//
*/
-yy.Assert = function(params) {
- return yy.extend(this, params);
-};
-yy.Source.prototype.toString = function() {
- var s = 'ASSERT';
- if (this.value) s += ' ' + JSON.stringify(this.value);
- return s;
-};
-
-// SOURCE FILE
-yy.Assert.prototype.execute = function(databaseid) {
+/* global yy alasql */
- if (!deepEqual(alasql.res, this.value)) {
- // if(this.message) {
- // throw this.
- // } else {
- throw new Error(
- (this.message || 'Assert wrong') +
- ': ' +
- JSON.stringify(alasql.res) +
- ' == ' +
- JSON.stringify(this.value)
- );
- // }
- }
- return 1;
+// CREATE DATABASE databaseid
+yy.CreateDatabase = function(params) {
+ return yy.extend(this, params);
};
-
-//
-// 91websql.js
-// WebSQL database support
-// (c) 2014, Andrey Gershun
-//
-
-var WEBSQL = (alasql.engines.WEBSQL = function() {});
-
-WEBSQL.createDatabase = function(wdbid, args, dbid, cb) {
- var res = 1;
- var wdb = openDatabase(wdbid, args[0], args[1], args[2]);
- if (this.dbid) {
- var db = alasql.createDatabase(this.dbid);
- db.engineid = 'WEBSQL';
- db.wdbid = wdbid;
- sb.wdb = db;
- }
- if (!wdb) {
- throw new Error('Cannot create WebSQL database "' + databaseid + '"');
+yy.CreateDatabase.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.engineid) s += ' ' + this.engineid;
+ s += ' DATABASE';
+ if (this.ifnotexists) s += ' IF NOT EXISTS';
+ s += ' ' + this.databaseid;
+ if (this.args && this.args.length > 0) {
+ s +=
+ '(' +
+ this.args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(', ') +
+ ')';
}
- if (cb) cb(res);
- return res;
-};
-
-WEBSQL.dropDatabase = function(databaseid) {
- throw new Error('This is impossible to drop WebSQL database.');
+ if (this.as) s += ' AS ' + this.as;
+ return s;
};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) {
+ var args;
+ if (this.args && this.args.length > 0) {
+ args = this.args.map(function(arg) {
-WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) {
- var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql);
+ });
}
- alasqlopenDatabase(databaseid, args[0], args[1], args[2]);
- return res;
-};
-
-//
-// 91indexeddb.js
-// AlaSQL IndexedDB module
-// Date: 18.04.2015
-// (c) Andrey Gershun
-//
-
-/* global alasql, yy, utils*/
-
-var IDB = (alasql.engines.INDEXEDDB = function() {
- '';
-});
-
-if (utils.hasIndexedDB) {
- // For Chrome it work normally, for Firefox - simple shim
- if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') {
- IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind(
- utils.global.indexedDB
+ if (this.engineid) {
+ var res = alasql.engines[this.engineid].createDatabase(
+ this.databaseid,
+ this.args,
+ this.ifnotexists,
+ this.as,
+ cb
);
+ return res;
} else {
- IDB.getDatabaseNames = function() {
- var request = {};
- var result = {
- contains: function(name) {
- return true; // Always return true
- },
- notsupported: true,
- };
- setTimeout(function() {
- var event = {target: {result: result}};
- request.onsuccess(event);
- }, 0);
- return request;
- };
- IDB.getDatabaseNamesNotSupported = true;
- }
-}
-
-//
-// SHOW DATABASES
-// work only in chrome
-//
-IDB.showDatabases = function(like, cb) {
-
- var request = IDB.getDatabaseNames();
- request.onsuccess = function(event) {
- var dblist = event.target.result;
- if (IDB.getDatabaseNamesNotSupported) {
- throw new Error('SHOW DATABASE is not supported in this browser');
- }
- var res = [];
- if (like) {
- var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g');
- }
- for (var i = 0; i < dblist.length; i++) {
- if (!like || dblist[i].match(relike)) {
- res.push({databaseid: dblist[i]});
- }
+ var dbid = this.databaseid;
+ if (alasql.databases[dbid]) {
+ throw new Error("Database '" + dbid + "' already exists");
}
- cb(res);
- };
+ var a = new alasql.Database(dbid);
+ var res = 1;
+ if (cb) return cb(res);
+ return res;
+ }
};
-IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
-
- var indexedDB = utils.global.indexedDB;
- if (ifnotexists) {
- var request2 = indexedDB.open(ixdbid, 1);
- request2.onsuccess = function(event) {
- event.target.result.close();
- if (cb) cb(1);
- };
- } else {
- var request1 = indexedDB.open(ixdbid, 1);
- request1.onupgradeneeded = function(e) {
-
- e.target.transaction.abort();
- };
- request1.onsuccess = function(e) {
-
- if (ifnotexists) {
- if (cb) cb(0);
- } else {
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- }
- };
+// CREATE DATABASE databaseid
+yy.AttachDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.AttachDatabase.prototype.toString = function(args) {
+ var s = 'ATTACH';
+ if (this.engineid) s += ' ' + this.engineid;
+ s += ' DATABASE' + ' ' + this.databaseid;
+ // TODO add params
+ if (args) {
+ s += '(';
+ if (args.length > 0) {
+ s += args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(', ');
+ }
+ s += ')';
}
-
+ if (this.as) s += ' AS' + ' ' + this.as;
+ return s;
+};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (!alasql.engines[this.engineid]) {
+ throw new Error('Engine "' + this.engineid + '" is not defined.');
+ }
+ var res = alasql.engines[this.engineid].attachDatabase(
+ this.databaseid,
+ this.as,
+ this.args,
+ params,
+ cb
+ );
+ return res;
};
-IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
- var indexedDB = utils.global.indexedDB;
- if (IDB.getDatabaseNamesNotSupported) {
- // Hack for Firefox
- if (ifnotexists) {
-
- var dbExists = true;
- var request2 = indexedDB.open(ixdbid);
+// CREATE DATABASE databaseid
+yy.DetachDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.DetachDatabase.prototype.toString = function() {
+ var s = 'DETACH';
+ s += ' DATABASE' + ' ' + this.databaseid;
+ return s;
+};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (!alasql.databases[this.databaseid].engineid) {
+ throw new Error(
+ 'Cannot detach database "' + this.engineid + '", because it was not attached.'
+ );
+ }
+ var res;
- request2.onupgradeneeded = function(e) {
+ var dbid = this.databaseid;
- dbExists = false;
- // e.target.transaction.abort();
- // cb(0);
- };
- request2.onsuccess = function(event) {
+ if (dbid === alasql.DEFAULTDATABASEID) {
+ throw new Error('Drop of default database is prohibited');
+ }
- event.target.result.close();
- if (dbExists) {
- if (cb) cb(0);
- } else {
- if (cb) cb(1);
- }
- };
+ if (!alasql.databases[dbid]) {
+ if (!this.ifexists) {
+ throw new Error("Database '" + dbid + "' does not exist");
} else {
-
- var request1 = indexedDB.open(ixdbid);
- request1.onupgradeneeded = function(e) {
- e.target.transaction.abort();
- };
- request1.onabort = function(event) {
- if (cb) cb(1);
- };
- request1.onsuccess = function(event) {
- event.target.result.close();
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- // cb(0);
- };
+ res = 0;
}
} else {
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (dblist.contains(ixdbid)) {
- if (ifnotexists) {
- if (cb) cb(0);
- return;
- } else {
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- }
- }
-
- var request2 = indexedDB.open(ixdbid, 1);
- request2.onsuccess = function(event) {
- event.target.result.close();
- if (cb) cb(1);
- };
- };
+ delete alasql.databases[dbid];
+ if (dbid === alasql.useid) {
+ alasql.use();
+ }
+ res = 1;
}
+ if (cb) cb(res);
+ return res;
+ // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb);
+ // return res;
};
-IDB.dropDatabase = function(ixdbid, ifexists, cb) {
- var indexedDB = utils.global.indexedDB;
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (!dblist.contains(ixdbid)) {
- if (ifexists) {
- if (cb) cb(0);
- return;
- } else {
- throw new Error(
- 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist'
- );
- }
- }
- var request2 = indexedDB.deleteDatabase(ixdbid);
- request2.onsuccess = function(event) {
-
- if (cb) cb(1);
- };
- };
+// USE DATABSE databaseid
+// USE databaseid
+yy.UseDatabase = function(params) {
+ return yy.extend(this, params);
};
-
-IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
- if (!utils.hasIndexedDB) {
- throw new Error('The current browser does not support IndexedDB');
+yy.UseDatabase.prototype.toString = function() {
+ return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid;
+};
+//yy.UseDatabase.prototype.compile = returnUndefined;
+yy.UseDatabase.prototype.execute = function(databaseid, params, cb) {
+ var dbid = this.databaseid;
+ if (!alasql.databases[dbid]) {
+ throw new Error("Database '" + dbid + "' does not exist");
}
- var indexedDB = utils.global.indexedDB;
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (!dblist.contains(ixdbid)) {
- throw new Error(
- 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist'
- );
- }
- var request2 = indexedDB.open(ixdbid);
- request2.onsuccess = function(event) {
- var ixdb = event.target.result;
- var db = new alasql.Database(dbid || ixdbid);
- db.engineid = 'INDEXEDDB';
- db.ixdbid = ixdbid;
- db.tables = [];
- var tblist = ixdb.objectStoreNames;
- for (var i = 0; i < tblist.length; i++) {
- db.tables[tblist[i]] = {};
- }
-
- event.target.result.close();
- if (cb) cb(1);
- };
- };
+ alasql.use(dbid);
+ var res = 1;
+ if (cb) cb(res);
+ return res;
};
-IDB.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var indexedDB = utils.global.indexedDB;
-
- var ixdbid = alasql.databases[databaseid].ixdbid;
-
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event__) {
- var dblist = event__.target.result;
- if (!dblist.contains(ixdbid)) {
- throw new Error(
- 'IndexedDB: Cannot create table in database "' +
- ixdbid +
- '" because it does not exist'
- );
- }
- var request2 = indexedDB.open(ixdbid);
- request2.onversionchange = function(event_) {
-
- event_.target.result.close();
- };
- request2.onsuccess = function(event_) {
- var version = event_.target.result.version;
- event_.target.result.close();
-
- var request3 = indexedDB.open(ixdbid, version + 1);
- request3.onupgradeneeded = function(event) {
- var ixdb = event.target.result;
-
- var store = ixdb.createObjectStore(tableid, {autoIncrement: true});
-
- };
- request3.onsuccess = function(event) {
-
- event.target.result.close();
- if (cb) cb(1);
- };
- request3.onerror = function(event) {
- throw event;
-
- };
- request3.onblocked = function(event) {
- throw new Error(
- 'Cannot create table "' +
- tableid +
- '" because database "' +
- databaseid +
- '" is blocked'
- );
-
- };
- };
- };
+// DROP DATABASE databaseid
+yy.DropDatabase = function(params) {
+ return yy.extend(this, params);
};
+yy.DropDatabase.prototype.toString = function() {
+ var s = 'DROP';
+ if (this.ifexists) s += ' IF EXISTS';
+ s += ' DATABASE ' + this.databaseid;
+ return s;
+};
+//yy.DropDatabase.prototype.compile = returnUndefined;
+yy.DropDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (this.engineid) {
+ return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb);
+ }
+ var res;
-IDB.dropTable = function(databaseid, tableid, ifexists, cb) {
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
-
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
+ var dbid = this.databaseid;
- if (!dblist.contains(ixdbid)) {
+ if (dbid === alasql.DEFAULTDATABASEID) {
+ throw new Error('Drop of default database is prohibited');
+ }
+ if (!alasql.databases[dbid]) {
+ if (!this.ifexists) {
+ throw new Error("Database '" + dbid + "' does not exist");
+ } else {
+ res = 0;
+ }
+ } else {
+ if (alasql.databases[dbid].engineid) {
throw new Error(
- 'IndexedDB: Cannot drop table in database "' +
- ixdbid +
- '" because it does not exist'
+ "Cannot drop database '" + dbid + "', because it is attached. Detach it."
);
}
- var request2 = indexedDB.open(ixdbid);
- request2.onversionchange = function(event) {
- event.target.result.close();
- };
-
- request2.onsuccess = function(event) {
- var version = event.target.result.version;
- event.target.result.close();
-
- var request3 = indexedDB.open(ixdbid, version + 1);
- request3.onupgradeneeded = function(event) {
- var ixdb = event.target.result;
- if (ixdb.objectStoreNames.contains(tableid)) {
- ixdb.deleteObjectStore(tableid);
- delete alasql.databases[databaseid].tables[tableid];
- } else {
- if (!ifexists) {
- throw new Error(
- 'IndexedDB: Cannot drop table "' +
- tableid +
- '" because it does not exist'
- );
- }
- }
- // var store = ixdb.createObjectStore(tableid);
-
- };
- request3.onsuccess = function(event) {
-
- event.target.result.close();
- if (cb) cb(1);
- };
- request3.onerror = function(event) {
-
- throw event;
- };
- request3.onblocked = function(event) {
- throw new Error(
- 'Cannot drop table "' +
- tableid +
- '" because database "' +
- databaseid +
- '" is blocked'
- );
-
- };
- };
- };
-};
-
-IDB.intoTable = function(databaseid, tableid, value, columns, cb) {
-
- // console.trace();
-
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request1 = indexedDB.open(ixdbid);
- request1.onsuccess = function(event) {
- var ixdb = event.target.result;
- var tx = ixdb.transaction([tableid], 'readwrite');
- var tb = tx.objectStore(tableid);
-
- for (var i = 0, ilen = value.length; i < ilen; i++) {
- tb.add(value[i]);
+ delete alasql.databases[dbid];
+ if (dbid === alasql.useid) {
+ alasql.use();
}
- tx.oncomplete = function() {
- ixdb.close();
-
- if (cb) cb(ilen);
- };
- };
-
+ res = 1;
+ }
+ if (cb) cb(res);
+ return res;
};
-IDB.fromTable = function(databaseid, tableid, cb, idx, query) {
-
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
- var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid]);
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
-
- if (cursor) {
- res.push(cursor.value);
- cursor.continue();
- } else {
+/*
+//
+// SET for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- ixdb.close();
- if (cb) cb(res, idx, query);
- }
- };
- };
+yy.Declare = function(params) {
+ return yy.extend(this, params);
+};
+yy.Declare.prototype.toString = function() {
+ var s = 'DECLARE ';
+ if (this.declares && this.declares.length > 0) {
+ s = this.declares
+ .map(function(declare) {
+ var s = '';
+ s += '@' + declare.variable + ' ';
+ s += declare.dbtypeid;
+ if (this.dbsize) {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) {
+ s += ',' + this.dbprecision;
+ }
+ s += ')';
+ }
+ if (declare.expression) {
+ s += ' = ' + declare.expression.toString();
+ }
+ return s;
+ })
+ .join(',');
+ }
+ return s;
};
-IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) {
-
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
- var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid], 'readwrite');
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
- var num = 0;
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
+yy.Declare.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (this.declares && this.declares.length > 0) {
+ this.declares.map(function(declare) {
+ var dbtypeid = declare.dbtypeid;
+ if (!alasql.fn[dbtypeid]) {
+ dbtypeid = dbtypeid.toUpperCase();
+ }
+ alasql.declares[declare.variable] = {
+ dbtypeid: dbtypeid,
+ dbsize: declare.dbsize,
+ dbprecision: declare.dbprecision,
+ };
- if (cursor) {
- if (!wherefn || wherefn(cursor.value, params)) {
+ // Set value
+ if (declare.expression) {
- cursor.delete();
- num++;
+ alasql.vars[declare.variable] = new Function(
+ 'params,alasql',
+ 'return ' + declare.expression.toJS('({})', '', null)
+ )(params, alasql);
+ if (alasql.declares[declare.variable]) {
+ alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
+ alasql.vars[declare.variable],
+ alasql.declares[declare.variable]
+ );
}
- cursor.continue();
- } else {
-
- ixdb.close();
- if (cb) cb(num);
}
- };
- };
+ });
+ }
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
};
-IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) {
+/*
+//
+// SHOW for Alasql.js
+// Date: 19.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
+yy.ShowDatabases = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowDatabases.prototype.toString = function() {
+ var s = 'SHOW DATABASES';
+ if (this.like) s += 'LIKE ' + this.like.toString();
+ return s;
+};
+yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) {
+ if (this.engineid) {
+ return alasql.engines[this.engineid].showDatabases(this.like, cb);
+ } else {
+ var self = this;
var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid], 'readwrite');
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
- var num = 0;
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
-
- if (cursor) {
- if (!wherefn || wherefn(cursor.value, params)) {
-
- var r = cursor.value;
- assignfn(r, params);
-
- cursor.update(r);
- num++;
- }
- cursor.continue();
- } else {
+ for (var dbid in alasql.databases) {
+ res.push({databaseid: dbid});
+ }
+ if (self.like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
+ return alasql.utils.like(self.like.value, d.databaseid);
+ });
+ }
+ if (cb) cb(res);
+ return res;
+ }
+};
- ixdb.close();
- if (cb) cb(num);
- }
- };
- };
+yy.ShowTables = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowTables.prototype.toString = function() {
+ var s = 'SHOW TABLES';
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ if (this.like) s += ' LIKE ' + this.like.toString();
+ return s;
};
+yy.ShowTables.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
-//
-// 91localstorage.js
-// localStorage and DOM-Storage engine
-// Date: 09.12.2014
-// (c) Andrey Gershun
-//
+ var self = this;
+ var res = [];
+ for (var tableid in db.tables) {
+ res.push({tableid: tableid});
+ }
+ if (self.like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
+ return alasql.utils.like(self.like.value, d.tableid);
+ });
+ }
+ if (cb) cb(res);
+ return res;
+};
-/* global alasql, yy, localStorage*/
+yy.ShowColumns = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowColumns.prototype.toString = function() {
+ var s = 'SHOW COLUMNS';
+ if (this.table.tableid) s += ' FROM ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
+};
-var LS = (alasql.engines.LOCALSTORAGE = function() {});
+yy.ShowColumns.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
-/**
- Read data from localStorage with security breaks
- @param key {string} Address in localStorage
- @return {object} JSON object
-*/
-LS.get = function(key) {
- var s = localStorage.getItem(key);
- if (typeof s === 'undefined') return;
- var v;
- try {
- v = JSON.parse(s);
- } catch (err) {
- throw new Error('Cannot parse JSON object from localStorage' + s);
+ if (table && table.columns) {
+ var res = table.columns.map(function(col) {
+ return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize};
+ });
+ if (cb) cb(res);
+ return res;
+ } else {
+ if (cb) cb([]);
+ return [];
}
- return v;
};
-/**
- Store data into localStorage with security breaks
- @param key {string} Address in localStorage
- @return {object} JSON object
-*/
-LS.set = function(key, value) {
- if (typeof value === 'undefined') localStorage.removeItem(key);
- else localStorage.setItem(key, JSON.stringify(value));
+yy.ShowIndex = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowIndex.prototype.toString = function() {
+ var s = 'SHOW INDEX';
+ if (this.table.tableid) s += ' FROM ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
};
+yy.ShowIndex.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
+ var res = [];
+ if (table && table.indices) {
+ for (var ind in table.indices) {
+ res.push({hh: ind, len: Object.keys(table.indices[ind]).length});
+ }
+ }
-/**
- Store table structure and data into localStorage
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @return Nothing
-*/
-LS.storeTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var table = db.tables[tableid];
- // Create empty structure for table
- var tbl = {};
- tbl.columns = table.columns;
- tbl.data = table.data;
- tbl.identities = table.identities;
- // TODO: May be add indexes, objects and other fields?
- LS.set(db.lsdbid + '.' + tableid, tbl);
+ if (cb) cb(res);
+ return res;
};
-/**
- Restore table structure and data
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @return Nothing
-*/
-LS.restoreTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var tbl = LS.get(db.lsdbid + '.' + tableid);
- var table = new alasql.Table();
- for (var f in tbl) {
- table[f] = tbl[f];
+yy.ShowCreateTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowCreateTable.prototype.toString = function() {
+ var s = 'SHOW CREATE TABLE ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
+};
+yy.ShowCreateTable.prototype.execute = function(databaseid) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
+ if (table) {
+ var s = 'CREATE TABLE ' + this.table.tableid + ' (';
+ var ss = [];
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ var a = col.columnid + ' ' + col.dbtypeid;
+ if (col.dbsize) a += '(' + col.dbsize + ')';
+ if (col.primarykey) a += ' PRIMARY KEY';
+ // TODO extend
+ ss.push(a);
+ });
+ s += ss.join(', ');
+ }
+ s += ')';
+ return s;
+ } else {
+ throw new Error('There is no such table "' + this.table.tableid + '"');
}
- db.tables[tableid] = table;
- table.indexColumns();
- // We need to add other things here
- return table;
};
-/**
- Remove table from localStorage
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
+/*
+//
+// SET for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
*/
-LS.removeTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- localStorage.removeItem(db.lsdbid + '.' + tableid);
+yy.SetVariable = function(params) {
+ return yy.extend(this, params);
+};
+yy.SetVariable.prototype.toString = function() {
+ var s = 'SET ';
+ if (typeof this.value != 'undefined')
+ s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF');
+ if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString();
+ return s;
};
-/**
- Create database in localStorage
- @param lsdbid {string} localStorage database id
- @param args {array} List of parameters (not used in localStorage)
- @param ifnotexists {boolean} Check if database does not exist
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param cb {function} Callback
-*/
+yy.SetVariable.prototype.execute = function(databaseid, params, cb) {
+
+ if (typeof this.value != 'undefined') {
+ var val = this.value;
+ if (val == 'ON') val = true;
+ else if (val == 'OFF') val = false;
+ // if(this.method == '@') {
+ alasql.options[this.variable] = val;
+ // } else {
+ // params[this.variable] = val;
+ // }
+ } else if (this.expression) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ return nq;
+ // return ex.compile(databaseid);
+ // TODO Include modifier
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ return nq;
+ // TODO Include modifier
+ });
+ }
+
+ var res = new Function(
+ 'params,alasql',
+ 'return ' + this.expression.toJS('({})', '', null)
+ ).bind(this)(params, alasql);
+ if (alasql.declares[this.variable]) {
+ res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]);
+ }
+ if (this.props && this.props.length > 0) {
+ if (this.method == '@') {
+ var fs = "alasql.vars['" + this.variable + "']";
+ } else {
+ var fs = "params['" + this.variable + "']";
+ }
+ fs += this.props
+ .map(function(prop) {
+ if (typeof prop == 'string') {
+ return "['" + prop + "']";
+ } else if (typeof prop == 'number') {
+ return '[' + prop + ']';
+ } else {
+
+ return '[' + prop.toJS() + ']';
+ // } else {
+
+ // throw new Error('Wrong SET property');
+ }
+ })
+ .join();
-LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) {
- var res = 1;
- var ls = LS.get('alasql'); // Read list of all databases
- if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) {
- if (!ls) ls = {databases: {}}; // Empty record
- if (ls.databases && ls.databases[lsdbid]) {
- throw new Error(
- 'localStorage: Cannot create new database "' +
- lsdbid +
- '" because it already exists'
- );
+ new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql);
+ } else {
+ if (this.method == '@') {
+ alasql.vars[this.variable] = res;
+ } else {
+ params[this.variable] = res;
+ }
}
- ls.databases[lsdbid] = true;
- LS.set('alasql', ls);
- LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record
- } else {
- res = 0;
}
+ var res = 1;
if (cb) res = cb(res);
return res;
};
-/**
- Drop external database
- @param lsdbid {string} localStorage database id
- @param ifexists {boolean} Check if database exists
- @param cb {function} Callback
-*/
-LS.dropDatabase = function(lsdbid, ifexists, cb) {
- var res = 1;
- var ls = LS.get('alasql');
- if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) {
- // 1. Remove record from 'alasql' record
- if (!ls) {
- if (!ifexists) {
- throw new Error('There is no any AlaSQL databases in localStorage');
- } else {
- return cb ? cb(0) : 0;
- }
- }
-
- if (ls.databases && !ls.databases[lsdbid]) {
- throw new Error(
- 'localStorage: Cannot drop database "' +
- lsdbid +
- '" because there is no such database'
- );
- }
- delete ls.databases[lsdbid];
- LS.set('alasql', ls);
+// Console functions
- // 2. Remove tables definitions
- var db = LS.get(lsdbid);
- for (var tableid in db.tables) {
- localStorage.removeItem(lsdbid + '.' + tableid);
- }
+/* global alasql, yy */
- // 3. Remove database definition
- localStorage.removeItem(lsdbid);
- } else {
- res = 0;
+alasql.test = function(name, times, fn) {
+ if (arguments.length === 0) {
+ alasql.log(alasql.con.results);
+ return;
}
- if (cb) res = cb(res);
- return res;
-};
-/**
- Attach existing localStorage database to AlaSQL database
- @param lsdibid {string} localStorage database id
- @param
-*/
+ var tm = Date.now();
-LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid]) {
- throw new Error(
- 'Unable to attach database as "' + databaseid + '" because it already exists'
- );
- }
- if (!databaseid) databaseid = lsdbid;
- var db = new alasql.Database(databaseid);
- db.engineid = 'LOCALSTORAGE';
- db.lsdbid = lsdbid;
- db.tables = LS.get(lsdbid).tables;
- // IF AUTOABORT IS OFF then copy data to memory
- if (!alasql.options.autocommit) {
- if (db.tables) {
- for (var tbid in db.tables) {
- LS.restoreTable(databaseid, tbid);
- // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
- }
- }
+ if (arguments.length === 1) {
+ fn();
+ alasql.con.log(Date.now() - tm);
+ return;
}
- if (cb) res = cb(res);
- return res;
-};
-/**
- Show list of databases from localStorage
- @param like {string} Mathing pattern
- @param cb {function} Callback
-*/
-LS.showDatabases = function(like, cb) {
- var res = [];
- var ls = LS.get('alasql');
- if (like) {
- // TODO: If we have a special function for LIKE patterns?
- var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g');
+ if (arguments.length === 2) {
+ fn = times;
+ times = 1;
}
- if (ls && ls.databases) {
- for (var dbid in ls.databases) {
- res.push({databaseid: dbid});
- }
- if (like && res && res.length > 0) {
- res = res.filter(function(d) {
- return d.databaseid.match(relike);
- });
- }
+
+ for (var i = 0; i < times; i++) {
+ fn();
}
- if (cb) res = cb(res);
- return res;
+ alasql.con.results[name] = Date.now() - tm;
};
-/**
- Create table in localStorage database
- @param databaseid {string} AlaSQL database id
- @param tableid {string} Table id
- @param ifnotexists {boolean} If not exists flag
- @param cb {function} Callback
-*/
-
-LS.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var tb = LS.get(lsdbid + '.' + tableid);
- // Check if such record exists
- if (tb && !ifnotexists) {
- throw new Error(
- 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"'
- );
- }
- var lsdb = LS.get(lsdbid);
- var table = alasql.databases[databaseid].tables[tableid];
+// Console
+// alasql.log = function(sql, params) {
- // TODO: Check if required
- lsdb.tables[tableid] = true;
+// };
- LS.set(lsdbid, lsdb);
- LS.storeTable(databaseid, tableid);
+/* global alasql, yy, utils */
- if (cb) res = cb(res);
- return res;
-};
+// Console
+alasql.log = function(sql, params) {
+ var olduseid = alasql.useid;
+ var target = alasql.options.logtarget;
+ // For node other
+ if (utils.isNode) {
+ target = 'console';
+ }
-/**
- Empty table and reset identities
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @param ifexists {boolean} If exists flag
- @param cb {function} Callback
- @return 1 on success
-*/
-LS.truncateTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb;
- if (alasql.options.autocommit) {
- lsdb = LS.get(lsdbid);
+ var res;
+ if (typeof sql === 'string') {
+ res = alasql(sql, params);
} else {
- lsdb = alasql.databases[databaseid];
+ res = sql;
}
- if (!ifexists && !lsdb.tables[tableid]) {
- throw new Error(
- 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist'
- );
- }
+ // For Node and console.output
+ if (target === 'console' || utils.isNode) {
+ if (typeof sql === 'string' && alasql.options.logprompt) {
+ console.log(olduseid + '>', sql);
+ }
- //load table
- var tbl = LS.restoreTable(databaseid, tableid);
+ if (Array.isArray(res)) {
+ if (console.table) {
+ // For Chrome and other consoles
+ console.table(res);
+ } else {
+ // Add print procedure
+ console.log(JSONtoString(res));
+ }
+ } else {
+ console.log(JSONtoString(res));
+ }
+ } else {
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
- //clear data from table
- tbl.data = [];
- //TODO reset all identities
- //but identities are not working on LOCALSTORAGE
- //See test 607 for details
+ var s = '';
- //store table
- LS.storeTable(databaseid, tableid);
+ if (typeof sql === 'string' && alasql.options.logprompt) {
+ // s += ''+olduseid+'> '+alasql.pretty(sql)+'
';
+ s += '' + alasql.pretty(sql) + ' ';
+ }
- if (cb) res = cb(res);
- return res;
+ if (Array.isArray(res)) {
+ if (res.length === 0) {
+ s += '[ ]
';
+ } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) {
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ s += '' + loghtml(res[i]) + '
';
+ }
+ } else {
+ s += loghtml(res);
+ }
+ } else {
+ s += loghtml(res);
+ }
+ el.innerHTML += s;
+ }
};
-/**
- Create table in localStorage database
- @param databaseid {string} AlaSQL database id
- @param tableid {string} Table id
- @param ifexists {boolean} If exists flag
- @param cb {function} Callback
-*/
-
-LS.dropTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb;
+alasql.clear = function() {
+ var target = alasql.options.logtarget;
+ // For node other
- if (alasql.options.autocommit) {
- lsdb = LS.get(lsdbid);
+ if (utils.isNode || utils.isMeteorServer) {
+ if (console.clear) {
+ console.clear();
+ }
} else {
- lsdb = alasql.databases[databaseid];
- }
- if (!ifexists && !lsdb.tables[tableid]) {
- throw new Error(
- 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist'
- );
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
+ el.innerHTML = '';
}
- delete lsdb.tables[tableid];
- LS.set(lsdbid, lsdb);
- // localStorage.removeItem(lsdbid+'.'+tableid);
- LS.removeTable(databaseid, tableid);
- if (cb) res = cb(res);
- return res;
};
-/**
- Read all data from table
-*/
-
-LS.fromTable = function(databaseid, tableid, cb, idx, query) {
-
- var lsdbid = alasql.databases[databaseid].lsdbid;
- // var res = LS.get(lsdbid+'.'+tableid);
-
- var res = LS.restoreTable(databaseid, tableid).data;
+alasql.write = function(s) {
- if (cb) res = cb(res, idx, query);
- return res;
+ var target = alasql.options.logtarget;
+ // For node other
+ if (utils.isNode || utils.isMeteorServer) {
+ if (console.log) {
+ console.log(s);
+ }
+ } else {
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
+ el.innerHTML += s;
+ }
};
-/**
- Insert data into the table
- @param databaseid {string} Database id
- @param tableid {string} Table id
- @param value {array} Array of values
- @param columns {array} Columns (not used)
- @param cb {function} Callback
-*/
+function loghtml(res) {
+
+ var s = '';
+ if (res === undefined) {
+ s += 'undefined';
+ } else if (Array.isArray(res)) {
+ s += '';
+ s += '';
+ var cols = [];
+ for (var colid in res[0]) {
+ cols.push(colid);
+ }
+ s += '#';
+ cols.forEach(function(colid) {
+ s += ' ' + colid;
+ });
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ s += ' ' + (i + 1);
+ cols.forEach(function(colid) {
+ s += ' ';
+ if (res[i][colid] == +res[i][colid]) {
+ // jshint ignore:line
+ s += '';
+ if (typeof res[i][colid] === 'undefined') {
+ s += 'NULL';
+ } else {
+ s += res[i][colid];
+ }
+ s += '
';
+ } else {
+ if (typeof res[i][colid] === 'undefined') {
+ s += 'NULL';
+ } else if (typeof res[i][colid] === 'string') {
+ s += res[i][colid];
+ } else {
+ s += JSONtoString(res[i][colid]);
+ }
+ // s += res[i][colid];
+ }
+ });
+ }
-LS.intoTable = function(databaseid, tableid, value, columns, cb) {
+ s += '
';
+ } else {
+ s += '' + JSONtoString(res) + '
';
+ }
+ // if() {}
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var res = value.length;
- // var tb = LS.get(lsdbid+'.'+tableid);
- var tb = LS.restoreTable(databaseid, tableid);
- for (var columnid in tb.identities) {
- var ident = tb.identities[columnid];
+ // if(typeof res == 'object') {
+ // s += ''+JSON.stringify(res)+'
';
+ // } else {
+ // }
+ return s;
+}
- for (var index in value) {
- value[index][columnid] = ident.value;
- ident.value += ident.step;
- }
+function scrollTo(element, to, duration) {
+ if (duration <= 0) {
+ return;
}
- if (!tb.data) tb.data = [];
- tb.data = tb.data.concat(value);
- // LS.set(lsdbid+'.'+tableid, tb);
- LS.storeTable(databaseid, tableid);
-
- if (cb) res = cb(res);
+ var difference = to - element.scrollTop;
+ var perTick = (difference / duration) * 10;
- return res;
-};
+ setTimeout(function() {
+ if (element.scrollTop === to) {
+ return;
+ }
+ element.scrollTop = element.scrollTop + perTick;
+ scrollTo(element, to, duration - 10);
+ }, 10);
+}
-/**
- Laad data from table
-*/
-LS.loadTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- LS.restoreTable(databaseid, tableid);
- // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid);
-};
+alasql.prompt = function(el, useidel, firstsql) {
+ if (utils.isNode) {
+ throw new Error('The prompt not realized for Node.js');
+ }
-/**
- Save data to the table
-*/
+ var prompti = 0;
-LS.saveTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- LS.storeTable(lsdbid, tableid);
- // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data);
- db.tables[tableid].data = undefined;
-};
+ if (typeof el === 'string') {
+ el = document.getElementById(el);
+ }
-/**
- Commit
-*/
+ if (typeof useidel === 'string') {
+ useidel = document.getElementById(useidel);
+ }
-LS.commit = function(databaseid, cb) {
+ useidel.textContent = alasql.useid;
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb = {databaseid: lsdbid, tables: {}};
- if (db.tables) {
- for (var tbid in db.tables) {
- // TODO: Question - do we need this line
- lsdb.tables[tbid] = true;
- LS.storeTable(databaseid, tbid);
- // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data);
+ if (firstsql) {
+ alasql.prompthistory.push(firstsql);
+ prompti = alasql.prompthistory.length;
+ try {
+ var tm = Date.now();
+ alasql.log(firstsql);
+ alasql.write('' + (Date.now() - tm) + ' ms
');
+ } catch (err) {
+ alasql.write('' + olduseid + '> ' + sql + '
');
+ alasql.write('' + err + '
');
}
}
- LS.set(lsdbid, lsdb);
- return cb ? cb(1) : 1;
-};
-
-/**
- Alias BEGIN = COMMIT
-*/
-LS.begin = LS.commit;
-
-/**
- ROLLBACK
-*/
-
-LS.rollback = function(databaseid, cb) {
- // This does not work and should be fixed
- // Plus test 151 and 231
-
- return;
-
- var db = alasql.databases[databaseid];
- db.dbversion++;
-
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb = LS.get(lsdbid);
- // if(!alasql.options.autocommit) {
-
- delete alasql.databases[databaseid];
- alasql.databases[databaseid] = new alasql.Database(databaseid);
- extend(alasql.databases[databaseid], lsdb);
- alasql.databases[databaseid].databaseid = databaseid;
- alasql.databases[databaseid].engineid = 'LOCALSTORAGE';
- if (lsdb.tables) {
- for (var tbid in lsdb.tables) {
- // var tb = new alasql.Table({columns: db.tables[tbid].columns});
- // extend(tb,lsdb.tables[tbid]);
- // lsdb.tables[tbid] = true;
-
- // if(!alasql.options.autocommit) {
+ var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
+ scrollTo(document.getElementsByTagName('body')[0], y, 500);
- // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
- LS.restoreTable(databaseid, tbid);
- // }
- // lsdb.tables[tbid].indexColumns();
+ el.onkeydown = function(event) {
+ if (event.which === 13) {
+ var sql = el.value;
+ var olduseid = alasql.useid;
+ el.value = '';
+ alasql.prompthistory.push(sql);
+ prompti = alasql.prompthistory.length;
+ try {
+ var tm = Date.now();
+ alasql.log(sql);
+ alasql.write('
' + (Date.now() - tm) + ' ms
');
+ } catch (err) {
+ alasql.write('' + olduseid + '> ' + alasql.pretty(sql, false) + '
');
+ alasql.write('' + err + '
');
+ }
+ el.focus();
- // index columns
- // convert types
+ useidel.textContent = alasql.useid;
+ var y =
+ el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
+ scrollTo(document.getElementsByTagName('body')[0], y, 500);
+ } else if (event.which === 38) {
+ prompti--;
+ if (prompti < 0) {
+ prompti = 0;
+ }
+ if (alasql.prompthistory[prompti]) {
+ el.value = alasql.prompthistory[prompti];
+ event.preventDefault();
+ }
+ } else if (event.which === 40) {
+ prompti++;
+ if (prompti >= alasql.prompthistory.length) {
+ prompti = alasql.prompthistory.length;
+ el.value = '';
+ } else if (alasql.prompthistory[prompti]) {
+ el.value = alasql.prompthistory[prompti];
+ event.preventDefault();
+ }
}
- }
- // }
-
+ };
};
+/*
//
-// 91websql.js
-// WebSQL database support
+// Commit for Alasql.js
+// Date: 01.12.2014
// (c) 2014, Andrey Gershun
//
-
-var SQLITE = (alasql.engines.SQLITE = function() {});
-
-SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) {
- throw new Error('Connot create SQLITE database in memory. Attach it.');
+*/
+yy.BeginTransaction = function(params) {
+ return yy.extend(this, params);
};
-
-SQLITE.dropDatabase = function(databaseid) {
- throw new Error('This is impossible to drop SQLite database. Detach it.');
+yy.BeginTransaction.prototype.toString = function() {
+ return 'BEGIN TRANSACTION';
};
-SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) {
+yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) {
var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb);
+ } else {
+ // alasql commit!!!
}
+ if (cb) cb(res);
+ return res;
+};
- if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) {
- if (args[0] instanceof yy.StringValue) {
- var value = args[0].value;
- } else if (args[0] instanceof yy.ParamValue) {
- var value = params[args[0].param];
- }
- alasql.utils.loadBinaryFile(
- value,
- true,
- function(data) {
- var db = new alasql.Database(dbid || sqldbid);
- db.engineid = 'SQLITE';
- db.sqldbid = sqldbid;
- var sqldb = (db.sqldb = new SQL.Database(data));
- db.tables = [];
- var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;
-
- tables.forEach(function(tbl) {
- db.tables[tbl[1]] = {};
- var columns = (db.tables[tbl[1]].columns = []);
- var ast = alasql.parse(tbl[4]);
-
- var coldefs = ast.statements[0].columns;
- if (coldefs && coldefs.length > 0) {
- coldefs.forEach(function(cd) {
- columns.push(cd);
- });
- }
- });
+yy.CommitTransaction = function(params) {
+ return yy.extend(this, params);
+};
+yy.CommitTransaction.prototype.toString = function() {
+ return 'COMMIT TRANSACTION';
+};
- cb(1);
- },
- function(err) {
- throw new Error('Cannot open SQLite database file "' + args[0].value + '"');
- }
- );
- return res;
+yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb);
} else {
- throw new Error('Cannot attach SQLite database without a file');
+ // alasql commit!!!
}
-
+ if (cb) cb(res);
return res;
};
-SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) {
- var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid);
- var columns = (query.sources[idx].columns = []);
- if (data[0].columns.length > 0) {
- data[0].columns.forEach(function(columnid) {
- columns.push({columnid: columnid});
- });
- }
+yy.RollbackTransaction = function(params) {
+ return yy.extend(this, params);
+};
+yy.RollbackTransaction.prototype.toString = function() {
+ return 'ROLLBACK TRANSACTION';
+};
- var res = [];
- if (data[0].values.length > 0) {
- data[0].values.forEach(function(d) {
- var r = {};
- columns.forEach(function(col, idx) {
- r[col.columnid] = d[idx];
- });
- res.push(r);
- });
- }
- if (cb) cb(res, idx, query);
-};
-
-SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) {
- var sqldb = alasql.databases[databaseid].sqldb;
- for (var i = 0, ilen = value.length; i < ilen; i++) {
- var s = 'INSERT INTO ' + tableid + ' (';
- var d = value[i];
- var keys = Object.keys(d);
- s += keys.join(',');
- s += ') VALUES (';
- s += keys
- .map(function(k) {
- v = d[k];
- if (typeof v == 'string') v = "'" + v + "'";
- return v;
- })
- .join(',');
- s += ')';
- sqldb.exec(s);
+yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb);
+ } else {
+ // alasql commit!!!
}
- var res = ilen;
if (cb) cb(res);
return res;
};
-//
-// 91localstorage.js
-// localStorage and DOM-Storage engine
-// Date: 09.12.2014
-// (c) Andrey Gershun
-//
+if (alasql.options.tsql) {
+ //
+ // Check tables and views
+ // IF OBJECT_ID('dbo.Employees') IS NOT NULL
+ // DROP TABLE dbo.Employees;
+ // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL
+ // DROP VIEW dbo.VSortedOrders;
+
+ alasql.stdfn.OBJECT_ID = function(name, type) {
+ if (typeof type == 'undefined') type = 'T';
+ type = type.toUpperCase();
+
+ var sname = name.split('.');
+ var dbid = alasql.useid;
+ var objname = sname[0];
+ if (sname.length == 2) {
+ dbid = sname[0];
+ objname = sname[1];
+ }
+
+ var tables = alasql.databases[dbid].tables;
+ dbid = alasql.databases[dbid].databaseid;
+ for (var tableid in tables) {
+ if (tableid == objname) {
+ // TODO: What OBJECT_ID actually returns
+
+ if (tables[tableid].view && type == 'V') return dbid + '.' + tableid;
+ if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid;
+ return undefined;
+ }
+ }
+
+ return undefined;
+ };
+}
-var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {});
+if (alasql.options.mysql) {
+}
-FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) {
+if (alasql.options.mysql || alasql.options.sqlite) {
+ // Pseudo INFORMATION_SCHEMA function
+ alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) {
+ if (filename == 'VIEWS' || filename == 'TABLES') {
+ var res = [];
+ for (var databaseid in alasql.databases) {
+ var tables = alasql.databases[databaseid].tables;
+ for (var tableid in tables) {
+ if (
+ (tables[tableid].view && filename == 'VIEWS') ||
+ (!tables[tableid].view && filename == 'TABLES')
+ ) {
+ res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid});
+ }
+ }
+ }
+ if (cb) res = cb(res, idx, query);
+ return res;
+ }
+ throw new Error('Unknown INFORMATION_SCHEMA table');
+ };
+}
- var res = 1;
- var filename = args[0].value;
+if (alasql.options.postgres) {
+}
- alasql.utils.fileExists(filename, function(fex) {
+if (alasql.options.oracle) {
+}
- if (fex) {
- if (ifnotexists) {
- res = 0;
- if (cb) res = cb(res);
- return res;
- } else {
- throw new Error('Cannot create new database file, because it already exists');
- }
- } else {
- var data = {tables: {}};
- alasql.utils.saveFile(filename, JSON.stringify(data), function(data) {
- if (cb) res = cb(res);
- });
- }
- });
- return res;
-};
+if (alasql.options.sqlite) {
+}
-FS.dropDatabase = function(fsdbid, ifexists, cb) {
- var res;
- var filename = fsdbid.value;
+//
+// into functions
+//
+// (c) 2014 Andrey Gershun
+//
+
+alasql.into.SQL = function(filename, opts, data, columns, cb) {
+ var res;
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+ if (typeof opt.tableid === 'undefined') {
+ throw new Error('Table for INSERT TO is not defined.');
+ }
+
+ var s = '';
+ if (columns.length === 0) {
+ if (typeof data[0] === 'object') {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ } else {
+ // What should I do?
+ // columns = [{columnid:"_"}];
+ }
+ }
+
+ for (var i = 0, ilen = data.length; i < ilen; i++) {
+ s += 'INSERT INTO ' + opts.tableid + '(';
+ s += columns
+ .map(function(col) {
+ return col.columnid;
+ })
+ .join(',');
+ s += ') VALUES (';
+ s += columns.map(function(col) {
+ var val = data[i][col.columnid];
+ if (col.typeid) {
+ if (
+ col.typeid === 'STRING' ||
+ col.typeid === 'VARCHAR' ||
+ col.typeid === 'NVARCHAR' ||
+ col.typeid === 'CHAR' ||
+ col.typeid === 'NCHAR'
+ ) {
+ val = "'" + escapeqq(val) + "'";
+ }
+ } else {
+ if (typeof val == 'string') {
+ val = "'" + escapeqq(val) + "'";
+ }
+ }
+ return val;
+ });
+ s += ');\n';
+ }
+ // if(filename === '') {
+ // res = s;
+ // } else {
+ // res = data.length;
+ filename = alasql.utils.autoExtFilename(filename, 'sql', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.HTML = function(selector, opts, data, columns, cb) {
+ var res = 1;
+ if (typeof exports !== 'object') {
+ var opt = {headers: true};
+ alasql.utils.extend(opt, opts);
+
+ var sel = document.querySelector(selector);
+ if (!sel) {
+ throw new Error('Selected HTML element is not found');
+ }
+
+ if (columns.length === 0) {
+ if (typeof data[0] === 'object') {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ } else {
+ // What should I do?
+ // columns = [{columnid:"_"}];
+ }
+ }
+
+ var tbe = document.createElement('table');
+ var thead = document.createElement('thead');
+ tbe.appendChild(thead);
+ if (opt.headers) {
+ var tre = document.createElement('tr');
+ for (var i = 0; i < columns.length; i++) {
+ var the = document.createElement('th');
+ the.textContent = columns[i].columnid;
+ tre.appendChild(the);
+ }
+ thead.appendChild(tre);
+ }
+
+ var tbody = document.createElement('tbody');
+ tbe.appendChild(tbody);
+ for (var j = 0; j < data.length; j++) {
+ var tre = document.createElement('tr');
+ for (var i = 0; i < columns.length; i++) {
+ var the = document.createElement('td');
+ the.textContent = data[j][columns[i].columnid];
+ tre.appendChild(the);
+ }
+ tbody.appendChild(tre);
+ }
+ alasql.utils.domEmptyChildren(sel);
+
+ sel.appendChild(tbe);
+ }
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.JSON = function(filename, opts, data, columns, cb) {
+ var res = 1;
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+ var s = JSON.stringify(data);
+
+ filename = alasql.utils.autoExtFilename(filename, 'json', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.TXT = function(filename, opts, data, columns, cb) {
+ // If columns is empty
+ if (columns.length === 0 && data.length > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ // If one parameter
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ var res = data.length;
+ var s = '';
+ if (data.length > 0) {
+ var key = columns[0].columnid;
+ s += data
+ .map(function(d) {
+ return d[key];
+ })
+ .join('\n');
+ }
+
+ // } else {
+ // if(utils.isNode) {
+ // process.stdout.write(s);
+ // } else {
+
+ // };
+ // }
+ filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) {
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+ opt.separator = '\t';
+ filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
+ opt.autoExt = false;
+ return alasql.into.CSV(filename, opt, data, columns, cb);
+};
+
+alasql.into.CSV = function(filename, opts, data, columns, cb) {
+ if (columns.length === 0 && data.length > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ var opt = {headers: true};
+ //opt.separator = ',';
+ opt.separator = ';';
+ opt.quote = '"';
+
+ opt.utf8Bom = true;
+ if (opts && !opts.headers && typeof opts.headers !== 'undefined') {
+ opt.utf8Bom = false;
+ }
+
+ alasql.utils.extend(opt, opts);
+ var res = data.length;
+ var s = opt.utf8Bom ? '\ufeff' : '';
+ if (opt.headers) {
+ s +=
+ opt.quote +
+ columns
+ .map(function(col) {
+ return col.columnid.trim();
+ })
+ .join(opt.quote + opt.separator + opt.quote) +
+ opt.quote +
+ '\r\n';
+ }
+
+ data.forEach(function(d) {
+ s +=
+ columns
+ .map(function(col) {
+ var s = d[col.columnid];
+ // escape the character wherever it appears in the field
+ if (opt.quote !== '') {
+ s = (s + '').replace(
+ new RegExp('\\' + opt.quote, 'g'),
+ opt.quote + opt.quote
+ );
+ }
+ // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote;
+
+ //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV
+ if (+s != s) {
+ // jshint ignore:line
+ s = opt.quote + s + opt.quote;
+ }
+
+ return s;
+ })
+ .join(opt.separator) + '\r\n';
+ });
+
+ filename = alasql.utils.autoExtFilename(filename, 'csv', opts);
+ res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true});
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+//
+// 831xl.js - Coloring Excel
+// 18.04.2015
+// Generate XLS file with colors and styles
+// with Excel
+
+alasql.into.XLS = function(filename, opts, data, columns, cb) {
+ // If filename is not defined then output to the result
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ // Set sheets
+ var sheets = {};
+ if (opts && opts.sheets) {
+ sheets = opts.sheets;
+ }
+
+ // Default sheet
+ var sheet = {headers: true};
+ if (typeof sheets['Sheet1'] != 'undefined') {
+ sheet = sheets[0];
+ } else {
+ if (typeof opts != 'undefined') {
+ sheet = opts;
+ }
+ }
+
+ // Set sheet name and default is 'Sheet1'
+ if (typeof sheet.sheetid == 'undefined') {
+ sheet.sheetid = 'Sheet1';
+ }
+
+ var s = toHTML();
+
+ // File is ready to save
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ var res = alasql.utils.saveFile(filename, s);
+ if (cb) res = cb(res);
+ return res;
+
+ function toHTML() {
+ // Generate prologue
+ var s =
+ '
\
+ \
+ ';
+
+ // Generate body
+ s += '';
+ s += '';
+ if (typeof sheet.caption != 'undefined') {
+ var caption = sheet.caption;
+ if (typeof caption == 'string') {
+ caption = {title: caption};
+ }
+ s += '';
+ s += caption.title;
+ s += ' ';
+ }
+
+ // Columns
+
+ // var columns = [];
+
+ // If columns defined in sheet, then take them
+ if (typeof sheet.columns != 'undefined') {
+ columns = sheet.columns;
+ } else {
+ // Autogenerate columns if they are passed as parameters
+ if (columns.length == 0 && data.length > 0) {
+ if (typeof data[0] == 'object') {
+ if (Array.isArray(data[0])) {
+ columns = data[0].map(function(d, columnidx) {
+ return {columnid: columnidx};
+ });
+ } else {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ }
+ }
+ }
+
+ // Prepare columns
+ columns.forEach(function(column, columnidx) {
+ if (typeof sheet.column != 'undefined') {
+ extend(column, sheet.column);
+ }
+
+ if (typeof column.width == 'undefined') {
+ if (sheet.column && sheet.column.width != 'undefined') {
+ column.width = sheet.column.width;
+ } else {
+ column.width = '120px';
+ }
+ }
+ if (typeof column.width == 'number') column.width = column.width + 'px';
+ if (typeof column.columnid == 'undefined') column.columnid = columnidx;
+ if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
+ if (sheet.headers && Array.isArray(sheet.headers))
+ column.title = sheet.headers[columnidx];
+ });
+
+ // Set columns widths
+ s += '';
+ columns.forEach(function(column) {
+ s += ' ';
+ });
+ s += ' ';
+
+ // Headers
+ if (sheet.headers) {
+ s += '';
+ s += '';
+
+ // TODO: Skip columns to body
+
+ // Headers
+ columns.forEach(function(column, columnidx) {
+ s += '';
+
+ // Column title
+ if (typeof column.title != 'undefined') {
+ if (typeof column.title == 'function') {
+ s += column.title(sheet, column, columnidx);
+ } else {
+ s += column.title;
+ }
+ }
+ s += ' ';
+ });
+
+ s += ' ';
+ s += ' ';
+ }
+
+ s += '';
+
+ // TODO: Skip lines between header and body
+
+ if (data && data.length > 0) {
+ // TODO: Skip columns to body
+
+ // Loop over data rows
+ data.forEach(function(row, rowidx) {
+ // Limit number of rows on the sheet
+ if (rowidx > sheet.limit) return;
+ // Create row
+ s += '';
+ // Loop over columns
+ columns.forEach(function(column, columnidx) {
+ // Parameters
+ var cell = {};
+ extend(cell, sheet.cell);
+ extend(cell, srow.cell);
+ if (typeof sheet.column != 'undefined') {
+ extend(cell, sheet.column.cell);
+ }
+ extend(cell, column.cell);
+ if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
+ extend(cell, sheet.cells[rowidx][columnidx]);
+ }
+
+ // Create value
+ var value = row[column.columnid];
+ if (typeof cell.value == 'function') {
+ value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ // Define cell type
+ var typeid = cell.typeid;
+ if (typeof typeid == 'function') {
+ typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ if (typeof typeid == 'undefined') {
+ if (typeof value == 'number') typeid = 'number';
+ else if (typeof value == 'string') typeid = 'string';
+ else if (typeof value == 'boolean') typeid = 'boolean';
+ else if (typeof value == 'object') {
+ if (value instanceof Date) typeid = 'date';
+ }
+ }
+
+ var typestyle = '';
+
+ if (typeid == 'money') {
+ typestyle =
+ 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
+ } else if (typeid == 'number') {
+ typestyle = ' ';
+ } else if (typeid == 'date') {
+ typestyle = 'mso-number-format:"Short Date";';
+ } else {
+ // FOr other types is saved
+ if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
+ typestyle = opts.types[typeid].typestyle;
+ }
+ }
+
+ // TODO Replace with extend...
+ typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
+
+ s += "';
+
+ // TODO Replace with extend...
+ var format = cell.format;
+ if (typeof value == 'undefined') {
+ s += '';
+ } else if (typeof format != 'undefined') {
+ if (typeof format == 'function') {
+ s += format(value);
+ } else if (typeof format == 'string') {
+ s += value; // TODO - add string format
+ } else {
+ throw new Error('Unknown format type. Should be function or string');
+ }
+ } else {
+ if (typeid == 'number' || typeid == 'date') {
+ s += value.toString();
+ } else if (typeid == 'money') {
+ s += (+value).toFixed(2);
+ } else {
+ s += value;
+ }
+ }
+ s += ' ';
+ });
+
+ s += ' ';
+ });
+ }
+
+ s += ' ';
+
+ // Generate epilogue
+ s += '
';
+ s += '';
+ s += '';
+
+ return s;
+ }
+
+ // Style function
+ function style(a) {
+ var s = ' style="';
+ if (a && typeof a.style != 'undefined') {
+ s += a.style + ';';
+ }
+ s += '" ';
+ return s;
+ }
+};
+
+alasql.into.XLSXML = function(filename, opts, data, columns, cb) {
+ opts = opts || {};
+
+ // If filename is not defined then output to the result
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ // Set sheets
+ var sheets = {};
+ var sheetsdata;
+ var sheetscolumns;
+ if (opts && opts.sheets) {
+ sheets = opts.sheets;
+ // data and columns are already an array for the sheets
+ sheetsdata = data;
+ sheetscolumns = columns;
+ } else {
+ sheets.Sheet1 = opts;
+ // wrapd ata and columns array for single sheet
+ sheetsdata = [data];
+ sheetscolumns = [columns];
+ }
+
+ // File is ready to save
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ var res = alasql.utils.saveFile(filename, toXML());
+ if (cb) res = cb(res);
+ return res;
+
+ function toXML() {
+ var s1 =
+ ' \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ 0 \
+ \
+ \
+ ';
+
+ var s2 = ''; // for styles
+
+ var s3 = ' ';
+
+ var styles = {}; // hash based storage for styles
+ var stylesn = 62; // First style
+
+ // Generate style
+ function hstyle(st) {
+ // Prepare string
+ var s = '';
+ for (var key in st) {
+ s += '<' + key;
+ for (var attr in st[key]) {
+ s += ' ';
+ if (attr.substr(0, 2) == 'x:') {
+ s += attr;
+ } else {
+ s += 'ss:';
+ }
+ s += attr + '="' + st[key][attr] + '"';
+ }
+ s += '/>';
+ }
+
+ var hh = hash(s);
+ // Store in hash
+ if (styles[hh]) {
+ } else {
+ styles[hh] = {styleid: stylesn};
+ s2 += '';
+ stylesn++;
+ }
+ return 's' + styles[hh].styleid;
+ }
+
+ function values(obj) {
+ try {
+ return Object.values(obj);
+ } catch (e) {
+ // support for older runtimes
+ return Object.keys(obj).map(function(e) {
+ return obj[e];
+ });
+ }
+ }
+
+ var sheetidx = 0;
+ for (var sheetid in sheets) {
+ var sheet = sheets[sheetid];
+ var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++;
+ var data = values(sheetsdata[idx]);
+ // If columns defined in sheet, then take them
+ var columns = undefined;
+ if (typeof sheet.columns != 'undefined') {
+ columns = sheet.columns;
+ } else {
+ // Autogenerate columns if they are passed as parameters
+ columns = sheetscolumns[idx];
+ if (columns === undefined || (columns.length == 0 && data.length > 0)) {
+ if (typeof data[0] == 'object') {
+ if (Array.isArray(data[0])) {
+ columns = data[0].map(function(d, columnidx) {
+ return {columnid: columnidx};
+ });
+ } else {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ }
+ }
+ }
+
+ // Prepare columns
+ columns.forEach(function(column, columnidx) {
+ if (typeof sheet.column != 'undefined') {
+ extend(column, sheet.column);
+ }
+
+ if (typeof column.width == 'undefined') {
+ if (sheet.column && typeof sheet.column.width != 'undefined') {
+ column.width = sheet.column.width;
+ } else {
+ column.width = 120;
+ }
+ }
+ if (typeof column.width == 'number') column.width = column.width;
+ if (typeof column.columnid == 'undefined') column.columnid = columnidx;
+ if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
+ if (sheet.headers && Array.isArray(sheet.headers))
+ column.title = sheet.headers[columnidx];
+ });
+
+ // Header
+ s3 +=
+ ' \
+ ';
+
+ columns.forEach(function(column, columnidx) {
+ s3 +=
+ ' ';
+ });
+
+ // Headers
+ if (sheet.headers) {
+ s3 += '';
+
+ // TODO: Skip columns to body
+
+ // Headers
+ columns.forEach(function(column, columnidx) {
+ s3 += '';
+
+ // Column title
+ if (typeof column.title != 'undefined') {
+ if (typeof column.title == 'function') {
+ s3 += column.title(sheet, column, columnidx);
+ } else {
+ s3 += column.title;
+ }
+ }
+ s3 += ' | ';
+ });
+
+ s3 += '
';
+ }
+
+ // Data
+ if (data && data.length > 0) {
+ // Loop over data rows
+ data.forEach(function(row, rowidx) {
+ // Limit number of rows on the sheet
+ if (rowidx > sheet.limit) return;
+
+ // Extend row properties
+ var srow = {};
+ extend(srow, sheet.row);
+ if (sheet.rows && sheet.rows[rowidx]) {
+ extend(srow, sheet.rows[rowidx]);
+ }
+
+ s3 += ''; //'ss:AutoFitHeight="0">'
+
+ // Data
+ columns.forEach(function(column, columnidx) {
+ // Parameters
+ var cell = {};
+ extend(cell, sheet.cell);
+ extend(cell, srow.cell);
+ if (typeof sheet.column != 'undefined') {
+ extend(cell, sheet.column.cell);
+ }
+ extend(cell, column.cell);
+ if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
+ extend(cell, sheet.cells[rowidx][columnidx]);
+ }
+
+ // Create value
+ var value = row[column.columnid];
+ if (typeof cell.value == 'function') {
+ value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ // Define cell type
+ var typeid = cell.typeid;
+ if (typeof typeid == 'function') {
+ typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ if (typeof typeid == 'undefined') {
+ if (typeof value == 'number') typeid = 'number';
+ else if (typeof value == 'string') typeid = 'string';
+ else if (typeof value == 'boolean') typeid = 'boolean';
+ else if (typeof value == 'object') {
+ if (value instanceof Date) typeid = 'date';
+ }
+ }
+
+ var Type = 'String';
+ if (typeid == 'number') Type = 'Number';
+ else if (typeid == 'date') Type = 'Date';
+ // TODO: What else?
+
+ // Prepare Data types styles
+ var typestyle = '';
+
+ if (typeid == 'money') {
+ typestyle =
+ 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
+ } else if (typeid == 'number') {
+ typestyle = ' ';
+ } else if (typeid == 'date') {
+ typestyle = 'mso-number-format:"Short Date";';
+ } else {
+ // For other types is saved
+ if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
+ typestyle = opts.types[typeid].typestyle;
+ }
+ }
+
+ // TODO Replace with extend...
+ typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
+
+ s3 += '';
+
+ s3 += '';
+
+ // TODO Replace with extend...
+ var format = cell.format;
+ if (typeof value == 'undefined') {
+ s3 += '';
+ } else if (typeof format != 'undefined') {
+ if (typeof format == 'function') {
+ s3 += format(value);
+ } else if (typeof format == 'string') {
+ s3 += value; // TODO - add string format
+ } else {
+ throw new Error(
+ 'Unknown format type. Should be function or string'
+ );
+ }
+ } else {
+ if (typeid == 'number' || typeid == 'date') {
+ s3 += value.toString();
+ } else if (typeid == 'money') {
+ s3 += (+value).toFixed(2);
+ } else {
+ s3 += value;
+ }
+ }
+
+ // s3 += row[column.columnid];
+ s3 += ' | ';
+ });
+
+ s3 += '
';
+ });
+ }
+ // Finish
+ s3 += '
';
+ }
+
+ s3 += ' ';
+
+ return s1 + s2 + s3;
+ }
+};
+
+/**
+ Export to XLSX function
+ @function
+ @param {string|object} filename Filename or options
+ @param {object|undefined} opts Options or undefined
+ @param {array} data Data
+ @param {array} columns Columns
+ @parab {callback} cb Callback function
+ @return {number} Number of files processed
+*/
+
+alasql.into.XLSX = function(filename, opts, data, columns, cb) {
+ /** @type {number} result */
+ var res = 1;
+
+ if (deepEqual(columns, [{columnid: '_'}])) {
+ data = data.map(function(dat) {
+ return dat._;
+ });
+ columns = undefined;
+ // res = [{_:1}];
+ } else {
+ // data = data1;
+ }
+
+ filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
+
+ var XLSX = getXLSX();
+
+ /* If called without filename, use opts */
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ /** @type {object} Workbook */
+ var wb = {SheetNames: [], Sheets: {}};
+
+ // ToDo: check if cb must be treated differently here
+ if (opts.sourcefilename) {
+ alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) {
+ wb = XLSX.read(data, {type: 'binary'});
+ doExport();
+ });
+ } else {
+ doExport();
+ }
+
+ /* Return result */
+ if (cb) res = cb(res);
+ return res;
+
+ /**
+ Export workbook
+ @function
+ */
+ function doExport() {
+ /*
+ If opts is array of arrays then this is a
+ multisheet workboook, else it is a singlesheet
+ */
+ if (typeof opts == 'object' && Array.isArray(opts)) {
+ if (data && data.length > 0) {
+ data.forEach(function(dat, idx) {
+ prepareSheet(opts[idx], dat, undefined, idx + 1);
+ });
+ }
+ } else {
+ prepareSheet(opts, data, columns, 1);
+ }
+
+ saveWorkbook(cb);
+ }
+
+ /**
+ Prepare sheet
+ @params {object} opts
+ @params {array|object} data
+ @params {array} columns Columns
+ */
+ function prepareSheet(opts, data, columns, idx) {
+ /** Default options for sheet */
+ var opt = {sheetid: 'Sheet ' + idx, headers: true};
+ alasql.utils.extend(opt, opts);
+
+ var dataLength = Object.keys(data).length;
+
+ // Generate columns if they are not defined
+ if ((!columns || columns.length == 0) && dataLength > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+
+ var cells = {};
+
+ if (wb.SheetNames.indexOf(opt.sheetid) > -1) {
+ cells = wb.Sheets[opt.sheetid];
+ } else {
+ wb.SheetNames.push(opt.sheetid);
+ wb.Sheets[opt.sheetid] = {};
+ cells = wb.Sheets[opt.sheetid];
+ }
+
+ var range = 'A1';
+ if (opt.range) range = opt.range;
+
+ var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);
+ var row0 = +range.match(/[0-9]+/)[0] - 1;
+
+ if (wb.Sheets[opt.sheetid]['!ref']) {
+ var rangem = wb.Sheets[opt.sheetid]['!ref'];
+ var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);
+ var rowm = +rangem.match(/[0-9]+/)[0] - 1;
+ } else {
+ var colm = 1,
+ rowm = 1;
+ }
+ var colmax = Math.max(col0 + columns.length, colm);
+ var rowmax = Math.max(row0 + dataLength + 2, rowm);
+
+ var i = row0 + 1;
+
+ wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax;
+ // var i = 1;
+
+ if (opt.headers) {
+ columns.forEach(function(col, idx) {
+ cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()};
+ });
+ i++;
+ }
+
+ for (var j = 0; j < dataLength; j++) {
+ columns.forEach(function(col, idx) {
+ var cell = {v: data[j][col.columnid]};
+ if (typeof data[j][col.columnid] == 'number') {
+ cell.t = 'n';
+ } else if (typeof data[j][col.columnid] == 'string') {
+ cell.t = 's';
+ } else if (typeof data[j][col.columnid] == 'boolean') {
+ cell.t = 'b';
+ } else if (typeof data[j][col.columnid] == 'object') {
+ if (data[j][col.columnid] instanceof Date) {
+ cell.t = 'd';
+ }
+ }
+ cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell;
+ });
+ i++;
+ }
+ }
+
+ /**
+ Save Workbook
+ @params {array} wb Workbook
+ @params {callback} cb Callback
+ */
+ function saveWorkbook(cb) {
+
+ var XLSX;
+
+ if (typeof filename == 'undefined') {
+ res = wb;
+ } else {
+ XLSX = getXLSX();
+
+ if (utils.isNode || utils.isMeteorServer) {
+ XLSX.writeFile(wb, filename);
+ } else {
+ var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
+ var wbout = XLSX.write(wb, wopts);
+
+ var s2ab = function(s) {
+ var buf = new ArrayBuffer(s.length);
+ var view = new Uint8Array(buf);
+ for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
+ return buf;
+ };
+
+ /* the saveAs call downloads a file on the local machine */
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"')
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename)
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"');
+ if (isIE() == 9) {
+ throw new Error(
+ 'Cannot save XLSX files in IE9. Please use XLS() export function'
+ );
+ // var URI = 'data:text/plain;charset=utf-8,';
+
+ /** @todo Check if this code is required */
+
+ // alert('ie9');
+ } else {
+ saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);
+ }
+ }
+ }
+
+ }
+};
+
+/*
+//
+// FROM functions Alasql.js
+// Date: 11.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/**
+ Meteor
+ */
+
+/* global alasql Tabletop document Event */
+
+alasql.from.METEOR = function(filename, opts, cb, idx, query) {
+ var res = filename.find(opts).fetch();
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+/**
+ Google Spreadsheet reader
+ */
+alasql.from.TABLETOP = function(key, opts, cb, idx, query) {
+ var res = [];
+
+ var opt = {headers: true, simpleSheet: true, key: key};
+ alasql.utils.extend(opt, opts);
+ opt.callback = function(data) {
+ res = data;
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ };
+
+ Tabletop.init(opt);
+ return null;
+};
+
+alasql.from.HTML = function(selector, opts, cb, idx, query) {
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+
+ var sel = document.querySelector(selector);
+ if (!sel && sel.tagName !== 'TABLE') {
+ throw new Error('Selected HTML element is not a TABLE');
+ }
+
+ var res = [];
+ var headers = opt.headers;
+
+ if (headers && !Array.isArray(headers)) {
+ headers = [];
+ var ths = sel.querySelector('thead tr').children;
+ for (var i = 0; i < ths.length; i++) {
+ if (
+ !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)
+ ) {
+ headers.push(ths.item(i).textContent);
+ } else {
+ headers.push(undefined);
+ }
+ }
+ }
+
+ var trs = sel.querySelectorAll('tbody tr');
+
+ for (var j = 0; j < trs.length; j++) {
+ var tds = trs.item(j).children;
+ var r = {};
+ for (i = 0; i < tds.length; i++) {
+ if (
+ !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)
+ ) {
+ if (headers) {
+ r[headers[i]] = tds.item(i).textContent;
+ } else {
+ r[i] = tds.item(i).textContent;
+
+ }
+ }
+ }
+ res.push(r);
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+alasql.from.RANGE = function(start, finish, cb, idx, query) {
+ var res = [];
+ for (var i = start; i <= finish; i++) {
+ res.push(i);
+ }
+ // res = new alasql.Recordset({data:res,columns:{columnid:'_'}});
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+// Read data from any file
+alasql.from.FILE = function(filename, opts, cb, idx, query) {
+ var fname;
+ if (typeof filename === 'string') {
+ fname = filename;
+ } else if (filename instanceof Event) {
+ fname = filename.target.files[0].name;
+ } else {
+ throw new Error('Wrong usage of FILE() function');
+ }
+
+ var parts = fname.split('.');
+
+ var ext = parts[parts.length - 1].toUpperCase();
+
+ if (alasql.from[ext]) {
+
+ return alasql.from[ext](filename, opts, cb, idx, query);
+ } else {
+ throw new Error('Cannot recognize file type for loading');
+ }
+};
+
+// Read JSON file
+
+alasql.from.JSON = function(filename, opts, cb, idx, query) {
+ var res;
+
+ filename = alasql.utils.autoExtFilename(filename, 'json', opts);
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+
+ // res = [{a:1}];
+ res = JSON.parse(data);
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ });
+ return res;
+};
+
+alasql.from.TXT = function(filename, opts, cb, idx, query) {
+ var res;
+ filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+ res = data.split(/\r?\n/);
+
+ // Remove last line if empty
+ if (res[res.length - 1] === '') {
+ res.pop();
+ }
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ // Please avoid '===' here
+ if (res[i] == +res[i]) {
+ // eslint:ignore
+ // jshint ignore:line
+ res[i] = +res[i];
+ }
+ res[i] = [res[i]];
+ }
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ });
+ return res;
+};
+
+alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ opts.separator = '\t';
+ filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
+ opts.autoext = false;
+ return alasql.from.CSV(filename, opts, cb, idx, query);
+};
+
+alasql.from.CSV = function(contents, opts, cb, idx, query) {
+ var opt = {
+ separator: ',',
+ quote: '"',
+ headers: true,
+ };
+ alasql.utils.extend(opt, opts);
+ var res;
+ var hs = [];
+ function parseText(text) {
+ var delimiterCode = opt.separator.charCodeAt(0);
+ var quoteCode = opt.quote.charCodeAt(0);
+
+ var EOL = {},
+ EOF = {},
+ rows = [],
+ N = text.length,
+ I = 0,
+ n = 0,
+ t,
+ eol;
+ function token() {
+ if (I >= N) {
+ return EOF;
+ }
+ if (eol) {
+ return (eol = false), EOL;
+ }
+ var j = I;
+ if (text.charCodeAt(j) === quoteCode) {
+ var i = j;
+ while (i++ < N) {
+ if (text.charCodeAt(i) === quoteCode) {
+ if (text.charCodeAt(i + 1) !== quoteCode) {
+ break;
+ }
+ ++i;
+ }
+ }
+ I = i + 2;
+ var c = text.charCodeAt(i + 1);
+ if (c === 13) {
+ eol = true;
+ if (text.charCodeAt(i + 2) === 10) {
+ ++I;
+ }
+ } else if (c === 10) {
+ eol = true;
+ }
+ return text.substring(j + 1, i).replace(/""/g, '"');
+ }
+ while (I < N) {
+ var c = text.charCodeAt(I++),
+ k = 1;
+ if (c === 10) {
+ eol = true;
+ } else if (c === 13) {
+ eol = true;
+ if (text.charCodeAt(I) === 10) {
+ ++I;
+ ++k;
+ }
+ } else if (c !== delimiterCode) {
+ continue;
+ }
+ return text.substring(j, I - k);
+ }
+ return text.substring(j);
+ }
+
+ while ((t = token()) !== EOF) {
+ var a = [];
+ while (t !== EOL && t !== EOF) {
+ a.push(t.trim());
+ t = token();
+ }
+
+ if (opt.headers) {
+ if (n === 0) {
+ if (typeof opt.headers === 'boolean') {
+ hs = a;
+ } else if (Array.isArray(opt.headers)) {
+ hs = opt.headers;
+ var r = {};
+ hs.forEach(function(h, idx) {
+ r[h] = a[idx];
+ // Please avoid === here
+ if (
+ typeof r[h] !== 'undefined' &&
+ r[h].length !== 0 &&
+ r[h].trim() == +r[h]
+ ) {
+ // jshint ignore:line
+ r[h] = +r[h];
+ }
+ });
+ rows.push(r);
+ }
+ } else {
+ var r = {};
+ hs.forEach(function(h, idx) {
+ r[h] = a[idx];
+ if (
+ typeof r[h] !== 'undefined' &&
+ r[h].length !== 0 &&
+ r[h].trim() == +r[h]
+ ) {
+ // jshint ignore:line
+ r[h] = +r[h];
+ }
+ });
+ rows.push(r);
+ }
+ n++;
+ } else {
+ rows.push(a);
+ }
+ }
+
+ res = rows;
+
+ if (opt.headers) {
+ if (query && query.sources && query.sources[idx]) {
+ var columns = (query.sources[idx].columns = []);
+ hs.forEach(function(h) {
+ columns.push({columnid: h});
+ });
+ }
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ }
+ if (new RegExp('\n').test(contents)) {
+ parseText(contents);
+ } else {
+ contents = alasql.utils.autoExtFilename(contents, 'csv', opts);
+ alasql.utils.loadFile(contents, !!cb, parseText, query.cb);
+ }
+ return res;
+};
+
+function XLSXLSX(X, filename, opts, cb, idx, query) {
+ var opt = {};
+ opts = opts || {};
+ alasql.utils.extend(opt, opts);
+ if (typeof opt.headers === 'undefined') {
+ opt.headers = true;
+ }
+ var res;
+
+ /**
+ * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md
+ * for example of using readAsArrayBuffer under `Parsing Workbooks`
+ */
+ function fixdata(data) {
+ var o = '',
+ l = 0,
+ w = 10240;
+ for (; l < data.byteLength / w; ++l)
+ o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
+ o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
+ return o;
+ }
+ function getHeaderText(text) {
+ // if casesensitive option is set to false and there is a text value return lowercase value of text
+ if (text && alasql.options.casesensitive === false) {
+ return text.toLowerCase();
+ } else {
+ return text;
+ }
+ }
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ alasql.utils.loadBinaryFile(
+ filename,
+ !!cb,
+ function(data) {
+ // function processData(data) {
+ if (data instanceof ArrayBuffer) {
+ var arr = fixdata(data);
+ var workbook = X.read(btoa(arr), {type: 'base64'});
+ } else {
+ var workbook = X.read(data, {type: 'binary'});
+ }
+
+ var sheetid;
+ if (typeof opt.sheetid === 'undefined') {
+ sheetid = workbook.SheetNames[0];
+ } else if (typeof opt.sheetid === 'number') {
+ sheetid = workbook.SheetNames[opt.sheetid];
+ } else {
+ sheetid = opt.sheetid;
+ }
+ var range;
+ var res = [];
+ if (typeof opt.range === 'undefined') {
+ range = workbook.Sheets[sheetid]['!ref'];
+ } else {
+ range = opt.range;
+ if (workbook.Sheets[sheetid][range]) {
+ range = workbook.Sheets[sheetid][range];
+ }
+ }
+ // if range has some value then data is present in the current sheet
+ // else current sheet is empty
+ if (range) {
+ var rg = range.split(':');
+ var col0 = rg[0].match(/[A-Z]+/)[0];
+ var row0 = +rg[0].match(/[0-9]+/)[0];
+ var col1 = rg[1].match(/[A-Z]+/)[0];
+ var row1 = +rg[1].match(/[0-9]+/)[0];
+
+ var hh = {};
+ var xlscnCol0 = alasql.utils.xlscn(col0);
+ var xlscnCol1 = alasql.utils.xlscn(col1);
+ for (var j = xlscnCol0; j <= xlscnCol1; j++) {
+ var col = alasql.utils.xlsnc(j);
+ if (opt.headers) {
+ if (workbook.Sheets[sheetid][col + '' + row0]) {
+ hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v);
+ } else {
+ hh[col] = getHeaderText(col);
+ }
+ } else {
+ hh[col] = col;
+ }
+ }
+ if (opt.headers) {
+ row0++;
+ }
+ for (var i = row0; i <= row1; i++) {
+ var row = {};
+ for (var j = xlscnCol0; j <= xlscnCol1; j++) {
+ var col = alasql.utils.xlsnc(j);
+ if (workbook.Sheets[sheetid][col + '' + i]) {
+ row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v;
+ }
+ }
+ res.push(row);
+ }
+ } else {
+ res.push([]);
+ }
+
+ // Remove last empty line (issue #548)
+ if (
+ res.length > 0 &&
+ res[res.length - 1] &&
+ Object.keys(res[res.length - 1]).length == 0
+ ) {
+ res.pop();
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ },
+ function(err) {
+ throw err;
+ }
+ );
+
+ return res;
+}
- alasql.utils.fileExists(filename, function(fex) {
- if (fex) {
- res = 1;
- alasql.utils.deleteFile(filename, function() {
- res = 1;
- if (cb) res = cb(res);
- });
- } else {
- if (!ifexists) {
- throw new Error('Cannot drop database file, because it does not exist');
- }
- res = 0;
- if (cb) res = cb(res);
- }
- });
- return res;
-};
+alasql.from.XLS = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.XLSX = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.ODS = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'ods', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.XML = function(filename, opts, cb, idx, query) {
+ var res;
+
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+
+ // res = [{a:1}];
+
+ res = xmlparse(data).root;
+
+ if (cb) res = cb(res, idx, query);
+ });
+ return res;
+};
+
+/**
+ * Parse the given string of `xml`.
+ *
+ * @param {String} xml
+ * @return {Object}
+ * @api public
+ */
+
+function xmlparse(xml) {
+ xml = xml.trim();
+
+ // strip comments
+ xml = xml.replace(//g, '');
+
+ return document();
+
+ /**
+ * XML document.
+ */
+
+ function document() {
+ return {
+ declaration: declaration(),
+ root: tag(),
+ };
+ }
+
+ /**
+ * Declaration.
+ */
+
+ function declaration() {
+ var m = match(/^<\?xml\s*/);
+ if (!m) return;
+
+ // tag
+ var node = {
+ attributes: {},
+ };
+
+ // attributes
+ while (!(eos() || is('?>'))) {
+ var attr = attribute();
+ if (!attr) return node;
+ node.attributes[attr.name] = attr.value;
+ }
+
+ match(/\?>\s*/);
+
+ return node;
+ }
+
+ /**
+ * Tag.
+ */
+
+ function tag() {
+ var m = match(/^<([\w-:.]+)\s*/);
+ if (!m) return;
+
+ // name
+ var node = {
+ name: m[1],
+ attributes: {},
+ children: [],
+ };
+
+ // attributes
+ while (!(eos() || is('>') || is('?>') || is('/>'))) {
+ var attr = attribute();
+ if (!attr) return node;
+ node.attributes[attr.name] = attr.value;
+ }
+
+ // self closing tag
+ if (match(/^\s*\/>\s*/)) {
+ return node;
+ }
+
+ match(/\??>\s*/);
+
+ // content
+ node.content = content();
+
+ // children
+ var child;
+ while ((child = tag())) {
+ node.children.push(child);
+ }
+
+ // closing
+ match(/^<\/[\w-:.]+>\s*/);
+
+ return node;
+ }
+
+ /**
+ * Text content.
+ */
+
+ function content() {
+ var m = match(/^([^<]*)/);
+ if (m) return m[1];
+ return '';
+ }
+
+ /**
+ * Attribute.
+ */
+
+ function attribute() {
+ var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);
+ if (!m) return;
+ return {name: m[1], value: strip(m[2])};
+ }
+
+ /**
+ * Strip quotes from `val`.
+ */
+
+ function strip(val) {
+ return val.replace(/^['"]|['"]$/g, '');
+ }
+
+ /**
+ * Match `re` and advance the string.
+ */
+
+ function match(re) {
+ var m = xml.match(re);
+ if (!m) return;
+ xml = xml.slice(m[0].length);
+ return m;
+ }
+
+ /**
+ * End-of-source.
+ */
+
+ function eos() {
+ return 0 == xml.length;
+ }
+
+ /**
+ * Check for `prefix`.
+ */
+
+ function is(prefix) {
+ return 0 == xml.indexOf(prefix);
+ }
+}
-FS.attachDatabase = function(fsdbid, dbid, args, params, cb) {
+alasql.from.GEXF = function(filename, opts, cb, idx, query) {
+ var res;
+ alasql('SEARCH FROM XML(' + filename + ')', [], function(data) {
+ res = data;
- var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
- }
- var db = new alasql.Database(dbid || fsdbid);
- db.engineid = 'FILESTORAGE';
- // db.fsdbid = fsdbid;
- db.filename = args[0].value;
- loadFile(db.filename, !!cb, function(s) {
- try {
- db.data = JSON.parse(s);
- } catch (err) {
- throw new Error('Data in FileStorage database are corrupted');
- }
- db.tables = db.data.tables;
- // IF AUTOCOMMIT IS OFF then copy data to memory
- if (!alasql.options.autocommit) {
- if (db.tables) {
- for (var tbid in db.tables) {
- db.tables[tbid].data = db.data[tbid];
- }
- }
- }
- if (cb) res = cb(res);
- });
- return res;
+ if (cb) res = cb(res);
+ });
+ return res;
+};
+
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* globals: alasql, yy */
+
+/**
+ Print statement
+ @class
+ @param {object} params Initial setup properties
+*/
+
+/* global alasql, yy */
+
+yy.Print = function(params) {
+ return yy.extend(this, params);
+};
+
+/**
+ Generate SQL string
+ @this Print statement object
+*/
+yy.Print.prototype.toString = function() {
+ var s = 'PRINT';
+ if (this.statement) s += ' ' + this.statement.toString();
+ return s;
};
-FS.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var db = alasql.databases[databaseid];
- var tb = db.data[tableid];
+/**
+ Print result of select statement or expression
+ @param {string} databaseid Database identificator
+ @param {object} params Query parameters
+ @param {statement-callback} cb Callback function
+ @this Print statement object
+*/
+yy.Print.prototype.execute = function(databaseid, params, cb) {
+
+ var self = this;
var res = 1;
- if (tb && !ifnotexists) {
- throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"');
- }
- var table = alasql.databases[databaseid].tables[tableid];
- db.data.tables[tableid] = {columns: table.columns};
- db.data[tableid] = [];
+ alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */
- FS.updateFile(databaseid);
+ if (this.exprs && this.exprs.length > 0) {
+ var rs = this.exprs.map(function(expr) {
- if (cb) cb(res);
+ var exprfn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + expr.toJS('({})', '', null)
+ ).bind(self);
+ var r = exprfn(params, alasql);
+ return JSONtoString(r);
+ });
+ console.log.apply(console, rs);
+ } else if (this.select) {
+ var r = this.select.execute(databaseid, params);
+ console.log(JSONtoString(r));
+ } else {
+ console.log();
+ }
+
+ if (cb) res = cb(res);
return res;
};
-FS.updateFile = function(databaseid) {
-
- var db = alasql.databases[databaseid];
- if (db.issaving) {
- db.postsave = true;
- return;
- }
- db.issaving = true;
- db.postsave = false;
- alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() {
- db.issaving = false;
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
- if (db.postsave) {
- setTimeout(function() {
- FS.updateFile(databaseid);
- }, 50); // TODO Test with different timeout parameters
- }
- });
+yy.Source = function(params) {
+ return yy.extend(this, params);
};
-
-FS.dropTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var db = alasql.databases[databaseid];
- if (!ifexists && !db.tables[tableid]) {
- throw new Error(
- 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist'
- );
- }
- delete db.tables[tableid];
- delete db.data.tables[tableid];
- delete db.data[tableid];
- FS.updateFile(databaseid);
- if (cb) cb(res);
- return res;
+yy.Source.prototype.toString = function() {
+ var s = 'SOURCE';
+ if (this.url) s += " '" + this.url + " '";
+ return s;
};
-FS.fromTable = function(databaseid, tableid, cb, idx, query) {
+// SOURCE FILE
+yy.Source.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[databaseid];
- var res = db.data[tableid];
- if (cb) res = cb(res, idx, query);
- return res;
-};
+ var res;
+ loadFile(
+ this.url,
+ !!cb,
+ function(data) {
-FS.intoTable = function(databaseid, tableid, value, columns, cb) {
- var db = alasql.databases[databaseid];
- var res = value.length;
- var tb = db.data[tableid];
- if (!tb) tb = [];
- db.data[tableid] = tb.concat(value);
- FS.updateFile(databaseid);
- if (cb) cb(res);
+ // res = 1;
+ res = alasql(data);
+ if (cb) res = cb(res);
+ return res;
+ },
+ function(err) {
+ throw err;
+ }
+ );
return res;
};
-FS.loadTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- db.tables[tableid].data = db.data[tableid];
-};
-
-FS.saveTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- db.data[tableid] = db.tables[tableid].data;
- db.tables[tableid].data = null;
- FS.updateFile(databaseid);
-};
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
-FS.commit = function(databaseid, cb) {
+/* global alasql, yy */
- var db = alasql.databases[databaseid];
- var fsdb = {tables: {}};
- if (db.tables) {
- for (var tbid in db.tables) {
- db.data.tables[tbid] = {columns: db.tables[tbid].columns};
- db.data[tbid] = db.tables[tbid].data;
- }
+yy.Require = function(params) {
+ return yy.extend(this, params);
+};
+yy.Require.prototype.toString = function() {
+ var s = 'REQUIRE';
+ if (this.paths && this.paths.length > 0) {
+ s += this.paths
+ .map(function(path) {
+ return path.toString();
+ })
+ .join(',');
+ }
+ if (this.plugins && this.plugins.length > 0) {
+ s += this.plugins
+ .map(function(plugin) {
+ return plugin.toUpperCase();
+ })
+ .join(',');
}
- FS.updateFile(databaseid);
- return cb ? cb(1) : 1;
+ return s;
};
-FS.begin = FS.commit;
+/**
+ Attach plug-in for Alasql
+ */
+yy.Require.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ var res = 0;
+ var ss = '';
-FS.rollback = function(databaseid, cb) {
- var res = 1;
- var db = alasql.databases[databaseid];
- db.dbversion++;
-
- // var lsdbid = alasql.databases[databaseid].lsdbid;
- // lsdb = LS.get(lsdbid);
- wait();
- function wait() {
- setTimeout(function() {
- if (db.issaving) {
- return wait();
- } else {
- alasql.loadFile(db.filename, !!cb, function(data) {
- db.data = data;
- db.tables = {};
- for (var tbid in db.data.tables) {
- var tb = new alasql.Table({columns: db.data.tables[tbid].columns});
- extend(tb, db.data.tables[tbid]);
- db.tables[tbid] = tb;
- if (!alasql.options.autocommit) {
- db.tables[tbid].data = db.data[tbid];
- }
- db.tables[tbid].indexColumns();
+ if (this.paths && this.paths.length > 0) {
+ this.paths.forEach(function(path) {
+ loadFile(path.value, !!cb, function(data) {
+ res++;
- // index columns
- // convert types
- }
+ ss += data;
+ if (res < self.paths.length) return;
- delete alasql.databases[databaseid];
- alasql.databases[databaseid] = new alasql.Database(databaseid);
- extend(alasql.databases[databaseid], db);
- alasql.databases[databaseid].engineid = 'FILESTORAGE';
- alasql.databases[databaseid].filename = db.filename;
+ new Function('params,alasql', ss)(params, alasql);
+ if (cb) res = cb(res);
+ });
+ });
+ } else if (this.plugins && this.plugins.length > 0) {
+ this.plugins.forEach(function(plugin) {
+ // If plugin is not loaded already
+ if (!alasql.plugins[plugin]) {
+ loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function(
+ data
+ ) {
+ // Execute all plugins at the same time
+ res++;
+ ss += data;
+ if (res < self.plugins.length) return;
+ new Function('params,alasql', ss)(params, alasql);
+ alasql.plugins[plugin] = true; // Plugin is loaded
if (cb) res = cb(res);
- // Todo: check why no return
});
}
- }, 100);
+ });
+ } else {
+ if (cb) res = cb(res);
}
-
- // if(!alasql.options.autocommit) {
-
+ return res;
};
-if(utils.isBrowser && !utils.isWebWorker) {
-
-alasql = alasql || false;
-
-if (!alasql) {
- throw new Error('alasql was not found');
-}
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
-alasql.worker = function() {
- throw new Error('Can find webworker in this enviroment');
+yy.Assert = function(params) {
+ return yy.extend(this, params);
+};
+yy.Source.prototype.toString = function() {
+ var s = 'ASSERT';
+ if (this.value) s += ' ' + JSON.stringify(this.value);
+ return s;
};
-if (typeof Worker !== 'undefined') {
- alasql.worker = function(path, paths, cb) {
- // var path;
- if (path === true) {
- path = undefined;
- }
-
- if (typeof path === 'undefined') {
- var sc = document.getElementsByTagName('script');
- for (var i = 0; i < sc.length; i++) {
- if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js';
- break;
- } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js';
- break;
- } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
- path = sc[i].src;
- break;
- } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js';
- break;
- }
- }
- }
-
- if (typeof path === 'undefined') {
- throw new Error('Path to alasql.js is not specified');
- } else if (path !== false) {
- var js = "importScripts('";
- js += path;
- js +=
- "');self.onmessage = function(event) {" +
- 'alasql(event.data.sql,event.data.params, function(data){' +
- 'postMessage({id:event.data.id, data:data});});}';
-
- var blob = new Blob([js], {type: 'text/plain'});
- alasql.webworker = new Worker(URL.createObjectURL(blob));
-
- alasql.webworker.onmessage = function(event) {
- var id = event.data.id;
-
- alasql.buffer[id](event.data.data);
- delete alasql.buffer[id];
- };
-
- alasql.webworker.onerror = function(e) {
- throw e;
- };
-
- if (arguments.length > 1) {
- var sql =
- 'REQUIRE ' +
- paths
- .map(function(p) {
- return '"' + p + '"';
- })
- .join(',');
- alasql(sql, [], cb);
- }
- } else if (path === false) {
- delete alasql.webworker;
- return;
- }
- };
-}
-
-/* FileSaver.js
- * A saveAs() FileSaver implementation.
- * 1.3.2
- * 2016-06-16 18:25:19
- *
- * By Eli Grey, http://eligrey.com
- * License: MIT
- * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
- */
-
-/*global self */
-/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
-
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-
-var saveAs =
- saveAs ||
- (function(view) {
- 'use strict';
- // IE <10 is explicitly unsupported
- if (
- typeof view === 'undefined' ||
- (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent))
- ) {
- return;
- }
- var doc = view.document,
- // only get URL when necessary in case Blob.js hasn't overridden it yet
- get_URL = function() {
- return view.URL || view.webkitURL || view;
- },
- save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'),
- can_use_save_link = 'download' in save_link,
- click = function(node) {
- var event = new MouseEvent('click');
- node.dispatchEvent(event);
- },
- is_safari = /constructor/i.test(view.HTMLElement) || view.safari,
- is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent),
- throw_outside = function(ex) {
- (view.setImmediate || view.setTimeout)(function() {
- throw ex;
- }, 0);
- },
- force_saveable_type = 'application/octet-stream',
- // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
- arbitrary_revoke_timeout = 1000 * 40, // in ms
- revoke = function(file) {
- var revoker = function() {
- if (typeof file === 'string') {
- // file is an object URL
- get_URL().revokeObjectURL(file);
- } else {
- // file is a File
- file.remove();
- }
- };
- setTimeout(revoker, arbitrary_revoke_timeout);
- },
- dispatch = function(filesaver, event_types, event) {
- event_types = [].concat(event_types);
- var i = event_types.length;
- while (i--) {
- var listener = filesaver['on' + event_types[i]];
- if (typeof listener === 'function') {
- try {
- listener.call(filesaver, event || filesaver);
- } catch (ex) {
- throw_outside(ex);
- }
- }
- }
- },
- auto_bom = function(blob) {
- // prepend BOM for UTF-8 XML and text/* types (including HTML)
- // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
- if (
- /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(
- blob.type
- )
- ) {
- return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type});
- }
- return blob;
- },
- FileSaver = function(blob, name, no_auto_bom) {
- if (!no_auto_bom) {
- blob = auto_bom(blob);
- }
- // First try a.download, then web filesystem, then object URLs
- var filesaver = this,
- type = blob.type,
- force = type === force_saveable_type,
- object_url,
- dispatch_all = function() {
- dispatch(filesaver, 'writestart progress write writeend'.split(' '));
- },
- // on any filesys errors revert to saving with object URLs
- fs_error = function() {
- if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
- // Safari doesn't allow downloading of blob urls
- var reader = new FileReader();
- reader.onloadend = function() {
- var url = is_chrome_ios
- ? reader.result
- : reader.result.replace(
- /^data:[^;]*;/,
- 'data:attachment/file;'
- );
- var popup = view.open(url, '_blank');
- if (!popup) view.location.href = url;
- url = undefined; // release reference before dispatching
- filesaver.readyState = filesaver.DONE;
- dispatch_all();
- };
- reader.readAsDataURL(blob);
- filesaver.readyState = filesaver.INIT;
- return;
- }
- // don't create more object URLs than needed
- if (!object_url) {
- object_url = get_URL().createObjectURL(blob);
- }
- if (force) {
- view.location.href = object_url;
- } else {
- var opened = view.open(object_url, '_blank');
- if (!opened) {
- // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
- view.location.href = object_url;
- }
- }
- filesaver.readyState = filesaver.DONE;
- dispatch_all();
- revoke(object_url);
- };
- filesaver.readyState = filesaver.INIT;
-
- if (can_use_save_link) {
- object_url = get_URL().createObjectURL(blob);
- setTimeout(function() {
- save_link.href = object_url;
- save_link.download = name;
- click(save_link);
- dispatch_all();
- revoke(object_url);
- filesaver.readyState = filesaver.DONE;
- });
- return;
- }
+// SOURCE FILE
+yy.Assert.prototype.execute = function(databaseid) {
- fs_error();
- },
- FS_proto = FileSaver.prototype,
- saveAs = function(blob, name, no_auto_bom) {
- return new FileSaver(blob, name || blob.name || 'download', no_auto_bom);
- };
- // IE 10+ (native saveAs)
- if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
- return function(blob, name, no_auto_bom) {
- name = name || blob.name || 'download';
+ if (!deepEqual(alasql.res, this.value)) {
+ // if(this.message) {
+ // throw this.
+ // } else {
+ throw new Error(
+ (this.message || 'Assert wrong') +
+ ': ' +
+ JSON.stringify(alasql.res) +
+ ' == ' +
+ JSON.stringify(this.value)
+ );
+ // }
+ }
+ return 1;
+};
- if (!no_auto_bom) {
- blob = auto_bom(blob);
- }
- return navigator.msSaveOrOpenBlob(blob, name);
- };
- }
+//
+// 91websql.js
+// WebSQL database support
+// (c) 2014, Andrey Gershun
+//
+
+var WEBSQL = (alasql.engines.WEBSQL = function() {});
+
+WEBSQL.createDatabase = function(wdbid, args, dbid, cb) {
+ var res = 1;
+ var wdb = openDatabase(wdbid, args[0], args[1], args[2]);
+ if (this.dbid) {
+ var db = alasql.createDatabase(this.dbid);
+ db.engineid = 'WEBSQL';
+ db.wdbid = wdbid;
+ sb.wdb = db;
+ }
+ if (!wdb) {
+ throw new Error('Cannot create WebSQL database "' + databaseid + '"');
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+WEBSQL.dropDatabase = function(databaseid) {
+ throw new Error('This is impossible to drop WebSQL database.');
+};
+
+WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+ alasqlopenDatabase(databaseid, args[0], args[1], args[2]);
+ return res;
+};
+
+//
+// 91indexeddb.js
+// AlaSQL IndexedDB module
+// Date: 18.04.2015
+// (c) Andrey Gershun
+//
+
+/* global alasql, yy, utils*/
+
+var IDB = (alasql.engines.INDEXEDDB = function() {
+ '';
+});
+
+if (utils.hasIndexedDB) {
+ // For Chrome it work normally, for Firefox - simple shim
+ if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') {
+ IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind(
+ utils.global.indexedDB
+ );
+ } else {
+ IDB.getDatabaseNames = function() {
+ var request = {};
+ var result = {
+ contains: function(name) {
+ return true; // Always return true
+ },
+ notsupported: true,
+ };
+ setTimeout(function() {
+ var event = {target: {result: result}};
+ request.onsuccess(event);
+ }, 0);
+ return request;
+ };
+ IDB.getDatabaseNamesNotSupported = true;
+ }
+}
- FS_proto.abort = function() {};
- FS_proto.readyState = FS_proto.INIT = 0;
- FS_proto.WRITING = 1;
- FS_proto.DONE = 2;
+//
+// SHOW DATABASES
+// work only in chrome
+//
+IDB.showDatabases = function(like, cb) {
+
+ var request = IDB.getDatabaseNames();
+ request.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (IDB.getDatabaseNamesNotSupported) {
+ throw new Error('SHOW DATABASE is not supported in this browser');
+ }
+ var res = [];
+ if (like) {
+ var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g');
+ }
+ for (var i = 0; i < dblist.length; i++) {
+ if (!like || dblist[i].match(relike)) {
+ res.push({databaseid: dblist[i]});
+ }
+ }
+ cb(res);
+ };
+};
+
+IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
+
+ var indexedDB = utils.global.indexedDB;
+ if (ifnotexists) {
+ var request2 = indexedDB.open(ixdbid, 1);
+ request2.onsuccess = function(event) {
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ } else {
+ var request1 = indexedDB.open(ixdbid, 1);
+ request1.onupgradeneeded = function(e) {
+
+ e.target.transaction.abort();
+ };
+ request1.onsuccess = function(e) {
+
+ if (ifnotexists) {
+ if (cb) cb(0);
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ }
+ };
+ }
+
+};
+
+IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
+ var indexedDB = utils.global.indexedDB;
+ if (IDB.getDatabaseNamesNotSupported) {
+ // Hack for Firefox
+ if (ifnotexists) {
+
+ var dbExists = true;
+ var request2 = indexedDB.open(ixdbid);
+
+ request2.onupgradeneeded = function(e) {
+
+ dbExists = false;
+ // e.target.transaction.abort();
+ // cb(0);
+ };
+ request2.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (dbExists) {
+ if (cb) cb(0);
+ } else {
+ if (cb) cb(1);
+ }
+ };
+ } else {
+
+ var request1 = indexedDB.open(ixdbid);
+ request1.onupgradeneeded = function(e) {
+ e.target.transaction.abort();
+ };
+ request1.onabort = function(event) {
+ if (cb) cb(1);
+ };
+ request1.onsuccess = function(event) {
+ event.target.result.close();
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ // cb(0);
+ };
+ }
+ } else {
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (dblist.contains(ixdbid)) {
+ if (ifnotexists) {
+ if (cb) cb(0);
+ return;
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ }
+ }
+
+ var request2 = indexedDB.open(ixdbid, 1);
+ request2.onsuccess = function(event) {
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ };
+ }
+};
+
+IDB.dropDatabase = function(ixdbid, ifexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (!dblist.contains(ixdbid)) {
+ if (ifexists) {
+ if (cb) cb(0);
+ return;
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist'
+ );
+ }
+ }
+ var request2 = indexedDB.deleteDatabase(ixdbid);
+ request2.onsuccess = function(event) {
+
+ if (cb) cb(1);
+ };
+ };
+};
+
+IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
+ if (!utils.hasIndexedDB) {
+ throw new Error('The current browser does not support IndexedDB');
+ }
+ var indexedDB = utils.global.indexedDB;
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist'
+ );
+ }
+ var request2 = indexedDB.open(ixdbid);
+ request2.onsuccess = function(event) {
+ var ixdb = event.target.result;
+ var db = new alasql.Database(dbid || ixdbid);
+ db.engineid = 'INDEXEDDB';
+ db.ixdbid = ixdbid;
+ db.tables = [];
+ var tblist = ixdb.objectStoreNames;
+ for (var i = 0; i < tblist.length; i++) {
+ db.tables[tblist[i]] = {};
+ }
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ };
+};
+
+IDB.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event__) {
+ var dblist = event__.target.result;
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot create table in database "' +
+ ixdbid +
+ '" because it does not exist'
+ );
+ }
+ var request2 = indexedDB.open(ixdbid);
+ request2.onversionchange = function(event_) {
+
+ event_.target.result.close();
+ };
+ request2.onsuccess = function(event_) {
+ var version = event_.target.result.version;
+ event_.target.result.close();
+
+ var request3 = indexedDB.open(ixdbid, version + 1);
+ request3.onupgradeneeded = function(event) {
+ var ixdb = event.target.result;
+
+ var store = ixdb.createObjectStore(tableid, {autoIncrement: true});
+
+ };
+ request3.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ request3.onerror = function(event) {
+ throw event;
+
+ };
+ request3.onblocked = function(event) {
+ throw new Error(
+ 'Cannot create table "' +
+ tableid +
+ '" because database "' +
+ databaseid +
+ '" is blocked'
+ );
+
+ };
+ };
+ };
+};
+
+IDB.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot drop table in database "' +
+ ixdbid +
+ '" because it does not exist'
+ );
+ }
+
+ var request2 = indexedDB.open(ixdbid);
+ request2.onversionchange = function(event) {
+ event.target.result.close();
+ };
+
+ request2.onsuccess = function(event) {
+ var version = event.target.result.version;
+ event.target.result.close();
+
+ var request3 = indexedDB.open(ixdbid, version + 1);
+ request3.onupgradeneeded = function(event) {
+ var ixdb = event.target.result;
+ if (ixdb.objectStoreNames.contains(tableid)) {
+ ixdb.deleteObjectStore(tableid);
+ delete alasql.databases[databaseid].tables[tableid];
+ } else {
+ if (!ifexists) {
+ throw new Error(
+ 'IndexedDB: Cannot drop table "' +
+ tableid +
+ '" because it does not exist'
+ );
+ }
+ }
+ // var store = ixdb.createObjectStore(tableid);
+
+ };
+ request3.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ request3.onerror = function(event) {
+
+ throw event;
+ };
+ request3.onblocked = function(event) {
+ throw new Error(
+ 'Cannot drop table "' +
+ tableid +
+ '" because database "' +
+ databaseid +
+ '" is blocked'
+ );
+
+ };
+ };
+ };
+};
+
+IDB.intoTable = function(databaseid, tableid, value, columns, cb) {
+
+ // console.trace();
+
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request1 = indexedDB.open(ixdbid);
+ request1.onsuccess = function(event) {
+ var ixdb = event.target.result;
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var tb = tx.objectStore(tableid);
+
+ for (var i = 0, ilen = value.length; i < ilen; i++) {
+ tb.add(value[i]);
+ }
+ tx.oncomplete = function() {
+ ixdb.close();
+
+ if (cb) cb(ilen);
+ };
+ };
+
+};
+
+IDB.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid]);
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ res.push(cursor.value);
+ cursor.continue();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(res, idx, query);
+ }
+ };
+ };
+};
+
+IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+ var num = 0;
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ if (!wherefn || wherefn(cursor.value, params)) {
+
+ cursor.delete();
+ num++;
+ }
+ cursor.continue();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(num);
+ }
+ };
+ };
+};
+
+IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+ var num = 0;
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ if (!wherefn || wherefn(cursor.value, params)) {
+
+ var r = cursor.value;
+ assignfn(r, params);
+
+ cursor.update(r);
+ num++;
+ }
+ cursor.continue();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(num);
+ }
+ };
+ };
+};
+
+//
+// 91localstorage.js
+// localStorage and DOM-Storage engine
+// Date: 09.12.2014
+// (c) Andrey Gershun
+//
+
+/* global alasql, yy, localStorage*/
+
+var LS = (alasql.engines.LOCALSTORAGE = function() {});
+
+/**
+ Read data from localStorage with security breaks
+ @param key {string} Address in localStorage
+ @return {object} JSON object
+*/
+LS.get = function(key) {
+ var s = localStorage.getItem(key);
+ if (typeof s === 'undefined') return;
+ var v;
+ try {
+ v = JSON.parse(s);
+ } catch (err) {
+ throw new Error('Cannot parse JSON object from localStorage' + s);
+ }
+ return v;
+};
+
+/**
+ Store data into localStorage with security breaks
+ @param key {string} Address in localStorage
+ @return {object} JSON object
+*/
+LS.set = function(key, value) {
+ if (typeof value === 'undefined') localStorage.removeItem(key);
+ else localStorage.setItem(key, JSON.stringify(value));
+};
+
+/**
+ Store table structure and data into localStorage
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @return Nothing
+*/
+LS.storeTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var table = db.tables[tableid];
+ // Create empty structure for table
+ var tbl = {};
+ tbl.columns = table.columns;
+ tbl.data = table.data;
+ tbl.identities = table.identities;
+ // TODO: May be add indexes, objects and other fields?
+ LS.set(db.lsdbid + '.' + tableid, tbl);
+};
+
+/**
+ Restore table structure and data
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @return Nothing
+*/
+LS.restoreTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var tbl = LS.get(db.lsdbid + '.' + tableid);
+ var table = new alasql.Table();
+ for (var f in tbl) {
+ table[f] = tbl[f];
+ }
+ db.tables[tableid] = table;
+ table.indexColumns();
+ // We need to add other things here
+ return table;
+};
+
+/**
+ Remove table from localStorage
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+*/
+
+LS.removeTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ localStorage.removeItem(db.lsdbid + '.' + tableid);
+};
+
+/**
+ Create database in localStorage
+ @param lsdbid {string} localStorage database id
+ @param args {array} List of parameters (not used in localStorage)
+ @param ifnotexists {boolean} Check if database does not exist
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param cb {function} Callback
+*/
+
+LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) {
+ var res = 1;
+ var ls = LS.get('alasql'); // Read list of all databases
+ if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) {
+ if (!ls) ls = {databases: {}}; // Empty record
+ if (ls.databases && ls.databases[lsdbid]) {
+ throw new Error(
+ 'localStorage: Cannot create new database "' +
+ lsdbid +
+ '" because it already exists'
+ );
+ }
+ ls.databases[lsdbid] = true;
+ LS.set('alasql', ls);
+ LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record
+ } else {
+ res = 0;
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Drop external database
+ @param lsdbid {string} localStorage database id
+ @param ifexists {boolean} Check if database exists
+ @param cb {function} Callback
+*/
+LS.dropDatabase = function(lsdbid, ifexists, cb) {
+ var res = 1;
+ var ls = LS.get('alasql');
+ if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) {
+ // 1. Remove record from 'alasql' record
+ if (!ls) {
+ if (!ifexists) {
+ throw new Error('There is no any AlaSQL databases in localStorage');
+ } else {
+ return cb ? cb(0) : 0;
+ }
+ }
+
+ if (ls.databases && !ls.databases[lsdbid]) {
+ throw new Error(
+ 'localStorage: Cannot drop database "' +
+ lsdbid +
+ '" because there is no such database'
+ );
+ }
+ delete ls.databases[lsdbid];
+ LS.set('alasql', ls);
+
+ // 2. Remove tables definitions
+ var db = LS.get(lsdbid);
+ for (var tableid in db.tables) {
+ localStorage.removeItem(lsdbid + '.' + tableid);
+ }
+
+ // 3. Remove database definition
+ localStorage.removeItem(lsdbid);
+ } else {
+ res = 0;
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Attach existing localStorage database to AlaSQL database
+ @param lsdibid {string} localStorage database id
+ @param
+*/
+
+LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid]) {
+ throw new Error(
+ 'Unable to attach database as "' + databaseid + '" because it already exists'
+ );
+ }
+ if (!databaseid) databaseid = lsdbid;
+ var db = new alasql.Database(databaseid);
+ db.engineid = 'LOCALSTORAGE';
+ db.lsdbid = lsdbid;
+ db.tables = LS.get(lsdbid).tables;
+ // IF AUTOABORT IS OFF then copy data to memory
+ if (!alasql.options.autocommit) {
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ LS.restoreTable(databaseid, tbid);
+ // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
+ }
+ }
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Show list of databases from localStorage
+ @param like {string} Mathing pattern
+ @param cb {function} Callback
+*/
+LS.showDatabases = function(like, cb) {
+ var res = [];
+ var ls = LS.get('alasql');
+ if (like) {
+ // TODO: If we have a special function for LIKE patterns?
+ var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g');
+ }
+ if (ls && ls.databases) {
+ for (var dbid in ls.databases) {
+ res.push({databaseid: dbid});
+ }
+ if (like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ return d.databaseid.match(relike);
+ });
+ }
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Create table in localStorage database
+ @param databaseid {string} AlaSQL database id
+ @param tableid {string} Table id
+ @param ifnotexists {boolean} If not exists flag
+ @param cb {function} Callback
+*/
+
+LS.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var tb = LS.get(lsdbid + '.' + tableid);
+ // Check if such record exists
+ if (tb && !ifnotexists) {
+ throw new Error(
+ 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"'
+ );
+ }
+ var lsdb = LS.get(lsdbid);
+ var table = alasql.databases[databaseid].tables[tableid];
+
+ // TODO: Check if required
+ lsdb.tables[tableid] = true;
+
+ LS.set(lsdbid, lsdb);
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Empty table and reset identities
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @param ifexists {boolean} If exists flag
+ @param cb {function} Callback
+ @return 1 on success
+*/
+LS.truncateTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb;
+ if (alasql.options.autocommit) {
+ lsdb = LS.get(lsdbid);
+ } else {
+ lsdb = alasql.databases[databaseid];
+ }
+
+ if (!ifexists && !lsdb.tables[tableid]) {
+ throw new Error(
+ 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist'
+ );
+ }
+
+ //load table
+ var tbl = LS.restoreTable(databaseid, tableid);
+
+ //clear data from table
+ tbl.data = [];
+ //TODO reset all identities
+ //but identities are not working on LOCALSTORAGE
+ //See test 607 for details
+
+ //store table
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Create table in localStorage database
+ @param databaseid {string} AlaSQL database id
+ @param tableid {string} Table id
+ @param ifexists {boolean} If exists flag
+ @param cb {function} Callback
+*/
+
+LS.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb;
+
+ if (alasql.options.autocommit) {
+ lsdb = LS.get(lsdbid);
+ } else {
+ lsdb = alasql.databases[databaseid];
+ }
+ if (!ifexists && !lsdb.tables[tableid]) {
+ throw new Error(
+ 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist'
+ );
+ }
+ delete lsdb.tables[tableid];
+ LS.set(lsdbid, lsdb);
+ // localStorage.removeItem(lsdbid+'.'+tableid);
+ LS.removeTable(databaseid, tableid);
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Read all data from table
+*/
+
+LS.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ // var res = LS.get(lsdbid+'.'+tableid);
+
+ var res = LS.restoreTable(databaseid, tableid).data;
+
+ if (cb) res = cb(res, idx, query);
+ return res;
+};
+
+/**
+ Insert data into the table
+ @param databaseid {string} Database id
+ @param tableid {string} Table id
+ @param value {array} Array of values
+ @param columns {array} Columns (not used)
+ @param cb {function} Callback
+*/
+
+LS.intoTable = function(databaseid, tableid, value, columns, cb) {
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var res = value.length;
+ // var tb = LS.get(lsdbid+'.'+tableid);
+ var tb = LS.restoreTable(databaseid, tableid);
+ for (var columnid in tb.identities) {
+ var ident = tb.identities[columnid];
+
+ for (var index in value) {
+ value[index][columnid] = ident.value;
+ ident.value += ident.step;
+ }
+ }
+ if (!tb.data) tb.data = [];
+ tb.data = tb.data.concat(value);
+ // LS.set(lsdbid+'.'+tableid, tb);
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+
+ return res;
+};
+
+/**
+ Laad data from table
+*/
+LS.loadTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ LS.restoreTable(databaseid, tableid);
+ // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid);
+};
+
+/**
+ Save data to the table
+*/
+
+LS.saveTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ LS.storeTable(lsdbid, tableid);
+ // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data);
+ db.tables[tableid].data = undefined;
+};
+
+/**
+ Commit
+*/
+
+LS.commit = function(databaseid, cb) {
+
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb = {databaseid: lsdbid, tables: {}};
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ // TODO: Question - do we need this line
+ lsdb.tables[tbid] = true;
+ LS.storeTable(databaseid, tbid);
+ // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data);
+ }
+ }
+ LS.set(lsdbid, lsdb);
+ return cb ? cb(1) : 1;
+};
+
+/**
+ Alias BEGIN = COMMIT
+*/
+LS.begin = LS.commit;
+
+/**
+ ROLLBACK
+*/
+
+LS.rollback = function(databaseid, cb) {
+ // This does not work and should be fixed
+ // Plus test 151 and 231
+
+ return;
+
+ var db = alasql.databases[databaseid];
+ db.dbversion++;
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb = LS.get(lsdbid);
+ // if(!alasql.options.autocommit) {
+
+ delete alasql.databases[databaseid];
+ alasql.databases[databaseid] = new alasql.Database(databaseid);
+ extend(alasql.databases[databaseid], lsdb);
+ alasql.databases[databaseid].databaseid = databaseid;
+ alasql.databases[databaseid].engineid = 'LOCALSTORAGE';
+
+ if (lsdb.tables) {
+ for (var tbid in lsdb.tables) {
+ // var tb = new alasql.Table({columns: db.tables[tbid].columns});
+ // extend(tb,lsdb.tables[tbid]);
+ // lsdb.tables[tbid] = true;
+
+ // if(!alasql.options.autocommit) {
+
+ // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
+ LS.restoreTable(databaseid, tbid);
+ // }
+ // lsdb.tables[tbid].indexColumns();
+
+ // index columns
+ // convert types
+ }
+ }
+ // }
+
+};
+
+//
+// 91websql.js
+// WebSQL database support
+// (c) 2014, Andrey Gershun
+//
+
+var SQLITE = (alasql.engines.SQLITE = function() {});
+
+SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) {
+ throw new Error('Connot create SQLITE database in memory. Attach it.');
+};
+
+SQLITE.dropDatabase = function(databaseid) {
+ throw new Error('This is impossible to drop SQLite database. Detach it.');
+};
+
+SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+
+ if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) {
+ if (args[0] instanceof yy.StringValue) {
+ var value = args[0].value;
+ } else if (args[0] instanceof yy.ParamValue) {
+ var value = params[args[0].param];
+ }
+ alasql.utils.loadBinaryFile(
+ value,
+ true,
+ function(data) {
+ var db = new alasql.Database(dbid || sqldbid);
+ db.engineid = 'SQLITE';
+ db.sqldbid = sqldbid;
+ var sqldb = (db.sqldb = new SQL.Database(data));
+ db.tables = [];
+ var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;
+
+ tables.forEach(function(tbl) {
+ db.tables[tbl[1]] = {};
+ var columns = (db.tables[tbl[1]].columns = []);
+ var ast = alasql.parse(tbl[4]);
+
+ var coldefs = ast.statements[0].columns;
+ if (coldefs && coldefs.length > 0) {
+ coldefs.forEach(function(cd) {
+ columns.push(cd);
+ });
+ }
+ });
+
+ cb(1);
+ },
+ function(err) {
+ throw new Error('Cannot open SQLite database file "' + args[0].value + '"');
+ }
+ );
+ return res;
+ } else {
+ throw new Error('Cannot attach SQLite database without a file');
+ }
+
+ return res;
+};
+
+SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) {
+ var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid);
+ var columns = (query.sources[idx].columns = []);
+ if (data[0].columns.length > 0) {
+ data[0].columns.forEach(function(columnid) {
+ columns.push({columnid: columnid});
+ });
+ }
+
+ var res = [];
+ if (data[0].values.length > 0) {
+ data[0].values.forEach(function(d) {
+ var r = {};
+ columns.forEach(function(col, idx) {
+ r[col.columnid] = d[idx];
+ });
+ res.push(r);
+ });
+ }
+ if (cb) cb(res, idx, query);
+};
+
+SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) {
+ var sqldb = alasql.databases[databaseid].sqldb;
+ for (var i = 0, ilen = value.length; i < ilen; i++) {
+ var s = 'INSERT INTO ' + tableid + ' (';
+ var d = value[i];
+ var keys = Object.keys(d);
+ s += keys.join(',');
+ s += ') VALUES (';
+ s += keys
+ .map(function(k) {
+ v = d[k];
+ if (typeof v == 'string') v = "'" + v + "'";
+ return v;
+ })
+ .join(',');
+ s += ')';
+ sqldb.exec(s);
+ }
+ var res = ilen;
+ if (cb) cb(res);
+ return res;
+};
+
+//
+// 91localstorage.js
+// localStorage and DOM-Storage engine
+// Date: 09.12.2014
+// (c) Andrey Gershun
+//
+
+var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {});
+
+FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) {
+
+ var res = 1;
+ var filename = args[0].value;
+
+ alasql.utils.fileExists(filename, function(fex) {
+
+ if (fex) {
+ if (ifnotexists) {
+ res = 0;
+ if (cb) res = cb(res);
+ return res;
+ } else {
+ throw new Error('Cannot create new database file, because it already exists');
+ }
+ } else {
+ var data = {tables: {}};
+ alasql.utils.saveFile(filename, JSON.stringify(data), function(data) {
+ if (cb) res = cb(res);
+ });
+ }
+ });
+ return res;
+};
+
+FS.dropDatabase = function(fsdbid, ifexists, cb) {
+ var res;
+ var filename = fsdbid.value;
+
+ alasql.utils.fileExists(filename, function(fex) {
+ if (fex) {
+ res = 1;
+ alasql.utils.deleteFile(filename, function() {
+ res = 1;
+ if (cb) res = cb(res);
+ });
+ } else {
+ if (!ifexists) {
+ throw new Error('Cannot drop database file, because it does not exist');
+ }
+ res = 0;
+ if (cb) res = cb(res);
+ }
+ });
+ return res;
+};
+
+FS.attachDatabase = function(fsdbid, dbid, args, params, cb) {
+
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+ var db = new alasql.Database(dbid || fsdbid);
+ db.engineid = 'FILESTORAGE';
+ // db.fsdbid = fsdbid;
+ db.filename = args[0].value;
+ loadFile(db.filename, !!cb, function(s) {
+ try {
+ db.data = JSON.parse(s);
+ } catch (err) {
+ throw new Error('Data in FileStorage database are corrupted');
+ }
+ db.tables = db.data.tables;
+ // IF AUTOCOMMIT IS OFF then copy data to memory
+ if (!alasql.options.autocommit) {
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ db.tables[tbid].data = db.data[tbid];
+ }
+ }
+ }
+ if (cb) res = cb(res);
+ });
+ return res;
+};
+
+FS.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var db = alasql.databases[databaseid];
+ var tb = db.data[tableid];
+ var res = 1;
+
+ if (tb && !ifnotexists) {
+ throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"');
+ }
+ var table = alasql.databases[databaseid].tables[tableid];
+ db.data.tables[tableid] = {columns: table.columns};
+ db.data[tableid] = [];
+
+ FS.updateFile(databaseid);
+
+ if (cb) cb(res);
+ return res;
+};
+
+FS.updateFile = function(databaseid) {
+
+ var db = alasql.databases[databaseid];
+ if (db.issaving) {
+ db.postsave = true;
+ return;
+ }
+ db.issaving = true;
+ db.postsave = false;
+ alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() {
+ db.issaving = false;
+
+ if (db.postsave) {
+ setTimeout(function() {
+ FS.updateFile(databaseid);
+ }, 50); // TODO Test with different timeout parameters
+ }
+ });
+};
+
+FS.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var db = alasql.databases[databaseid];
+ if (!ifexists && !db.tables[tableid]) {
+ throw new Error(
+ 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist'
+ );
+ }
+ delete db.tables[tableid];
+ delete db.data.tables[tableid];
+ delete db.data[tableid];
+ FS.updateFile(databaseid);
+ if (cb) cb(res);
+ return res;
+};
+
+FS.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ var db = alasql.databases[databaseid];
+ var res = db.data[tableid];
+ if (cb) res = cb(res, idx, query);
+ return res;
+};
+
+FS.intoTable = function(databaseid, tableid, value, columns, cb) {
+ var db = alasql.databases[databaseid];
+ var res = value.length;
+ var tb = db.data[tableid];
+ if (!tb) tb = [];
+ db.data[tableid] = tb.concat(value);
+ FS.updateFile(databaseid);
+ if (cb) cb(res);
+ return res;
+};
+
+FS.loadTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ db.tables[tableid].data = db.data[tableid];
+};
+
+FS.saveTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ db.data[tableid] = db.tables[tableid].data;
+ db.tables[tableid].data = null;
+ FS.updateFile(databaseid);
+};
+
+FS.commit = function(databaseid, cb) {
+
+ var db = alasql.databases[databaseid];
+ var fsdb = {tables: {}};
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ db.data.tables[tbid] = {columns: db.tables[tbid].columns};
+ db.data[tbid] = db.tables[tbid].data;
+ }
+ }
+ FS.updateFile(databaseid);
+ return cb ? cb(1) : 1;
+};
+
+FS.begin = FS.commit;
+
+FS.rollback = function(databaseid, cb) {
+ var res = 1;
+ var db = alasql.databases[databaseid];
+ db.dbversion++;
+
+ // var lsdbid = alasql.databases[databaseid].lsdbid;
+ // lsdb = LS.get(lsdbid);
+ wait();
+ function wait() {
+ setTimeout(function() {
+ if (db.issaving) {
+ return wait();
+ } else {
+ alasql.loadFile(db.filename, !!cb, function(data) {
+ db.data = data;
+ db.tables = {};
+ for (var tbid in db.data.tables) {
+ var tb = new alasql.Table({columns: db.data.tables[tbid].columns});
+ extend(tb, db.data.tables[tbid]);
+ db.tables[tbid] = tb;
+ if (!alasql.options.autocommit) {
+ db.tables[tbid].data = db.data[tbid];
+ }
+ db.tables[tbid].indexColumns();
+
+ // index columns
+ // convert types
+ }
+
+ delete alasql.databases[databaseid];
+ alasql.databases[databaseid] = new alasql.Database(databaseid);
+ extend(alasql.databases[databaseid], db);
+ alasql.databases[databaseid].engineid = 'FILESTORAGE';
+ alasql.databases[databaseid].filename = db.filename;
+
+ if (cb) res = cb(res);
+ // Todo: check why no return
+ });
+ }
+ }, 100);
+ }
+
+ // if(!alasql.options.autocommit) {
+
+};
+
+if(utils.isBrowser && !utils.isWebWorker) {
+
+alasql = alasql || false;
+
+if (!alasql) {
+ throw new Error('alasql was not found');
+}
- FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null;
+alasql.worker = function() {
+ throw new Error('Can find webworker in this enviroment');
+};
+
+if (typeof Worker !== 'undefined') {
+ alasql.worker = function(path, paths, cb) {
+ // var path;
+ if (path === true) {
+ path = undefined;
+ }
+
+ if (typeof path === 'undefined') {
+ var sc = document.getElementsByTagName('script');
+ for (var i = 0; i < sc.length; i++) {
+ if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js';
+ break;
+ } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js';
+ break;
+ } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
+ path = sc[i].src;
+ break;
+ } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js';
+ break;
+ }
+ }
+ }
+
+ if (typeof path === 'undefined') {
+ throw new Error('Path to alasql.js is not specified');
+ } else if (path !== false) {
+ var js = "importScripts('";
+ js += path;
+ js +=
+ "');self.onmessage = function(event) {" +
+ 'alasql(event.data.sql,event.data.params, function(data){' +
+ 'postMessage({id:event.data.id, data:data});});}';
+
+ var blob = new Blob([js], {type: 'text/plain'});
+ alasql.webworker = new Worker(URL.createObjectURL(blob));
+
+ alasql.webworker.onmessage = function(event) {
+ var id = event.data.id;
+
+ alasql.buffer[id](event.data.data);
+ delete alasql.buffer[id];
+ };
+
+ alasql.webworker.onerror = function(e) {
+ throw e;
+ };
+
+ if (arguments.length > 1) {
+ var sql =
+ 'REQUIRE ' +
+ paths
+ .map(function(p) {
+ return '"' + p + '"';
+ })
+ .join(',');
+ alasql(sql, [], cb);
+ }
+ } else if (path === false) {
+ delete alasql.webworker;
+ return;
+ }
+ };
+}
- return saveAs;
- })(
- (typeof self !== 'undefined' && self) ||
- (typeof window !== 'undefined' && window) ||
- this.content
- );
-// `self` is undefined in Firefox for Android content script context
-// while `this` is nsIContentFrameMessageManager
-// with an attribute `content` that corresponds to the window
-
-if (typeof module !== 'undefined' && module.exports) {
- module.exports.saveAs = saveAs;
-} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) {
- define('FileSaver.js', function() {
- return saveAs;
- });
-}
+/* FileSaver.js
+ * A saveAs() FileSaver implementation.
+ * 1.3.2
+ * 2016-06-16 18:25:19
+ *
+ * By Eli Grey, http://eligrey.com
+ * License: MIT
+ * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
+ */
+
+/*global self */
+/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
+
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+
+var saveAs =
+ saveAs ||
+ (function(view) {
+ 'use strict';
+ // IE <10 is explicitly unsupported
+ if (
+ typeof view === 'undefined' ||
+ (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent))
+ ) {
+ return;
+ }
+ var doc = view.document,
+ // only get URL when necessary in case Blob.js hasn't overridden it yet
+ get_URL = function() {
+ return view.URL || view.webkitURL || view;
+ },
+ save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'),
+ can_use_save_link = 'download' in save_link,
+ click = function(node) {
+ var event = new MouseEvent('click');
+ node.dispatchEvent(event);
+ },
+ is_safari = /constructor/i.test(view.HTMLElement) || view.safari,
+ is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent),
+ throw_outside = function(ex) {
+ (view.setImmediate || view.setTimeout)(function() {
+ throw ex;
+ }, 0);
+ },
+ force_saveable_type = 'application/octet-stream',
+ // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
+ arbitrary_revoke_timeout = 1000 * 40, // in ms
+ revoke = function(file) {
+ var revoker = function() {
+ if (typeof file === 'string') {
+ // file is an object URL
+ get_URL().revokeObjectURL(file);
+ } else {
+ // file is a File
+ file.remove();
+ }
+ };
+ setTimeout(revoker, arbitrary_revoke_timeout);
+ },
+ dispatch = function(filesaver, event_types, event) {
+ event_types = [].concat(event_types);
+ var i = event_types.length;
+ while (i--) {
+ var listener = filesaver['on' + event_types[i]];
+ if (typeof listener === 'function') {
+ try {
+ listener.call(filesaver, event || filesaver);
+ } catch (ex) {
+ throw_outside(ex);
+ }
+ }
+ }
+ },
+ auto_bom = function(blob) {
+ // prepend BOM for UTF-8 XML and text/* types (including HTML)
+ // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
+ if (
+ /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(
+ blob.type
+ )
+ ) {
+ return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type});
+ }
+ return blob;
+ },
+ FileSaver = function(blob, name, no_auto_bom) {
+ if (!no_auto_bom) {
+ blob = auto_bom(blob);
+ }
+ // First try a.download, then web filesystem, then object URLs
+ var filesaver = this,
+ type = blob.type,
+ force = type === force_saveable_type,
+ object_url,
+ dispatch_all = function() {
+ dispatch(filesaver, 'writestart progress write writeend'.split(' '));
+ },
+ // on any filesys errors revert to saving with object URLs
+ fs_error = function() {
+ if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
+ // Safari doesn't allow downloading of blob urls
+ var reader = new FileReader();
+ reader.onloadend = function() {
+ var url = is_chrome_ios
+ ? reader.result
+ : reader.result.replace(
+ /^data:[^;]*;/,
+ 'data:attachment/file;'
+ );
+ var popup = view.open(url, '_blank');
+ if (!popup) view.location.href = url;
+ url = undefined; // release reference before dispatching
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ };
+ reader.readAsDataURL(blob);
+ filesaver.readyState = filesaver.INIT;
+ return;
+ }
+ // don't create more object URLs than needed
+ if (!object_url) {
+ object_url = get_URL().createObjectURL(blob);
+ }
+ if (force) {
+ view.location.href = object_url;
+ } else {
+ var opened = view.open(object_url, '_blank');
+ if (!opened) {
+ // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
+ view.location.href = object_url;
+ }
+ }
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ revoke(object_url);
+ };
+ filesaver.readyState = filesaver.INIT;
+
+ if (can_use_save_link) {
+ object_url = get_URL().createObjectURL(blob);
+ setTimeout(function() {
+ save_link.href = object_url;
+ save_link.download = name;
+ click(save_link);
+ dispatch_all();
+ revoke(object_url);
+ filesaver.readyState = filesaver.DONE;
+ });
+ return;
+ }
+
+ fs_error();
+ },
+ FS_proto = FileSaver.prototype,
+ saveAs = function(blob, name, no_auto_bom) {
+ return new FileSaver(blob, name || blob.name || 'download', no_auto_bom);
+ };
+ // IE 10+ (native saveAs)
+ if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
+ return function(blob, name, no_auto_bom) {
+ name = name || blob.name || 'download';
+
+ if (!no_auto_bom) {
+ blob = auto_bom(blob);
+ }
+ return navigator.msSaveOrOpenBlob(blob, name);
+ };
+ }
+
+ FS_proto.abort = function() {};
+ FS_proto.readyState = FS_proto.INIT = 0;
+ FS_proto.WRITING = 1;
+ FS_proto.DONE = 2;
+
+ FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null;
+
+ return saveAs;
+ })(
+ (typeof self !== 'undefined' && self) ||
+ (typeof window !== 'undefined' && window) ||
+ this.content
+ );
+// `self` is undefined in Firefox for Android content script context
+// while `this` is nsIContentFrameMessageManager
+// with an attribute `content` that corresponds to the window
+
+if (typeof module !== 'undefined' && module.exports) {
+ module.exports.saveAs = saveAs;
+} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) {
+ define('FileSaver.js', function() {
+ return saveAs;
+ });
+}
/* eslint-disable */
diff --git a/dist/alasql.js b/dist/alasql.js
index 6ecedb60f4..97daf2cb0e 100755
--- a/dist/alasql.js
+++ b/dist/alasql.js
@@ -1,19793 +1,19798 @@
-//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
-/*
-@module alasql
-@version 0.4.11-develop-d00d3b02undefined
-
-AlaSQL - JavaScript SQL database
-© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
-
-@license
-The MIT License (MIT)
-
-Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-/* eslint-disable */
-
-"use strict";
-
-/**
- @fileoverview AlaSQL JavaScript SQL library
- @see http://github.com/agershun/alasql
-*/
-
-/**
- Callback from statement
- @callback statement-callback
- @param {object} data Result data
-*/
-
-/**
- UMD envelope for AlaSQL
-*/
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof exports === 'object') {
- /** alasql main function */
- module.exports = factory();
- } else {
- root.alasql = factory();
- }
-}(this, function () {
-
-/**
- AlaSQL - Main Alasql class
- @function
- @param {string|function|object} sql - SQL-statement or data object for fuent interface
- @param {object} params - SQL parameters
- @param {function} cb - callback function
- @param {object} scope - Scope for nested queries
- @return {any} - Result data object
-
- @example
- Standard sync call:
- alasql('CREATE TABLE one');
- Query:
- var res = alasql('SELECT * FROM one');
- Call with parameters:
- var res = alasql('SELECT * FROM ?',[data]);
- Standard async call with callback function:
- alasql('SELECT * FROM ?',[data],function(res){
- console.log(data);
- });
- Call with scope for subquery (to pass common values):
- var scope = {one:{a:2,b;20}}
- alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope);
- Call for fluent interface with data object:
- alasql(data).Where(function(x){return x.a == 10}).exec();
- Call for fluent interface without data object:
- alasql().From(data).Where(function(x){return x.a == 10}).exec();
- */
-
-var alasql = function(sql, params, cb, scope) {
-
- params = params||[];
-
- if(typeof importScripts !== 'function' && alasql.webworker) {
- var id = alasql.lastid++;
- alasql.buffer[id] = cb;
- alasql.webworker.postMessage({id:id,sql:sql,params:params});
- return;
- }
-
- if(arguments.length === 0) {
- // Without arguments - Fluent interface
- return new yy.Select({
- columns:[new yy.Column({columnid:'*'})],
- from: [new yy.ParamValue({param:0})]
- });
- } else if(arguments.length === 1){
- // Access promise notation without using `.promise(...)`
- if(sql.constructor === Array){
- return alasql.promise(sql);
- }
- }
- // Avoid setting params if not needed even with callback
- if(typeof params === 'function'){
- scope = cb;
- cb = params;
- params = [];
- }
-
- if(typeof params !== 'object'){
- params = [params];
- }
-
- // Standard interface
- // alasql('#sql');
- if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") {
- sql = document.querySelector(sql).textContent;
- } else if(typeof sql === 'object' && sql instanceof HTMLElement) {
- sql = sql.textContent;
- } else if(typeof sql === 'function') {
- // to run multiline functions
- sql = sql.toString();
- sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1];
- }
- // Run SQL
- return alasql.exec(sql, params, cb, scope);
-};
-
-/**
- Current version of alasql
- @constant {string}
-*/
-alasql.version = '0.4.11-develop-d00d3b02undefined';
-
-/**
- Debug flag
- @type {boolean}
-*/
-alasql.debug = undefined; // Initial debug variable
-
-//*only-for-browser/*
-var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to
-var __dirname = '';
-//*/
-
-/* parser generated by jison 0.4.18 */
-/*
- Returns a Parser object of the following structure:
-
- Parser: {
- yy: {}
- }
-
- Parser.prototype: {
- yy: {},
- trace: function(),
- symbols_: {associative list: name ==> number},
- terminals_: {associative list: number ==> name},
- productions_: [...],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
- table: [...],
- defaultActions: {...},
- parseError: function(str, hash),
- parse: function(input),
-
- lexer: {
- EOF: 1,
- parseError: function(str, hash),
- setInput: function(input),
- input: function(),
- unput: function(str),
- more: function(),
- less: function(n),
- pastInput: function(),
- upcomingInput: function(),
- showPosition: function(),
- test_match: function(regex_match_array, rule_index),
- next: function(),
- lex: function(),
- begin: function(condition),
- popState: function(),
- _currentRules: function(),
- topState: function(),
- pushState: function(condition),
-
- options: {
- ranges: boolean (optional: true ==> token location info will include a .range[] member)
- flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
- backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
- },
-
- performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
- rules: [...],
- conditions: {associative list: name ==> set},
- }
- }
-
- token location info (@$, _$, etc.): {
- first_line: n,
- last_line: n,
- first_column: n,
- last_column: n,
- range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
- }
-
- the parseError function receives a 'hash' object with these members for lexer and parser errors: {
- text: (matched text)
- token: (the produced terminal token, if any)
- line: (yylineno)
- }
- while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
- loc: (yylloc)
- expected: (string describing the set of expected tokens)
- recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
- }
-*/
-var alasqlparser = (function(){
-var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764];
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1},
-terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},
-productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],
-performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
-/* this == yyval */
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:
-
- if (alasql.options.casesensitive) this.$ = $$[$0];
- else this.$ = $$[$0].toLowerCase();
-
-break;
-case 2:
- this.$ = doubleq($$[$0].substr(1,$$[$0].length-2));
-break;
-case 3:
- this.$ = $$[$0].toLowerCase()
-break;
-case 4:
- this.$ = $$[$0]
-break;
-case 5:
- this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1]
-break;
-case 6:
- return new yy.Statements({statements:$$[$0-1]});
-break;
-case 7:
- this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
-break;
-case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756:
- this.$ = [$$[$0]];
-break;
-case 10:
- this.$ = $$[$0]; $$[$0].explain = true;
-break;
-case 11:
- this.$ = $$[$0]; $$[$0].explain = true;
-break;
-case 12:
-
- this.$ = $$[$0];
-
- // TODO combine exists and queries
- if(yy.exists) this.$.exists = yy.exists;
- delete yy.exists;
- if(yy.queries) this.$.queries = yy.queries;
- delete yy.queries;
-
-break;
-case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567:
- this.$ = undefined;
-break;
-case 68:
- this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
-break;
-case 69: case 565:
- $$[$0-2].push($$[$0]); this.$=$$[$0-2];
-break;
-case 71:
- this.$ = {name:$$[$0-4], select:$$[$0-1]};
-break;
-case 72:
-
- yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
- this.$ = $$[$0-9];
-/* if(yy.exists) this.$.exists = yy.exists;
- delete yy.exists;
- if(yy.queries) this.$.queries = yy.queries;
- delete yy.queries;
-*/
-break;
-case 73:
-
- this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
- yy.extend(this.$,$$[$0-1]);
-
-break;
-case 74:
- this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}};
-break;
-case 75:
- this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}};
-break;
-case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662:
- this.$ = $$[$0-1];
-break;
-case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749:
- this.$ = $$[$0];
-break;
-case 79: case 84: case 731: case 755:
- this.$ = $$[$0-2]; this.$.push($$[$0]);
-break;
-case 81:
- this.$ = {expr:$$[$0]};
-break;
-case 82:
- this.$ = {expr:$$[$0-2],as:$$[$0]};
-break;
-case 83:
- this.$ = {removecolumns:$$[$0]};
-break;
-case 87:
- this.$ = {like:$$[$0]};
-break;
-case 90: case 104:
- this.$ = {srchid:"PROP", args: [$$[$0]]};
-break;
-case 91:
- this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
-break;
-case 92:
-
- var dir = $$[$0-1];
- if(!dir) dir = 'ASC';
- this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
-
-break;
-case 93:
- this.$ = {srchid:"PARENT"};
-break;
-case 94:
- this.$ = {srchid:"APROP", args: [$$[$0]]};
-break;
-case 95:
- this.$ = {selid:"ROOT"};
-break;
-case 96:
- this.$ = {srchid:"EQ", args: [$$[$0]]};
-break;
-case 97:
- this.$ = {srchid:"LIKE", args: [$$[$0]]};
-break;
-case 98: case 99:
- this.$ = {selid:"WITH", args: $$[$0-1]};
-break;
-case 100:
- this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
-break;
-case 101:
- this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
-break;
-case 102:
- this.$ = {selid:"OF", args:[$$[$0-1]]};
-break;
-case 103:
- this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
-break;
-case 105:
- this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
-break;
-case 106:
- this.$ = {srchid:"CHILD"};
-break;
-case 107:
- this.$ = {srchid:"VERTEX"};
-break;
-case 108:
- this.$ = {srchid:"EDGE"};
-break;
-case 109:
- this.$ = {srchid:"REF"};
-break;
-case 110:
- this.$ = {srchid:"SHARP", args:[$$[$0]]};
-break;
-case 111:
- this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
-break;
-case 112:
- this.$ = {srchid:"ATTR"};
-break;
-case 113:
- this.$ = {srchid:"OUT"};
-break;
-case 114:
- this.$ = {srchid:"IN"};
-break;
-case 115:
- this.$ = {srchid:"OUTOUT"};
-break;
-case 116:
- this.$ = {srchid:"ININ"};
-break;
-case 117:
- this.$ = {srchid:"CONTENT"};
-break;
-case 118:
- this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
-break;
-case 119:
- this.$ = {srchid:"AT", args:[$$[$0]]};
-break;
-case 120:
- this.$ = {srchid:"AS", args:[$$[$0]]};
-break;
-case 121:
- this.$ = {srchid:"SET", args:$$[$0-1]};
-break;
-case 122:
- this.$ = {selid:"TO", args:[$$[$0]]};
-break;
-case 123:
- this.$ = {srchid:"VALUE"};
-break;
-case 124:
- this.$ = {srchid:"ROW", args:$$[$0-1]};
-break;
-case 125:
- this.$ = {srchid:"CLASS", args:[$$[$0]]};
-break;
-case 126:
- this.$ = {selid:$$[$0],args:[$$[$0-1]] };
-break;
-case 127:
- this.$ = {selid:"NOT",args:$$[$0-1] };
-break;
-case 128:
- this.$ = {selid:"IF",args:$$[$0-1] };
-break;
-case 129:
- this.$ = {selid:$$[$0-3],args:$$[$0-1] };
-break;
-case 130:
- this.$ = {selid:'DISTINCT',args:$$[$0-1] };
-break;
-case 131:
- this.$ = {selid:'UNION',args:$$[$0-1] };
-break;
-case 132:
- this.$ = {selid:'UNIONALL',args:$$[$0-1] };
-break;
-case 133:
- this.$ = {selid:'ALL',args:[$$[$0-1]] };
-break;
-case 134:
- this.$ = {selid:'ANY',args:[$$[$0-1]] };
-break;
-case 135:
- this.$ = {selid:'INTERSECT',args:$$[$0-1] };
-break;
-case 136:
- this.$ = {selid:'EXCEPT',args:$$[$0-1] };
-break;
-case 137:
- this.$ = {selid:'AND',args:$$[$0-1] };
-break;
-case 138:
- this.$ = {selid:'OR',args:$$[$0-1] };
-break;
-case 139:
- this.$ = {selid:'PATH',args:[$$[$0-1]] };
-break;
-case 140:
- this.$ = {srchid:'RETURN',args:$$[$0-1] };
-break;
-case 141:
- this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] };
-break;
-case 142:
- this.$ = $$[$0-2]; this.$.push($$[$0]);
-break;
-case 144:
- this.$ = "PLUS";
-break;
-case 145:
- this.$ = "STAR";
-break;
-case 146:
- this.$ = "QUESTION";
-break;
-case 148:
- this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]);
-break;
-case 149:
- this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
-break;
-case 150:
- this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
-break;
-case 151:
-
- if(!$$[$0]) {
- this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
- } else {
- this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
- }
-
-break;
-case 152:
- if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]};
-break;
-case 153:
- this.$ = {modifier:'VALUE'}
-break;
-case 154:
- this.$ = {modifier:'ROW'}
-break;
-case 155:
- this.$ = {modifier:'COLUMN'}
-break;
-case 156:
- this.$ = {modifier:'MATRIX'}
-break;
-case 157:
- this.$ = {modifier:'TEXTSTRING'}
-break;
-case 158:
- this.$ = {modifier:'INDEX'}
-break;
-case 159:
- this.$ = {modifier:'RECORDSET'}
-break;
-case 160:
- this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)};
-break;
-case 161:
- this.$ = {top: $$[$0-1]};
-break;
-case 163: case 330: case 523: case 524: case 724:
-this.$ = undefined;
-break;
-case 164: case 165: case 166: case 167:
-this.$ = {into: $$[$0]}
-break;
-case 168:
-
- var s = $$[$0];
- s = s.substr(1,s.length-2);
- var x3 = s.substr(-3).toUpperCase();
- var x4 = s.substr(-4).toUpperCase();
- if(s[0] == '#') {
- this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
- this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- } else if(x4=='XLSX' || x4 == 'JSON') {
- this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
- }
-
-break;
-case 169:
- this.$ = { from: $$[$0] };
-break;
-case 170:
- this.$ = { from: $$[$0-1], joins: $$[$0] };
-break;
-case 171:
- this.$ = { from: $$[$0-2], joins: $$[$0-1] };
-break;
-case 173:
- this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]});
-break;
-case 174:
- this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]});
-break;
-case 175:
- this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]});
-break;
-case 176:
- this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]});
-break;
-case 178: case 243: case 452: case 530: case 531:
- this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
-break;
-case 179:
- this.$ = $$[$0-2]; this.$.as = $$[$0]
-break;
-case 180:
- this.$ = $$[$0-3]; this.$.as = $$[$0]
-break;
-case 181:
- this.$ = $$[$0-1]; this.$.as = 'default'
-break;
-case 182:
- this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0]
-break;
-case 183:
- this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
-break;
-case 184:
- this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
-break;
-case 186: case 638: case 641:
- this.$ = $$[$0-2];
-break;
-case 187: case 191: case 195: case 198:
- this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
-break;
-case 188: case 192: case 196: case 199:
- this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
-break;
-case 189: case 190: case 194: case 197:
- this.$ = $$[$0]; $$[$0].as = 'default';
-break;
-case 193:
- this.$ = {inserted:true}; /*$$[$0].as = 'default'*/;
-break;
-case 200:
-
- var s = $$[$0];
- s = s.substr(1,s.length-2);
- var x3 = s.substr(-3).toUpperCase();
- var x4 = s.substr(-4).toUpperCase();
- var r;
- if(s[0] == '#') {
- r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
- r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else if(x4=='XLSX' || x4 == 'JSON') {
- r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
- } else {
- throw new Error('Unknown string in FROM clause');
- };
- this.$ = r;
-
-break;
-case 201:
-
- if($$[$0-2] == 'INFORMATION_SCHEMA') {
- this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});
- } else {
- this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});
- }
-
-break;
-case 202:
- this.$ = new yy.Table({tableid: $$[$0]});
-break;
-case 203: case 204:
- this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
-break;
-case 207:
- this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
-break;
-case 208:
- this.$ = {table: $$[$0]};
-break;
-case 209:
- this.$ = {table: $$[$0-1], as: $$[$0] } ;
-break;
-case 210:
- this.$ = {table: $$[$0-2], as: $$[$0] } ;
-break;
-case 211:
- this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})};
-break;
-case 212:
- this.$ = {param: $$[$0-1], as: $$[$0] } ;
-break;
-case 213:
- this.$ = {param: $$[$0-2], as: $$[$0] } ;
-break;
-case 214:
- this.$ = {select: $$[$0-2], as: $$[$0]} ;
-break;
-case 215:
- this.$ = {select: $$[$0-3], as: $$[$0] } ;
-break;
-case 216:
- this.$ = {func:$$[$0], as:'default'};
-break;
-case 217:
- this.$ = {func:$$[$0-1], as: $$[$0]};
-break;
-case 218:
- this.$ = {func:$$[$0-2], as: $$[$0]};
-break;
-case 219:
- this.$ = {variable:$$[$0],as:'default'};
-break;
-case 220:
- this.$ = {variable:$$[$0-1],as:$$[$0]};
-break;
-case 221:
- this.$ = {variable:$$[$0-2],as:$$[$0]}
-break;
-case 222:
- this.$ = { joinmode: $$[$0] } ;
-break;
-case 223:
- this.$ = {joinmode: $$[$0-1], natural:true} ;
-break;
-case 224: case 225:
- this.$ = "INNER";
-break;
-case 226: case 227:
- this.$ = "LEFT";
-break;
-case 228: case 229:
- this.$ = "RIGHT";
-break;
-case 230: case 231:
- this.$ = "OUTER";
-break;
-case 232:
- this.$ = "SEMI";
-break;
-case 233:
- this.$ = "ANTI";
-break;
-case 234:
- this.$ = "CROSS";
-break;
-case 235:
- this.$ = {on: $$[$0]};
-break;
-case 236: case 697:
- this.$ = {using: $$[$0]};
-break;
-case 239:
- this.$ = {where: new yy.Expression({expression:$$[$0]})};
-break;
-case 241:
- this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
-break;
-case 244:
- this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
-break;
-case 245:
- this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
-break;
-case 246:
- this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
-break;
-case 249:
- this.$ = {having:$$[$0]}
-break;
-case 251:
- this.$ = {union: $$[$0]} ;
-break;
-case 252:
- this.$ = {unionall: $$[$0]} ;
-break;
-case 253:
- this.$ = {except: $$[$0]} ;
-break;
-case 254:
- this.$ = {intersect: $$[$0]} ;
-break;
-case 255:
- this.$ = {union: $$[$0], corresponding:true} ;
-break;
-case 256:
- this.$ = {unionall: $$[$0], corresponding:true} ;
-break;
-case 257:
- this.$ = {except: $$[$0], corresponding:true} ;
-break;
-case 258:
- this.$ = {intersect: $$[$0], corresponding:true} ;
-break;
-case 260:
- this.$ = {order:$$[$0]}
-break;
-case 262:
- this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
-break;
-case 263:
- this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
-break;
-case 264:
- this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
-break;
-case 265:
- this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
-break;
-case 266:
- this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
-break;
-case 268:
- this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]);
-break;
-case 269:
- this.$ = {limit:$$[$0-2],offset:$$[$0-6]};
-break;
-case 271:
- this.$ = {offset:$$[$0]};
-break;
-case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688:
- $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
-break;
-case 274: case 276: case 278:
- $$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
-break;
-case 275: case 277: case 279:
- $$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
-break;
-case 281:
- this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
-break;
-case 282:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
-break;
-case 283:
- this.$ = new yy.Column({columnid:$$[$0]});
-break;
-case 284:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
-break;
-case 285: case 286:
- this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
-break;
-case 287:
- this.$ = new yy.Column({columnid: $$[$0]});
-break;
-case 302:
- this.$ = new yy.DomainValueValue();
-break;
-case 303:
- this.$ = new yy.Json({value:$$[$0]});
-break;
-case 306: case 307: case 308:
-
- if(!yy.queries) yy.queries = [];
- yy.queries.push($$[$0-1]);
- $$[$0-1].queriesidx = yy.queries.length;
- this.$ = $$[$0-1];
-
-break;
-case 309:
-this.$ = $$[$0]
-break;
-case 310:
- this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
-break;
-case 311:
- this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 312:
- this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 313:
- this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
-break;
-case 314:
- this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
-break;
-case 315:
- this.$ = $$[$0]; yy.extend(this.$,{newid:true});
-break;
-case 316:
- this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
-break;
-case 317:
- this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
-break;
-case 318:
- this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
-break;
-case 319:
- this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
-break;
-case 326:
- this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
-break;
-case 327:
-
- if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {
- this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});
- } else {
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});
- }
-
-break;
-case 328:
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
-break;
-case 329:
- this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
- over:$$[$0]});
-break;
-case 331: case 332:
- this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
-break;
-case 333:
- this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
-break;
-case 334:
- this.$ = {partition:$$[$0]};
-break;
-case 335:
- this.$ = {order:$$[$0]};
-break;
-case 336:
- this.$ = "SUM";
-break;
-case 337:
- this.$ = "COUNT";
-break;
-case 338:
- this.$ = "MIN";
-break;
-case 339: case 544:
- this.$ = "MAX";
-break;
-case 340:
- this.$ = "AVG";
-break;
-case 341:
- this.$ = "FIRST";
-break;
-case 342:
- this.$ = "LAST";
-break;
-case 343:
- this.$ = "AGGR";
-break;
-case 344:
- this.$ = "ARRAY";
-break;
-case 345:
-
- var funcid = $$[$0-4];
- var exprlist = $$[$0-1];
- if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
- this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
- } else if(alasql.aggr[$$[$0-4]]) {
- this.$ = new yy.AggrValue({aggregatorid: 'REDUCE',
- funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });
- } else {
- this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
- };
-
-break;
-case 346:
- this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
-break;
-case 347:
- this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] })
-break;
-case 348:
- this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] })
-break;
-case 349:
- this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
-break;
-case 350:
- this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
-break;
-case 351:
- this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
-break;
-case 352:
- this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
-break;
-case 353:
- this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]});
-break;
-case 355:
- $$[$0-2].push($$[$0]); this.$ = $$[$0-2]
-break;
-case 356:
- this.$ = new yy.NumValue({value:+$$[$0]});
-break;
-case 357:
- this.$ = new yy.LogicValue({value:true});
-break;
-case 358:
- this.$ = new yy.LogicValue({value:false});
-break;
-case 359:
- this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
-break;
-case 360:
- this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
-break;
-case 361:
- this.$ = new yy.NullValue({value:undefined});
-break;
-case 362:
- this.$ = new yy.VarValue({variable:$$[$0]});
-break;
-case 363:
-
- if(!yy.exists) yy.exists = [];
- this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
- yy.exists.push($$[$0-1]);
-
-break;
-case 364:
- this.$ = new yy.ArrayValue({value:$$[$0-1]});
-break;
-case 365: case 366:
- this.$ = new yy.ParamValue({param: $$[$0]});
-break;
-case 367:
-
- if(typeof yy.question == 'undefined') yy.question = 0;
- this.$ = new yy.ParamValue({param: yy.question++});
-
-break;
-case 368:
-
- if(typeof yy.question == 'undefined') yy.question = 0;
- this.$ = new yy.ParamValue({param: yy.question++, array:true});
-
-break;
-case 369:
- this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
-break;
-case 370:
- this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
-break;
-case 371: case 699: case 700:
- this.$ = $$[$0-1]; this.$.push($$[$0]);
-break;
-case 373:
- this.$ = {when: $$[$0-2], then: $$[$0] };
-break;
-case 376: case 377:
- this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]});
-break;
-case 378:
- this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]});
-break;
-case 379:
- this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
-break;
-case 380:
- this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]});
-break;
-case 381:
- this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] });
-break;
-case 382:
- this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] });
-break;
-case 383:
- this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]});
-break;
-case 384:
- this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]});
-break;
-case 385:
- this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]});
-break;
-case 386:
- this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]});
-break;
-case 387:
- this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]});
-break;
-case 388:
- this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
-break;
-case 389:
- this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
-break;
-case 390:
- this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]});
-break;
-case 391:
- this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]});
-break;
-case 392:
- this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]});
-break;
-case 393:
- this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]});
-break;
-case 394: case 395: case 397:
- this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
-break;
-case 396:
- this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
-break;
-case 398: case 399: case 401:
- this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
-break;
-case 400:
- this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
-break;
-case 402:
- this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]});
-break;
-case 403:
- this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]});
-break;
-case 404:
- this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]});
-break;
-case 405:
- this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]});
-break;
-case 406:
- this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]});
-break;
-case 407:
- this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
-break;
-case 408:
- this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]});
-break;
-case 409:
- this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]});
-break;
-case 410:
- this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]});
-break;
-case 411:
- this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]});
-break;
-case 412:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 413:
-
- this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});
-
-break;
-case 414:
-
- if($$[$0-2].op == 'BETWEEN1') {
-
- if($$[$0-2].left.op == 'AND') {
- this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
- new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]})
- });
- } else {
- this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]});
- }
-
- } else if($$[$0-2].op == 'NOT BETWEEN1') {
- if($$[$0-2].left.op == 'AND') {
- this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
- new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]})
- });
- } else {
- this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',
- right1:$$[$0-2].right, right2:$$[$0]});
- }
- } else {
- this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});
- }
-
-break;
-case 415:
- this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]});
-break;
-case 416:
- this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]});
-break;
-case 417:
- this.$ = new yy.UniOp({op:'-' , right:$$[$0]});
-break;
-case 418:
- this.$ = new yy.UniOp({op:'+' , right:$$[$0]});
-break;
-case 419:
- this.$ = new yy.UniOp({op:'~' , right:$$[$0]});
-break;
-case 420:
- this.$ = new yy.UniOp({op:'#' , right:$$[$0]});
-break;
-case 421:
- this.$ = new yy.UniOp({right: $$[$0-1]});
-break;
-case 422:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 423:
-
- if(!yy.queries) yy.queries = [];
- this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});
- yy.queries.push($$[$0-1]);
-
-break;
-case 424:
- this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]});
-break;
-case 425:
- this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]});
-break;
-case 426:
- this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]});
-break;
-case 427:
- this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]});
-break;
-case 428: case 430:
- this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]});
-break;
-case 429: case 431:
- this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]});
-break;
-case 432:
-
-/* var expr = $$[$0];
- if(expr.left && expr.left.op == 'AND') {
- this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });
- } else {
-*/
- this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] });
-
-break;
-case 433:
-
- this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] });
-
-break;
-case 434:
- this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]});
-break;
-case 435:
-
- this.$ = new yy.Op({
- op:'IS',
- left:$$[$0-2],
- right: new yy.UniOp({
- op:'NOT',
- right:new yy.NullValue({value:undefined})
- })
- });
-
-break;
-case 436:
- this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ;
-break;
-case 437: case 438:
- this.$ = $$[$0];
-break;
-case 439:
- this.$ = $$[$0-1];
-break;
-case 446:
- this.$ = 'ALL';
-break;
-case 447:
- this.$ = 'SOME';
-break;
-case 448:
- this.$ = 'ANY';
-break;
-case 449:
- this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]});
-break;
-case 450:
- this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]});
-break;
-case 453:
- this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]})
-break;
-case 454:
- this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]})
-break;
-case 455:
- this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]});
-break;
-case 456:
- this.$ = new yy.Delete({table:$$[$0]});
-break;
-case 457:
- this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]});
-break;
-case 458:
- this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]});
-break;
-case 459: case 461:
- this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true});
-break;
-case 460: case 462:
- this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true});
-break;
-case 463:
- this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ;
-break;
-case 464:
- this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]});
-break;
-case 465:
- this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]});
-break;
-case 466:
- this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]});
-break;
-case 467:
- this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true});
-break;
-case 468:
- this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]});
-break;
-case 473:
- this.$ = [$$[$0-1]];
-break;
-case 476:
-this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1])
-break;
-case 477: case 478: case 480: case 488:
-this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
-break;
-case 489:
-
- this.$ = new yy.CreateTable({table:$$[$0-4]});
- yy.extend(this.$,$$[$0-7]);
- yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-5]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,$$[$0]);
-
-break;
-case 490:
-
- this.$ = new yy.CreateTable({table:$$[$0]});
- yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,$$[$0-1]);
-
-break;
-case 492:
- this.$ = {"class":true};
-break;
-case 502:
- this.$ = {temporary:true};
-break;
-case 504:
- this.$ = {ifnotexists: true};
-break;
-case 505:
- this.$ = {columns: $$[$0-2], constraints: $$[$0]};
-break;
-case 506:
- this.$ = {columns: $$[$0]};
-break;
-case 507:
- this.$ = {as: $$[$0]}
-break;
-case 508: case 532:
- this.$ = [$$[$0]];
-break;
-case 510: case 511: case 512: case 513: case 514:
- $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0];
-break;
-case 517:
- this.$ = {type: 'CHECK', expression: $$[$0-1]};
-break;
-case 518:
- this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
-break;
-case 519:
- this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]};
-break;
-case 525:
-
- this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
-
-break;
-case 534:
- this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
-break;
-case 535:
- this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]);
-break;
-case 536:
- this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''});
-break;
-case 537:
- this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]}
-break;
-case 538:
- this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]}
-break;
-case 539:
- this.$ = {dbtypeid: $$[$0]}
-break;
-case 540:
- this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]}
-break;
-case 541:
- this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']';
-break;
-case 543: case 750:
- this.$ = +$$[$0];
-break;
-case 545:
-this.$ = undefined
-break;
-case 547:
-
- yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1];
-
-break;
-case 550:
-this.$ = {primarykey:true};
-break;
-case 551: case 552:
-this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}};
-break;
-case 553:
- this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}}
-break;
-case 554:
- this.$ = {identity: {value:1,step:1}}
-break;
-case 555: case 557:
-this.$ = {"default":$$[$0]};
-break;
-case 556:
-this.$ = {"default":$$[$0-1]};
-break;
-case 558:
-this.$ = {"null":true};
-break;
-case 559:
-this.$ = {notnull:true};
-break;
-case 560:
-this.$ = {check:$$[$0]};
-break;
-case 561:
-this.$ = {unique:true};
-break;
-case 562:
-this.$ = {"onupdate":$$[$0]};
-break;
-case 563:
-this.$ = {"onupdate":$$[$0-1]};
-break;
-case 564:
- this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]);
-break;
-case 568:
- this.$ = {ifexists: true};
-break;
-case 569:
- this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]});
-break;
-case 570:
- this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]});
-break;
-case 571:
- this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]});
-break;
-case 572:
- this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]});
-break;
-case 573:
- this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]});
-break;
-case 574:
- this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]});
-break;
-case 575:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() });
-break;
-case 576:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] });
-break;
-case 577:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] });
-break;
-case 578:
- this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]});
-break;
-case 579:
- this.$ = new yy.DetachDatabase({databaseid:$$[$0]});
-break;
-case 580:
- this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]);
-break;
-case 581:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]);
-break;
-case 582:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]);
-break;
-case 583:
- this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),
- as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]);
-break;
-case 584:
-this.$ = undefined;
-break;
-case 586: case 587:
- this.$ = new yy.UseDatabase({databaseid: $$[$0] });
-break;
-case 588:
- this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]);
-break;
-case 589: case 590:
- this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]);
-break;
-case 591:
- this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]})
-break;
-case 592:
- this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true})
-break;
-case 593:
- this.$ = new yy.DropIndex({indexid:$$[$0]});
-break;
-case 594:
- this.$ = new yy.ShowDatabases();
-break;
-case 595:
- this.$ = new yy.ShowDatabases({like:$$[$0]});
-break;
-case 596:
- this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() });
-break;
-case 597:
- this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]});
-break;
-case 598:
- this.$ = new yy.ShowTables();
-break;
-case 599:
- this.$ = new yy.ShowTables({like:$$[$0]});
-break;
-case 600:
- this.$ = new yy.ShowTables({databaseid: $$[$0]});
-break;
-case 601:
- this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]});
-break;
-case 602:
- this.$ = new yy.ShowColumns({table: $$[$0]});
-break;
-case 603:
- this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]});
-break;
-case 604:
- this.$ = new yy.ShowIndex({table: $$[$0]});
-break;
-case 605:
- this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]});
-break;
-case 606:
- this.$ = new yy.ShowCreateTable({table: $$[$0]});
-break;
-case 607:
- this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]});
-break;
-case 608:
-
- this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]});
- yy.extend(this.$,$$[$0-9]);
- yy.extend(this.$,$$[$0-7]);
-
-break;
-case 609:
-
- this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]});
- yy.extend(this.$,$$[$0-6]);
- yy.extend(this.$,$$[$0-4]);
-
-break;
-case 613:
- this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]);
-break;
-case 614: case 760:
- this.$ = new yy.ExpressionStatement({expression:$$[$0]});
-break;
-case 615:
- this.$ = new yy.Source({url:$$[$0].value});
-break;
-case 616:
- this.$ = new yy.Assert({value:$$[$0]});
-break;
-case 617:
- this.$ = new yy.Assert({value:$$[$0].value});
-break;
-case 618:
- this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]});
-break;
-case 620: case 631: case 633:
- this.$ = $$[$0].value;
-break;
-case 621: case 629:
- this.$ = +$$[$0].value;
-break;
-case 622:
- this.$ = (!!$$[$0].value);
-break;
-case 630:
- this.$ = ""+$$[$0].value;
-break;
-case 639:
- this.$ = {};
-break;
-case 642:
- this.$ = [];
-break;
-case 643:
- yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2];
-break;
-case 645:
- this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0];
-break;
-case 646: case 647:
- this.$ = {}; this.$[$$[$0-2]] = $$[$0];
-break;
-case 650:
- this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]});
-break;
-case 651:
- this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]});
-break;
-case 652:
- this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]});
-break;
-case 653:
- this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]});
-break;
-case 654:
- this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]});
-break;
-case 655:
- this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]});
-break;
-case 656:
-this.$ = '@';
-break;
-case 657:
-this.$ = '$';
-break;
-case 663:
- this.$ = true;
-break;
-case 664:
- this.$ = false;
-break;
-case 665:
- this.$ = new yy.CommitTransaction();
-break;
-case 666:
- this.$ = new yy.RollbackTransaction();
-break;
-case 667:
- this.$ = new yy.BeginTransaction();
-break;
-case 668:
- this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]});
- if($$[$0-1].exists) this.$.exists = $$[$0-1].exists;
- if($$[$0-1].queries) this.$.queries = $$[$0-1].queries;
-
-break;
-case 669:
-
- this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 670:
-this.$ = $$[$0];
-break;
-case 671:
- this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 672:
- this.$ = new yy.Continue();
-break;
-case 673:
- this.$ = new yy.Break();
-break;
-case 674:
- this.$ = new yy.BeginEnd({statements:$$[$0-1]});
-break;
-case 675:
- this.$ = new yy.Print({exprs:$$[$0]});
-break;
-case 676:
- this.$ = new yy.Print({select:$$[$0]});
-break;
-case 677:
- this.$ = new yy.Require({paths:$$[$0]});
-break;
-case 678:
- this.$ = new yy.Require({plugins:$$[$0]});
-break;
-case 679: case 680:
-this.$ = $$[$0].toUpperCase();
-break;
-case 681:
- this.$ = new yy.Echo({expr:$$[$0]});
-break;
-case 686:
- this.$ = new yy.Declare({declares:$$[$0]});
-break;
-case 689:
- this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]);
-break;
-case 690:
- this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]);
-break;
-case 691:
- this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
-break;
-case 692:
- this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
-break;
-case 693:
- this.$ = new yy.TruncateTable({table:$$[$0]});
-break;
-case 694:
-
- this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);
- yy.extend(this.$,$$[$0-2]);
- yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);
-
-break;
-case 695: case 696:
- this.$ = {into: $$[$0]};
-break;
-case 698:
- this.$ = {on:$$[$0]};
-break;
-case 703:
- this.$ = {matched:true, action:$$[$0]}
-break;
-case 704:
- this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]}
-break;
-case 705:
- this.$ = {"delete":true};
-break;
-case 706:
- this.$ = {update:$$[$0]};
-break;
-case 707: case 708:
- this.$ = {matched:false, bytarget: true, action:$$[$0]}
-break;
-case 709: case 710:
- this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]}
-break;
-case 711:
- this.$ = {matched:false, bysource: true, action:$$[$0]}
-break;
-case 712:
- this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]}
-break;
-case 713:
- this.$ = {insert:true, values:$$[$0]};
-break;
-case 714:
- this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]};
-break;
-case 715:
- this.$ = {insert:true, defaultvalues:true};
-break;
-case 716:
- this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]};
-break;
-case 718:
- this.$ = {output:{columns:$$[$0]}}
-break;
-case 719:
- this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}}
-break;
-case 720:
- this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}}
-break;
-case 721:
- this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}}
-break;
-case 722:
-
- this.$ = new yy.CreateVertex({"class":$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]});
- yy.extend(this.$,$$[$0]);
-
-break;
-case 725:
- this.$ = {sets:$$[$0]};
-break;
-case 726:
- this.$ = {content:$$[$0]};
-break;
-case 727:
- this.$ = {select:$$[$0]};
-break;
-case 728:
-
- this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]});
- yy.extend(this.$,$$[$0]);
-
-break;
-case 729:
- this.$ = new yy.CreateGraph({graph:$$[$0]});
-break;
-case 730:
- this.$ = new yy.CreateGraph({from:$$[$0]});
-break;
-case 733:
-
- this.$ = $$[$0-2];
- if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]});
- if($$[$0]) this.$.as = $$[$0];
-
-break;
-case 734:
-
- this.$ = {source:$$[$0-6], target: $$[$0]};
- if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]});
- if($$[$0-2]) this.$.as = $$[$0-2];
- yy.extend(this.$,$$[$0-4]);
-
-break;
-case 735:
-
- this.$ = {source:$$[$0-5], target: $$[$0]};
- if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]});
- if($$[$0-1]) this.$.as = $$[$0-2];
-
-break;
-case 736:
-
- this.$ = {source:$$[$0-2], target: $$[$0]};
-
-break;
-case 740:
- this.$ = {vars:$$[$0], method:$$[$0-1]};
-break;
-case 743: case 744:
-
- var s3 = $$[$0-1];
- this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), "class":$$[$0]};
-
-break;
-case 745:
-
- var s2 = $$[$0-1];
- this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), "class":$$[$0]};
-
-break;
-case 746:
-
- var s1 = $$[$0-1];
- this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), "class":$$[$0]};
-
-break;
-case 747:
-
- this.$ = {"class":$$[$0]};
-
-break;
-case 753:
- this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]});
-break;
-case 754:
- this.$ = new yy.AddRule({right:$$[$0]});
-break;
-case 757:
- this.$ = new yy.Term({termid:$$[$0]});
-break;
-case 758:
- this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]});
-break;
-case 761:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 762:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]});
-
-break;
-case 763:
-
- this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]});
- if($$[$0].exists) this.$.exists = $$[$0].exists;
- if($$[$0].queries) this.$.queries = $$[$0].queries;
-
-break;
-case 764: case 765: case 767:
- this.$ = 'AFTER';
-break;
-case 766:
- this.$ = 'BEFORE';
-break;
-case 768:
- this.$ = 'INSTEADOF';
-break;
-case 769:
- this.$ = 'INSERT';
-break;
-case 770:
- this.$ = 'DELETE';
-break;
-case 771:
- this.$ = 'UPDATE';
-break;
-case 772:
- this.$ = new yy.DropTrigger({trigger:$$[$0]});
-break;
-case 773:
- this.$ = new yy.Reindex({indexid:$$[$0]});
-break;
-case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085:
-this.$ = [];
-break;
-case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086:
-$$[$0-1].push($$[$0]);
-break;
-case 1061: case 1063:
-this.$ = [$$[$0]];
-break;
-}
-},
-table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])],
-defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},
-parseError: function parseError(str, hash) {
- if (hash.recoverable) {
- this.trace(str);
- } else {
- var error = new Error(str);
- error.hash = hash;
- throw error;
- }
-},
-parse: function parse(input) {
- var self = this,
- stack = [0],
- tstack = [], // token stack
- vstack = [null], // semantic value stack
- lstack = [], // location stack
- table = this.table,
- yytext = '',
- yylineno = 0,
- yyleng = 0,
- recovering = 0,
- TERROR = 2,
- EOF = 1;
-
- var args = lstack.slice.call(arguments, 1);
-
- //this.reductionCount = this.shiftCount = 0;
-
- var lexer = Object.create(this.lexer);
- var sharedState = { yy: {} };
- // copy state
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
-
- lexer.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer;
- sharedState.yy.parser = this;
- if (typeof lexer.yylloc == 'undefined') {
- lexer.yylloc = {};
- }
- var yyloc = lexer.yylloc;
- lstack.push(yyloc);
-
- var ranges = lexer.options && lexer.options.ranges;
-
- if (typeof sharedState.yy.parseError === 'function') {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
-
- function popStack (n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
-
-_token_stack:
- var lex = function () {
- var token;
- token = lexer.lex() || EOF;
- // if token isn't its numeric value, convert
- if (typeof token !== 'number') {
- token = self.symbols_[token] || token;
- }
- return token;
- }
-
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- // retreive state number from top of stack
- state = stack[stack.length - 1];
-
- // use default actions if available
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol === null || typeof symbol == 'undefined') {
- symbol = lex();
- }
- // read action for current state and first input
- action = table[state] && table[state][symbol];
- }
-
-_handle_error:
- // handle parse error
- if (typeof action === 'undefined' || !action.length || !action[0]) {
- var error_rule_depth;
- var errStr = '';
-
- // Return the rule stack depth where the nearest error rule can be found.
- // Return FALSE when no error recovery rule was found.
- function locateNearestErrorRecoveryRule(state) {
- var stack_probe = stack.length - 1;
- var depth = 0;
-
- // try to recover from error
- for(;;) {
- // check for error recovery rule in this state
- if ((TERROR.toString()) in table[state]) {
- return depth;
- }
- if (state === 0 || stack_probe < 2) {
- return false; // No suitable error recovery rule available.
- }
- stack_probe -= 2; // popStack(1): [symbol, action]
- state = stack[stack_probe];
- ++depth;
- }
- }
-
- if (!recovering) {
- // first see if there's any chance at hitting an error recovery rule:
- error_rule_depth = locateNearestErrorRecoveryRule(state);
-
- // Report error
- expected = [];
- for (p in table[state]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push("'"+this.terminals_[p]+"'");
- }
- }
- if (lexer.showPosition) {
- errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'";
- } else {
- errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
- (symbol == EOF ? "end of input" :
- ("'"+(this.terminals_[symbol] || symbol)+"'"));
- }
- this.parseError(errStr, {
- text: lexer.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer.yylineno,
- loc: yyloc,
- expected: expected,
- recoverable: (error_rule_depth !== false)
- });
- } else if (preErrorSymbol !== EOF) {
- error_rule_depth = locateNearestErrorRecoveryRule(state);
- }
-
- // just recovered from another error
- if (recovering == 3) {
- if (symbol === EOF || preErrorSymbol === EOF) {
- throw new Error(errStr || 'Parsing halted while starting to recover from another error.');
- }
-
- // discard current lookahead and grab another
- yyleng = lexer.yyleng;
- yytext = lexer.yytext;
- yylineno = lexer.yylineno;
- yyloc = lexer.yylloc;
- symbol = lex();
- }
-
- // try to recover from error
- if (error_rule_depth === false) {
- throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');
- }
- popStack(error_rule_depth);
-
- preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token
- symbol = TERROR; // insert generic error symbol as new lookahead
- state = stack[stack.length-1];
- action = table[state] && table[state][TERROR];
- recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
- }
-
- // this shouldn't happen, unless resolve defaults are off
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
- }
-
- switch (action[0]) {
- case 1: // shift
- //this.shiftCount++;
-
- stack.push(symbol);
- vstack.push(lexer.yytext);
- lstack.push(lexer.yylloc);
- stack.push(action[1]); // push state
- symbol = null;
- if (!preErrorSymbol) { // normal execution/no error
- yyleng = lexer.yyleng;
- yytext = lexer.yytext;
- yylineno = lexer.yylineno;
- yyloc = lexer.yylloc;
- if (recovering > 0) {
- recovering--;
- }
- } else {
- // error just occurred, resume old lookahead f/ before error
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
-
- case 2:
- // reduce
- //this.reductionCount++;
-
- len = this.productions_[action[1]][1];
-
- // perform semantic action
- yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
- // default location, uses first token for firsts, last for lasts
- yyval._$ = {
- first_line: lstack[lstack.length-(len||1)].first_line,
- last_line: lstack[lstack.length-1].last_line,
- first_column: lstack[lstack.length-(len||1)].first_column,
- last_column: lstack[lstack.length-1].last_column
- };
- if (ranges) {
- yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]];
- }
- r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
-
- if (typeof r !== 'undefined') {
- return r;
- }
-
- // pop off stack
- if (len) {
- stack = stack.slice(0,-1*len*2);
- vstack = vstack.slice(0, -1*len);
- lstack = lstack.slice(0, -1*len);
- }
-
- stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- // goto new state = table[STATE][NONTERMINAL]
- newState = table[stack[stack.length-2]][stack[stack.length-1]];
- stack.push(newState);
- break;
-
- case 3:
- // accept
- return true;
- }
-
- }
-
- return true;
-}};
-
-// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
-// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText))
-
-var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"]
-
-parser.parseError = function(str, hash) {
- if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) {
- return
- }
- throw new SyntaxError(str)
-}
-/* generated by jison-lex 0.3.4 */
-var lexer = (function(){
-var lexer = ({
-
-EOF:1,
-
-parseError:function parseError(str, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-
-// resets the lexer, sets new input
-setInput:function (input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0,0];
- }
- this.offset = 0;
- return this;
- },
-
-// consumes and returns one char from the input
-input:function () {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
-
- this._input = this._input.slice(1);
- return ch;
- },
-
-// unshifts one char (or a string) into the input
-unput:function (ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
-
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- //this.yyleng -= len;
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
-
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
-
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ?
- (lines.length === oldLines.length ? this.yylloc.first_column : 0)
- + oldLines[oldLines.length - lines.length].length - lines[0].length :
- this.yylloc.first_column - len
- };
-
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
-
-// When called from action, caches matched text and appends it on next action
-more:function () {
- this._more = true;
- return this;
- },
-
-// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
-reject:function () {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
-
- }
- return this;
- },
-
-// retain first n characters of the match
-less:function (n) {
- this.unput(this.match.slice(n));
- },
-
-// displays already matched input, i.e. for error messages
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-
-// displays upcoming input, i.e. for error messages
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
- },
-
-// displays the character position where the lexing error occurred, i.e. for error messages
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c + "^";
- },
-
-// test the lexed token: return FALSE when not a match, otherwise return token
-test_match:function (match, indexed_rule) {
- var token,
- lines,
- backup;
-
- if (this.options.backtrack_lexer) {
- // save context
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
-
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ?
- lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
- this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token) {
- return token;
- } else if (this._backtrack) {
- // recover context
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false; // rule action called reject() implying the next rule should be tested instead.
- }
- return false;
- },
-
-// return next match in input
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
-
- var token,
- match,
- tempMatch,
- index;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i = 0; i < rules.length; i++) {
- tempMatch = this._input.match(this.rules[rules[i]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i;
- if (this.options.backtrack_lexer) {
- token = this.test_match(tempMatch, rules[i]);
- if (token !== false) {
- return token;
- } else if (this._backtrack) {
- match = false;
- continue; // rule action called reject() implying a rule MISmatch.
- } else {
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token = this.test_match(match, rules[index]);
- if (token !== false) {
- return token;
- }
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
-
-// return next match that has a token
-lex:function lex() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
-
-// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-
-// pop the previously active lexer condition state off the condition stack
-popState:function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
-
-// produce the lexer rule set which is active for the currently active lexer condition state
-_currentRules:function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
-
-// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
-topState:function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
-
-// alias for begin(condition)
-pushState:function pushState(condition) {
- this.begin(condition);
- },
-
-// return the number of states currently on the stack
-stateStackSize:function stateStackSize() {
- return this.conditionStack.length;
- },
-options: {"case-insensitive":true},
-performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-var YYSTATE=YY_START;
-switch($avoiding_name_collisions) {
-case 0:return 266
-break;
-case 1:return 302
-break;
-case 2:return 420
-break;
-case 3:return 299
-break;
-case 4:return 5
-break;
-case 5:return 5
-break;
-case 6:return 296
-break;
-case 7:return 296
-break;
-case 8:return 132
-break;
-case 9:return 132
-break;
-case 10:return /* its a COMMENT */
-break;
-case 11:/* skip whitespace */
-break;
-case 12:return 316
-break;
-case 13:return 319
-break;
-case 14:yy_.yytext = 'VALUE';return 89
-break;
-case 15:yy_.yytext = 'VALUE';return 189
-break;
-case 16:yy_.yytext = 'ROW';return 189
-break;
-case 17:yy_.yytext = 'COLUMN';return 189
-break;
-case 18:yy_.yytext = 'MATRIX';return 189
-break;
-case 19:yy_.yytext = 'INDEX';return 189
-break;
-case 20:yy_.yytext = 'RECORDSET';return 189
-break;
-case 21:yy_.yytext = 'TEXT';return 189
-break;
-case 22:yy_.yytext = 'SELECT';return 189
-break;
-case 23:return 520
-break;
-case 24:return 381
-break;
-case 25:return 402
-break;
-case 26:return 515
-break;
-case 27:return 287
-break;
-case 28:return 269
-break;
-case 29:return 269
-break;
-case 30:return 164
-break;
-case 31:return 400
-break;
-case 32:return 170
-break;
-case 33:return 229
-break;
-case 34:return 166
-break;
-case 35:return 207
-break;
-case 36:return 288
-break;
-case 37:return 76
-break;
-case 38:return 418
-break;
-case 39:return 242
-break;
-case 40:return 404
-break;
-case 41:return 356
-break;
-case 42:return 284
-break;
-case 43:return 514
-break;
-case 44:return 437
-break;
-case 45:return 330
-break;
-case 46:return 441
-break;
-case 47:return 331
-break;
-case 48:return 315
-break;
-case 49:return 119
-break;
-case 50:return 112
-break;
-case 51:return 315
-break;
-case 52:return 112
-break;
-case 53:return 315
-break;
-case 54:return 112
-break;
-case 55:return 315
-break;
-case 56:return 508
-break;
-case 57:return 303
-break;
-case 58:return 271
-break;
-case 59:return 368
-break;
-case 60:return 130
-break;
-case 61:return 'CLOSE'
-break;
-case 62:return 243
-break;
-case 63:return 190
-break;
-case 64:return 190
-break;
-case 65:return 434
-break;
-case 66:return 367
-break;
-case 67:return 470
-break;
-case 68:return 440
-break;
-case 69:return 273
-break;
-case 70:return 240
-break;
-case 71:return 281
-break;
-case 72:return 267
-break;
-case 73:return 206
-break;
-case 74:return 238
-break;
-case 75:return 265
-break;
-case 76:return 'CURSOR'
-break;
-case 77:return 405
-break;
-case 78:return 291
-break;
-case 79:return 292
-break;
-case 80:return 448
-break;
-case 81:return 343
-break;
-case 82:return 338
-break;
-case 83:return 'DELETED'
-break;
-case 84:return 242
-break;
-case 85:return 406
-break;
-case 86:return 185
-break;
-case 87:return 396
-break;
-case 88:return 447
-break;
-case 89:return 135
-break;
-case 90:return 306
-break;
-case 91:return 389
-break;
-case 92:return 310
-break;
-case 93:return 314
-break;
-case 94:return 169
-break;
-case 95:return 508
-break;
-case 96:return 508
-break;
-case 97:return 298
-break;
-case 98:return 14
-break;
-case 99:return 295
-break;
-case 100:return 249
-break;
-case 101:return 285
-break;
-case 102:return 95
-break;
-case 103:return 373
-break;
-case 104:return 183
-break;
-case 105:return 227
-break;
-case 106:return 268
-break;
-case 107:return 313
-break;
-case 108:return 602
-break;
-case 109:return 472
-break;
-case 110:return 232
-break;
-case 111:return 236
-break;
-case 112:return 239
-break;
-case 113:return 156
-break;
-case 114:return 356
-break;
-case 115:return 332
-break;
-case 116:return 99
-break;
-case 117:return 193
-break;
-case 118:return 212
-break;
-case 119:return 224
-break;
-case 120:return 516
-break;
-case 121:return 339
-break;
-case 122:return 213
-break;
-case 123:return 168
-break;
-case 124:return 293
-break;
-case 125:return 198
-break;
-case 126:return 223
-break;
-case 127:return 370
-break;
-case 128:return 286
-break;
-case 129:return 'LET'
-break;
-case 130:return 225
-break;
-case 131:return 112
-break;
-case 132:return 245
-break;
-case 133:return 460
-break;
-case 134:return 191
-break;
-case 135:return 283
-break;
-case 136:return 390
-break;
-case 137:return 282
-break;
-case 138:return 452
-break;
-case 139:return 169
-break;
-case 140:return 403
-break;
-case 141:return 222
-break;
-case 142:return 645
-break;
-case 143:return 270
-break;
-case 144:return 244
-break;
-case 145:return 380
-break;
-case 146:return 154
-break;
-case 147:return 297
-break;
-case 148:return 433
-break;
-case 149:return 230
-break;
-case 150:return 415
-break;
-case 151:return 129
-break;
-case 152:return 247
-break;
-case 153:return 'OPEN'
-break;
-case 154:return 416
-break;
-case 155:return 171
-break;
-case 156:return 118
-break;
-case 157:return 208
-break;
-case 158:return 276
-break;
-case 159:return 172
-break;
-case 160:return 279
-break;
-case 161:return 765
-break;
-case 162:return 93
-break;
-case 163:return 16
-break;
-case 164:return 369
-break;
-case 165:return 442
-break;
-case 166:return 678
-break;
-case 167:return 15
-break;
-case 168:return 414
-break;
-case 169:return 194
-break;
-case 170:return 'REDUCE'
-break;
-case 171:return 374
-break;
-case 172:return 311
-break;
-case 173:return 517
-break;
-case 174:return 682
-break;
-case 175:return 107
-break;
-case 176:return 401
-break;
-case 177:return 175
-break;
-case 178:return 290
-break;
-case 179:return 443
-break;
-case 180:return 687
-break;
-case 181:return 173
-break;
-case 182:return 173
-break;
-case 183:return 226
-break;
-case 184:return 436
-break;
-case 185:return 237
-break;
-case 186:return 150
-break;
-case 187:return 766
-break;
-case 188:return 405
-break;
-case 189:return 89
-break;
-case 190:return 228
-break;
-case 191:return 146
-break;
-case 192:return 146
-break;
-case 193:return 409
-break;
-case 194:return 334
-break;
-case 195:return 417
-break;
-case 196:return 'STRATEGY'
-break;
-case 197:return 'STORE'
-break;
-case 198:return 280
-break;
-case 199:return 353
-break;
-case 200:return 353
-break;
-case 201:return 463
-break;
-case 202:return 357
-break;
-case 203:return 357
-break;
-case 204:return 192
-break;
-case 205:return 309
-break;
-case 206:return 'TIMEOUT'
-break;
-case 207:return 148
-break;
-case 208:return 195
-break;
-case 209:return 435
-break;
-case 210:return 435
-break;
-case 211:return 509
-break;
-case 212:return 294
-break;
-case 213:return 451
-break;
-case 214:return 162
-break;
-case 215:return 187
-break;
-case 216:return 98
-break;
-case 217:return 335
-break;
-case 218:return 408
-break;
-case 219:return 231
-break;
-case 220:return 149
-break;
-case 221:return 344
-break;
-case 222:return 134
-break;
-case 223:return 410
-break;
-case 224:return 308
-break;
-case 225:return 128
-break;
-case 226:return 439
-break;
-case 227:return 72
-break;
-case 228:return 435 /* Is this keyword required? */
-break;
-case 229:return 131
-break;
-case 230:return 131
-break;
-case 231:return 115
-break;
-case 232:return 137
-break;
-case 233:return 179
-break;
-case 234:return 317
-break;
-case 235:return 180
-break;
-case 236:return 133
-break;
-case 237:return 138
-break;
-case 238:return 326
-break;
-case 239:return 323
-break;
-case 240:return 325
-break;
-case 241:return 322
-break;
-case 242:return 320
-break;
-case 243:return 318
-break;
-case 244:return 319
-break;
-case 245:return 142
-break;
-case 246:return 141
-break;
-case 247:return 139
-break;
-case 248:return 321
-break;
-case 249:return 324
-break;
-case 250:return 140
-break;
-case 251:return 124
-break;
-case 252:return 324
-break;
-case 253:return 77
-break;
-case 254:return 78
-break;
-case 255:return 145
-break;
-case 256:return 424
-break;
-case 257:return 426
-break;
-case 258:return 300
-break;
-case 259:return 505
-break;
-case 260:return 507
-break;
-case 261:return 122
-break;
-case 262:return 116
-break;
-case 263:return 74
-break;
-case 264:return 333
-break;
-case 265:return 152
-break;
-case 266:return 764
-break;
-case 267:return 143
-break;
-case 268:return 181
-break;
-case 269:return 136
-break;
-case 270:return 123
-break;
-case 271:return 312
-break;
-case 272:return 4
-break;
-case 273:return 10
-break;
-case 274:return 'INVALID'
-break;
-}
-},
-rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],
-conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}}
-});
-return lexer;
-})();
-parser.lexer = lexer;
-function Parser () {
- this.yy = {};
-}
-Parser.prototype = parser;parser.Parser = Parser;
-return new Parser;
-})();
-
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = alasqlparser;
-exports.Parser = alasqlparser.Parser;
-exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); };
-exports.main = function commonjsMain(args) {
- if (!args[1]) {
- console.log('Usage: '+args[0]+' FILE');
- process.exit(1);
- }
- var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
- return exports.parser.parse(source);
-};
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(process.argv.slice(1));
-}
-}
-/**
- 12prettyflag.js - prettify
- @todo move this functionality to plugin
-*/
-
-/**
- Pretty flag - nice HTML output or standard text without any tags
- @type {boolean}
-*/
-
-alasql.prettyflag = false;
-
-/**
- Pretty output of SQL functions
- @function
- @param {string} sql SQL statement
- @param {boolean} flag value
- @return {string} HTML or text string with pretty output
-*/
-
-alasql.pretty = function(sql, flag) {
- var pf = alasql.prettyflag;
- alasql.prettyflag = !flag;
- var s = alasql.parse(sql).toString();
- alasql.prettyflag = pf;
- return s;
-};
-
-/*jshint unused:false*/
-/*
- Utilities for Alasql.js
-
- @todo Review the list of utilities
- @todo Find more effective utilities
-*/
-
-/**
- Alasql utility functions
- @type {object}
- */
-var utils = (alasql.utils = {});
-
-/**
- Convert NaN to undefined
- @function
- @param {string} s JavaScript string to be modified
- @return {string} Covered expression
-
- @example
-
- 123 => 123
- undefined => undefined
- NaN => undefined
-
- */
-function n2u(s) {
- return '(y=' + s + ',y===y?y:undefined)';
-}
-
-/**
- Return undefined if s undefined
- @param {string} s JavaScript string to be modified
- @return {string} Covered expression
-
- @example
-
- 123,a => a
- undefined,a => undefined
- NaN,a => undefined
-
- */
-function und(s, r) {
- return '(y=' + s + ',typeof y=="undefined"?undefined:' + r + ')';
-}
-
-/**
- Return always true. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()
- @function
- @return {boolean} Always true
- */
-function returnTrue() {
- return true;
-}
-
-/**
- Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()
- @function
- @return {undefined} Always undefined
- */
-function returnUndefined() {}
-
-/**
- Escape string
- @function
- @param {string} s Source string
- @return {string} Escaped string
- @example
-
- Pit\er's => Pit\\er\'s
-
- */
-// based on joliss/js-string-escape
-var escapeq = (utils.escapeq = function(s) {
-
- return ('' + s).replace(/["'\\\n\r\u2028\u2029]/g, function(character) {
- // Escape all characters not included in SingleStringCharacters and
- // DoubleStringCharacters on
- // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
- switch (character) {
- case '"':
- case "'":
- case '\\':
- return '\\' + character;
- // Four possible LineTerminator characters need to be escaped:
- case '\n':
- return '\\n';
- case '\r':
- return '\\r';
- case '\u2028':
- return '\\u2028';
- case '\u2029':
- return '\\u2029';
- }
- });
-});
-
-/**
- Double quotes for SQL statements
- @param {string} s Source string
- @return {string} Escaped string
-
- @example
-
- Piter's => Piter''s
-
- */
-var escapeqq = (utils.undoubleq = function(s) {
- return s.replace(/(\')/g, "''");
-});
-
-/**
- Replace double quotes with single quote
- @param {string} s Source string
- @return {string} Replaced string
- @example
-
- Piter''s => Piter's
-
- */
-var doubleq = (utils.doubleq = function(s) {
- return s.replace(/(\'\')/g, "\\'");
-});
-
-/**
- Replace sigle quote to escaped single quote
- @param {string} s Source string
- @return {string} Replaced string
-
- @todo Chack this functions
-
- */
-var doubleqq = (utils.doubleqq = function(s) {
- return s.replace(/\'/g, "'");
-});
-
-/**
- Cut BOM first character for UTF-8 files (for merging two files)
- @param {string} s Source string
- @return {string} Replaced string
- */
-
-var cutbom = function(s) {
- if (s[0] === String.fromCharCode(65279)) {
- s = s.substr(1);
- }
- return s;
-};
-
-/**
- Get the global scope
- Inspired by System.global
- @return {object} The global scope
- */
-utils.global = (function() {
- if (typeof self !== 'undefined') {
- return self;
- }
- if (typeof window !== 'undefined') {
- return window;
- }
- if (typeof global !== 'undefined') {
- return global;
- }
- return Function('return this')();
-})();
-
-/**
- Find out if a function is native to the enviroment
- @param {function} Function to check
- @return {boolean} True if function is native
- */
-var isNativeFunction = (utils.isNativeFunction = function(fn) {
- return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]');
-});
-
-/**
- Find out if code is running in a web worker enviroment
- @return {boolean} True if code is running in a web worker enviroment
- */
-utils.isWebWorker = (function() {
- try {
- var importScripts = utils.global.importScripts;
- return utils.isNativeFunction(importScripts);
- } catch (e) {
- return false;
- }
-})();
-
-/**
- Find out if code is running in a node enviroment
- @return {boolean} True if code is running in a node enviroment
- */
-utils.isNode = (function() {
- try {
- return utils.isNativeFunction(utils.global.process.reallyExit);
- } catch (e) {
- return false;
- }
-})();
-
-/**
- Find out if code is running in a browser enviroment
- @return {boolean} True if code is running in a browser enviroment
- */
-utils.isBrowser = (function() {
- try {
- return utils.isNativeFunction(utils.global.location.reload);
- } catch (e) {
- return false;
- }
-})();
-
-/**
- Find out if code is running in a browser with a browserify setup
- @return {boolean} True if code is running in a browser with a browserify setup
- */
-utils.isBrowserify = (function() {
- return utils.isBrowser && typeof process !== 'undefined' && process.browser;
-})();
-
-/**
- Find out if code is running in a browser with a requireJS setup
- @return {boolean} True if code is running in a browser with a requireJS setup
- */
-utils.isRequireJS = (function() {
- return (
- utils.isBrowser && typeof require === 'function' && typeof require.specified === 'function'
- );
-})();
-
-/**
- Find out if code is running with Meteor in the enviroment
- @return {boolean} True if code is running with Meteor in the enviroment
-
- @todo Find out if this is the best way to do this
- */
-utils.isMeteor = (function() {
- return typeof Meteor !== 'undefined' && Meteor.release;
-})();
-
-/**
- Find out if code is running on a Meteor client
- @return {boolean} True if code is running on a Meteor client
- */
-utils.isMeteorClient = utils.isMeteorClient = (function() {
- return utils.isMeteor && Meteor.isClient;
-})();
-
-/**
- Find out if code is running on a Meteor server
- @return {boolean} True if code is running on a Meteor server
- */
-utils.isMeteorServer = (function() {
- return utils.isMeteor && Meteor.isServer;
-})();
-
-/**
- Find out code is running in a cordovar enviroment
- @return {boolean} True if code is running in a web worker enviroment
-
- @todo Find out if this is the best way to do this
- */
-utils.isCordova = (function() {
- return typeof cordova === 'object';
-})();
-
-utils.isReactNative = (function() {
- var isReact = false;
- /*not-for-browser/*
- try {
- if (typeof require('react-native') === 'object') {
- isReact = true;
- }
- } catch (e) {
- void 0;
- }
- //*/
- return isReact;
-})();
-
-utils.hasIndexedDB = (function() {
- return !!utils.global.indexedDB;
-})();
-
-utils.isArray = function(obj) {
- return '[object Array]' === Object.prototype.toString.call(obj);
-};
-/**
- Load text file from anywhere
- @param {string|object} path File path or HTML event
- @param {boolean} asy True - async call, false - sync call
- @param {function} success Success function
- @param {function} error Error function
- @return {string} Read data
-
- @todo Define Event type
- @todo Smaller if-else structures.
- */
-var loadFile = (utils.loadFile = function(path, asy, success, error) {
- var data, fs;
- if (utils.isNode || utils.isMeteorServer) {
- /*not-for-browser/*
- fs = require('fs');
-
- // If path is empty, than read data from stdin (for Node)
- if (typeof path === 'undefined') {
- var buff = '';
- process.stdin.setEncoding('utf8');
- process.stdin.on('readable', function() {
- var chunk = process.stdin.read();
- if (chunk !== null) {
- buff += chunk.toString();
- }
- });
- process.stdin.on('end', function() {
- success(cutbom(buff));
- });
- } else {
- if (/^[a-z]+:\/\//i.test(path)) {
- var request = require('request');
- request(path, function(err, response, body) {
- if (err) {
- return error(err, null);
- }
- success(cutbom(body.toString()));
- });
- } else {
- //If async callthen call async
- if (asy) {
- fs.readFile(path, function(err, data) {
- if (err) {
- return error(err, null);
- }
- success(cutbom(data.toString()));
- });
- } else {
- // Call sync version
- try {
- data = fs.readFileSync(path);
- } catch (e) {
- return error(err, null);
- }
- success(cutbom(data.toString()));
- }
- }
- }
- } else if (utils.isReactNative) {
- // If ReactNative
- var RNFS = require('react-native-fs');
- RNFS.readFile(path, 'utf8')
- .then(function(contents) {
- success(cutbom(contents));
- })["catch"](function(err) {
- return error(err, null);
- });
- //*/
- } else if (utils.isCordova) {
- /* If Cordova */
- utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
- fileSystem.root.getFile(path, {create: false}, function(fileEntry) {
- fileEntry.file(function(file) {
- var fileReader = new FileReader();
- fileReader.onloadend = function(e) {
- success(cutbom(this.result));
- };
- fileReader.readAsText(file);
- });
- });
- });
-
- /** @todo Check eliminated code below */
-
- } else {
- /* For string */
- if (typeof path === 'string') {
- // For browser read from tag
- /*
- SELECT * FROM TXT('#one') -- read data from HTML element with id="one"
- */
- if (path.substr(0, 1) === '#' && typeof document !== 'undefined') {
- data = document.querySelector(path).textContent;
- success(data);
- } else {
- /*
- Simply read file from HTTP request, like:
- SELECT * FROM TXT('http://alasql.org/README.md');
- */
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function() {
- if (xhr.readyState === 4) {
- if (xhr.status === 200) {
- if (success) {
- success(cutbom(xhr.responseText));
- }
- } else if (error) {
- return error(xhr);
- }
- // Todo: else...?
- }
- };
- xhr.open('GET', path, asy); // Async
- xhr.responseType = 'text';
- xhr.send();
- }
- } else if (path instanceof Event) {
- /*
- For browser read from files input element
-
-
- */
- /** @type {array} List of files from element */
- var files = path.target.files;
- /** type {object} */
- var reader = new FileReader();
- /** type {string} */
- var name = files[0].name;
- reader.onload = function(e) {
- var data = e.target.result;
- success(cutbom(data));
- };
- reader.readAsText(files[0]);
- }
- }
-});
-
-/**
- @function Load binary file from anywhere
- @param {string} path File path
- @param {boolean} asy True - async call, false - sync call
- @param {function} success Success function
- @param {function} error Error function
- @return 1 for Async, data - for sync version
-
- @todo merge functionality from loadFile and LoadBinaryFile
- */
-
-var loadBinaryFile = (utils.loadBinaryFile = function(path, asy, success, error) {
- var fs;
- if (utils.isNode || utils.isMeteorServer) {
- /*not-for-browser/*
- fs = require('fs');
-
- if (/^[a-z]+:\/\//i.test(path)) {
- var request = require('request');
- request({url: path, encoding: null}, function(err, response, data) {
- if (err) {
- throw err;
- }
- var arr = [];
- for (var i = 0; i < data.length; ++i) {
- arr[i] = String.fromCharCode(data[i]);
- }
- success(arr.join(''));
- });
- } else {
- if (asy) {
- fs.readFile(path, function(err, data) {
- if (err) {
- throw err;
- }
- var arr = [];
- for (var i = 0; i < data.length; ++i) {
- arr[i] = String.fromCharCode(data[i]);
- }
- success(arr.join(''));
- });
- } else {
- var data = fs.readFileSync(path);
- var arr = [];
- for (var i = 0; i < data.length; ++i) {
- arr[i] = String.fromCharCode(data[i]);
- }
- success(arr.join(''));
- }
- }
- } else if (utils.isReactNative) {
- // If ReactNative
- //var RNFS = require('react-native-fs');
- var RNFetchBlob = require('react-native-fetch-blob')["default"];
- var dirs = RNFetchBlob.fs.dirs;
- //should use readStream instead if the file is large
- RNFetchBlob.fs.readFile(path, 'base64').then(function(data) {
- //RNFetchBlob.base64.decode(data) //need more test on excel
- success(data);
- });
- //*/
- } else {
- if (typeof path === 'string') {
- // For browser
- var xhr = new XMLHttpRequest();
- xhr.open('GET', path, asy); // Async
- xhr.responseType = 'arraybuffer';
- xhr.onload = function() {
- var data = new Uint8Array(xhr.response);
- var arr = [];
- for (var i = 0; i < data.length; ++i) {
- arr[i] = String.fromCharCode(data[i]);
- }
- success(arr.join(''));
- };
- // xhr.responseType = "blob";
- xhr.send();
- } else if (path instanceof Event) {
-
- var files = path.target.files;
- var reader = new FileReader();
- var name = files[0].name;
- reader.onload = function(e) {
- var data = e.target.result;
- success(data);
- };
- reader.readAsArrayBuffer(files[0]);
- } else if (path instanceof Blob) {
- success(path);
- }
- }
-});
-
-var removeFile = (utils.removeFile = function(path, cb) {
- if (utils.isNode) {
- /*not-for-browser/*
- var fs = require('fs');
- fs.remove(path, cb);
- } else if (utils.isCordova) {
- utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
- fileSystem.root.getFile(
- path,
- {create: false},
- function(fileEntry) {
- fileEntry.remove(cb);
- cb && cb(); // jshint ignore:line
- },
- function() {
- cb && cb(); // jshint ignore:line
- }
- );
- });
- } else if (utils.isReactNative) {
- // If ReactNative
- var RNFS = require('react-native-fs');
- RNFS.unlink(path)
- .then(function() {
- cb && cb();
- })["catch"](function(err) {
- throw err;
- });
- //*/
- } else {
- throw new Error('You can remove files only in Node.js and Apache Cordova');
- }
-});
-
-// Todo: check if it makes sense to support cordova and Meteor server
-var deleteFile = (utils.deleteFile = function(path, cb) {
- /*not-for-browser/*
- if (utils.isNode) {
- var fs = require('fs');
- fs.unlink(path, cb);
- } else if (utils.isReactNative) {
- // If ReactNative
- var RNFS = require('react-native-fs');
- RNFS.unlink(path)
- .then(function() {
- cb && cb();
- })["catch"](function(err) {
- throw err;
- });
- }
- //*/
-});
-
-utils.autoExtFilename = function(filename, ext, config) {
- config = config || {};
- if (
- typeof filename !== 'string' ||
- filename.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) ||
- config.autoExt === 0 ||
- config.autoExt === false
- ) {
- return filename;
- }
- return filename + '.' + ext;
-};
-
-var fileExists = (utils.fileExists = function(path, cb) {
- if (utils.isNode) {
- /*not-for-browser/*
- var fs = require('fs');
- fs.exists(path, cb);
- } else if (utils.isCordova) {
- utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
- fileSystem.root.getFile(
- path,
- {create: false},
- function(fileEntry) {
- cb(true);
- },
- function() {
- cb(false);
- }
- );
- });
- } else if (utils.isReactNative) {
- // If ReactNative
- var RNFS = require('react-native-fs');
- RNFS.exists(path)
- .then(function(yes) {
- cb && cb(yes);
- })["catch"](function(err) {
- throw err;
- });
- //*/
- } else {
- // TODO Cordova, etc.
- throw new Error('You can use exists() only in Node.js or Apach Cordova');
- }
-});
-
-/**
- Save text file from anywhere
- @param {string} path File path
- @param {array} data Data object
- @param {function} cb Callback
- @param {object=} opts
- */
-
-var saveFile = (utils.saveFile = function(path, data, cb, opts) {
- var res = 1;
- if (path === undefined) {
- //
- // Return data into result variable
- // like: alasql('SELECT * INTO TXT() FROM ?',[data]);
- //
- res = data;
- if (cb) {
- res = cb(res);
- }
- } else {
- if (utils.isNode) {
- /*not-for-browser/*
- var fs = require('fs');
- data = fs.writeFileSync(path, data);
- if (cb) {
- res = cb(res);
- }
- } else if (utils.isReactNative) {
- var RNFS = require('react-native-fs');
- RNFS.writeFile(path, data)
- .then(function(success) {
- //, 'utf8'
- if (cb) res = cb(res);
- })["catch"](function(err) {
- console.error(err.message);
- });
- } else if (utils.isCordova) {
- utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
- // alasql.utils.removeFile(path,function(){
- fileSystem.root.getFile(path, {create: true}, function(fileEntry) {
- fileEntry.createWriter(function(fileWriter) {
- fileWriter.onwriteend = function() {
- if (cb) {
- res = cb(res);
- }
- };
- fileWriter.write(data);
- });
- });
- });
- //*/
-
- // });
- // });
- // });
- } else {
- if (isIE() === 9) {
- // Solution was taken from
- // http://megatuto.com/formation-JAVASCRIPT.php?JAVASCRIPT_Example=Javascript+Save+CSV+file+in+IE+8/IE+9+without+using+window.open()+Categorie+javascript+internet-explorer-8&category=&article=7993
- // var URI = 'data:text/plain;charset=utf-8,';
-
- // Prepare data
- var ndata = data.replace(/\r\n/g, 'A;D;');
- ndata = ndata.replace(/\n/g, 'D;');
- ndata = ndata.replace(/\t/g, ' ');
- var testlink = utils.global.open('about:blank', '_blank');
- testlink.document.write(ndata); //fileData has contents for the file
- testlink.document.close();
- testlink.document.execCommand('SaveAs', false, path);
- testlink.close();
- } else {
- var opt = {
- disableAutoBom: false,
- };
- alasql.utils.extend(opt, opts);
- var blob = new Blob([data], {type: 'text/plain;charset=utf-8'});
- saveAs(blob, path, opt.disableAutoBom);
- if (cb) {
- res = cb(res);
- }
- }
- }
- }
-
- return res;
-});
-
-/**
- @function Is this IE9
- @return {boolean} True for IE9 and false for other browsers
-
- For IE9 compatibility issues
- */
-function isIE() {
- var myNav = navigator.userAgent.toLowerCase();
- return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false;
-}
-
-/**
- @function Hash a string to signed integer
- @param {string} source string
- @return {integer} hash number
- */
-
-// FNV-1a inspired hashing
-var hash = (utils.hash = function(str) {
- var hash = 0x811c9dc5,
- i = str.length;
- while (i) {
- hash ^= str.charCodeAt(--i);
- hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
- }
- return hash;
-});
-
-/**
- Union arrays
- @function
- @param {array} a
- @param {array} b
- @return {array}
- */
-var arrayUnion = (utils.arrayUnion = function(a, b) {
- var r = b.slice(0);
- a.forEach(function(i) {
- if (r.indexOf(i) < 0) {
- r.push(i);
- }
- });
- return r;
-});
-
-/**
- Array Difference
- */
-var arrayDiff = (utils.arrayDiff = function(a, b) {
- return a.filter(function(i) {
- return b.indexOf(i) < 0;
- });
-});
-
-/**
- Arrays deep intersect (with records)
- */
-var arrayIntersect = (utils.arrayIntersect = function(a, b) {
- var r = [];
- a.forEach(function(ai) {
- var found = false;
-
- b.forEach(function(bi) {
- found = found || ai === bi;
- });
-
- if (found) {
- r.push(ai);
- }
- });
- return r;
-});
-
-/**
- Arrays deep union (with records)
- */
-var arrayUnionDeep = (utils.arrayUnionDeep = function(a, b) {
- var r = b.slice(0);
- a.forEach(function(ai) {
- var found = false;
-
- r.forEach(function(ri) {
- // found = found || equalDeep(ai, ri, true);
- found = found || deepEqual(ai, ri);
- });
-
- if (!found) {
- r.push(ai);
- }
- });
- return r;
-});
-
-/**
- Arrays deep union (with records)
- */
-var arrayExceptDeep = (utils.arrayExceptDeep = function(a, b) {
- var r = [];
- a.forEach(function(ai) {
- var found = false;
-
- b.forEach(function(bi) {
- // found = found || equalDeep(ai, bi, true);
- found = found || deepEqual(ai, bi);
- });
-
- if (!found) {
- r.push(ai);
- }
- });
- return r;
-});
-
-/**
- Arrays deep intersect (with records)
- */
-var arrayIntersectDeep = (utils.arrayIntersectDeep = function(a, b) {
- var r = [];
- a.forEach(function(ai) {
- var found = false;
-
- b.forEach(function(bi) {
- // found = found || equalDeep(ai, bi, true);
- found = found || deepEqual(ai, bi, true);
- });
-
- if (found) {
- r.push(ai);
- }
- });
- return r;
-});
-
-/**
- Deep clone objects
- */
-var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
- if (null === obj || typeof obj !== 'object') {
- return obj;
- }
-
- if (obj instanceof Date) {
- return new Date(obj);
- }
-
- var temp = obj.constructor(); // changed
-
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- temp[key] = cloneDeep(obj[key]);
- }
- }
- return temp;
-});
-
-/**
- Check equality of objects
- */
-
-/**
- Compare two objects in deep
- */
-var deepEqual = (utils.deepEqual = function(x, y) {
- if (x === y) {
- return true;
- }
-
- if (typeof x === 'object' && null !== x && (typeof y === 'object' && null !== y)) {
- if (Object.keys(x).length !== Object.keys(y).length) {
- return false;
- }
- for (var prop in x) {
- if (!deepEqual(x[prop], y[prop])) {
- return false;
- }
- }
- return true;
- }
-
- return false;
-});
-/**
- Array with distinct records
- @param {array} data
- @return {array}
- */
-var distinctArray = (utils.distinctArray = function(data) {
- var uniq = {};
- // TODO: Speedup, because Object.keys is slow
- for (var i = 0, ilen = data.length; i < ilen; i++) {
- var uix;
- if (typeof data[i] === 'object') {
- uix = Object.keys(data[i])
- .sort()
- .map(function(k) {
- return k + '`' + data[i][k];
- })
- .join('`');
- } else {
- uix = data[i];
- }
- uniq[uix] = data[i];
- }
- var res = [];
- for (var key in uniq) {
- res.push(uniq[key]);
- }
- return res;
-});
-
-/**
- Extend object a with properties of b
- @function
- @param {object} a
- @param {object} b
- @return {object}
- */
-var extend = (utils.extend = function extend(a, b) {
- a = a || {};
- for (var key in b) {
- if (b.hasOwnProperty(key)) {
- a[key] = b[key];
- }
- }
- return a;
-});
-
-/**
- Flat array by first row
- */
-var flatArray = (utils.flatArray = function(a) {
-
- if (!a || 0 === a.length) {
- return [];
- }
-
- // For recordsets
- if (typeof a === 'object' && a instanceof alasql.Recordset) {
- return a.data.map(function(ai) {
- return ai[a.columns[0].columnid];
- });
- }
- // Else for other arrays
- var key = Object.keys(a[0])[0];
- if (key === undefined) {
- return [];
- }
- return a.map(function(ai) {
- return ai[key];
- });
-});
-
-/**
- Convert array of objects to array of arrays
- */
-var arrayOfArrays = (utils.arrayOfArrays = function(a) {
- return a.map(function(aa) {
- var ar = [];
- for (var key in aa) {
- ar.push(aa[key]);
- }
- return ar;
- });
-});
-
-if (!Array.isArray) {
- Array.isArray = function(arg) {
- return Object.prototype.toString.call(arg) === '[object Array]';
- };
-}
-
-/**
- Excel:convert number to Excel column, like 1 => 'A'
- @param {integer} i Column number, starting with 0
- @return {string} Column name, starting with 'A'
- */
-
-var xlsnc = (utils.xlsnc = function(i) {
- var addr = String.fromCharCode(65 + i % 26);
- if (i >= 26) {
- i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
- if (i > 26) {
- i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
- }
- }
- return addr;
-});
-
-/**
- Excel:conver Excel column name to number
- @param {string} s Column number, like 'A' or 'BE'
- @return {string} Column name, starting with 0
- */
-var xlscn = (utils.xlscn = function(s) {
- var n = s.charCodeAt(0) - 65;
- if (s.length > 1) {
- n = (n + 1) * 26 + s.charCodeAt(1) - 65;
-
- if (s.length > 2) {
- n = (n + 1) * 26 + s.charCodeAt(2) - 65;
- }
- }
- return n;
-});
-
-var domEmptyChildren = (utils.domEmptyChildren = function(container) {
- var len = container.childNodes.length;
- while (len--) {
- container.removeChild(container.lastChild);
- }
-});
-
-/**
- SQL LIKE emulation
- @parameter {string} pattern Search pattern
- @parameter {string} value Searched value
- @parameter {string} escape Escape character (optional)
- @return {boolean} If value LIKE pattern ESCAPE escape
- */
-
-var like = (utils.like = function(pattern, value, escape) {
- // Verify escape character
- if (!escape) escape = '';
-
- var i = 0;
- var s = '^';
-
- while (i < pattern.length) {
- var c = pattern[i],
- c1 = '';
- if (i < pattern.length - 1) c1 = pattern[i + 1];
-
- if (c === escape) {
- s += '\\' + c1;
- i++;
- } else if (c === '[' && c1 === '^') {
- s += '[^';
- i++;
- } else if (c === '[' || c === ']') {
- s += c;
- } else if (c === '%') {
- s += '.*';
- } else if (c === '_') {
- s += '.';
- } else if ('/.*+?|(){}'.indexOf(c) > -1) {
- s += '\\' + c;
- } else {
- s += c;
- }
- i++;
- }
-
- s += '$';
- // if(value == undefined) return false;
-
- return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1;
-});
-
-utils.glob = function(value, pattern) {
- var i = 0;
- var s = '^';
-
- while (i < pattern.length) {
- var c = pattern[i],
- c1 = '';
- if (i < pattern.length - 1) c1 = pattern[i + 1];
-
- if (c === '[' && c1 === '^') {
- s += '[^';
- i++;
- } else if (c === '[' || c === ']') {
- s += c;
- } else if (c === '*') {
- s += '.*';
- } else if (c === '?') {
- s += '.';
- } else if ('/.*+?|(){}'.indexOf(c) > -1) {
- s += '\\' + c;
- } else {
- s += c;
- }
- i++;
- }
-
- s += '$';
- return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1;
-};
-
-/**
- Get path of alasql.js
- @todo Rewrite and simplify the code. Review, is this function is required separately
- */
-utils.findAlaSQLPath = function() {
- /** type {string} Path to alasql library and plugins */
-
- if (utils.isWebWorker) {
- return '';
- /** @todo Check how to get path in worker */
- } else if (utils.isMeteorClient) {
- return '/packages/dist/';
- } else if (utils.isMeteorServer) {
- return 'assets/packages/dist/';
- } else if (utils.isNode) {
- return __dirname;
- } else if (utils.isBrowser) {
- var sc = document.getElementsByTagName('script');
-
- for (var i = 0; i < sc.length; i++) {
- if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
- return sc[i].src.substr(0, sc[i].src.length - 16);
- } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
- return sc[i].src.substr(0, sc[i].src.length - 20);
- } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
- return sc[i].src.substr(0, sc[i].src.length - 9);
- } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
- return sc[i].src.substr(0, sc[i].src.length - 13);
- }
- }
- }
- return '';
-};
-
-var getXLSX = function() {
- var XLSX = alasql["private"].externalXlsxLib;
-
- if (XLSX) {
- return XLSX;
- }
-
- if (utils.isNode || utils.isBrowserify || utils.isMeteorServer) {
- /*not-for-browser/*
- XLSX = require('xlsx') || null;
- //*/
- } else {
- XLSX = utils.global.XLSX || null;
- }
-
- if (null === XLSX) {
- throw new Error('Please include the xlsx.js library');
- }
-
- return XLSX;
-};
-
-// set AlaSQl path
-alasql.path = alasql.utils.findAlaSQLPath();
-
-/**
- Strip all comments.
- @function
- @param {string} str
- @return {string}
- Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js
- I just replaced JavaScript's '//' to SQL's '--' and remove other stuff
-
- @todo Fixed [aaa/*bbb] for column names
- @todo Bug if -- comments in the last line
- @todo Check if it possible to model it with Jison parser
- @todo Remove unused code
- */
-
-/* global alasql */
-
-alasql.utils.uncomment = function(str) {
- // Add some padding so we can always look ahead and behind by two chars
- str = ('__' + str + '__').split('');
- var quote = false,
- quoteSign,
- // regularExpression = false,
- // characterClass = false,
- blockComment = false,
- lineComment = false;
- // preserveComment = false;
-
- for (var i = 0, l = str.length; i < l; i++) {
-
- // When checking for quote escaping, we also need to check that the
- // escape sign itself is not escaped, as otherwise '\\' would cause
- // the wrong impression of an unclosed string:
- var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\';
-
- if (quote) {
- if (str[i] === quoteSign && unescaped) {
- quote = false;
- }
-
- } else if (blockComment) {
- // Is the block comment closing?
- if (str[i] === '*' && str[i + 1] === '/') {
- // if (!preserveComment)
- str[i] = str[i + 1] = '';
- blockComment /* = preserveComment*/ = false;
- // Increase by 1 to skip closing '/', as it would be mistaken
- // for a regexp otherwise
- i++;
- } else {
- //if (!preserveComment) {
- str[i] = '';
- }
- } else if (lineComment) {
- // One-line comments end with the line-break
- if (str[i + 1] === '\n' || str[i + 1] === '\r') {
- lineComment = false;
- }
- str[i] = '';
- } else {
- if (str[i] === '"' || str[i] === "'") {
- quote = true;
- quoteSign = str[i];
- } else if (str[i] === '[' && str[i - 1] !== '@') {
- quote = true;
- quoteSign = ']';
- // } else if (str[i] === '-' && str[i + 1] === '-') {
- // str[i] = '';
- // lineComment = true;
- } else if (str[i] === '/' && str[i + 1] === '*') {
- // Do not filter out conditional comments /*@ ... */
- // and comments marked as protected /*! ... */
- // preserveComment = /[@!]/.test(str[i + 2]);
- // if (!preserveComment)
- str[i] = '';
- blockComment = true;
-
- }
- }
- }
- // Remove padding again.
- str = str.join('').slice(2, -2);
-
- return str;
-};
-
-/**
- Database class for Alasql.js
-*/
-
-// Initial parameters
-
-/**
- Jison parser
-*/
-alasql.parser = alasqlparser;
-
-alasql.parser.parseError = function(str, hash) {
- throw new Error('Have you used a reserved keyword without `escaping` it?\n' + str);
-};
-
-/**
- Jison parser
- @param {string} sql SQL statement
- @return {object} AST (Abstract Syntax Tree)
-
- @todo Create class AST
- @todo Add other parsers
-
- @example
- alasql.parse = function(sql) {
- // My own parser here
- }
- */
-alasql.parse = function(sql) {
- return alasqlparser.parse(alasql.utils.uncomment(sql));
-};
-
-/**
- List of engines of external databases
- @type {object}
- @todo Create collection type
- */
-alasql.engines = {};
-
-/**
- List of databases
- @type {object}
- */
-alasql.databases = {};
-
-/**
- Number of databases
- @type {number}
-*/
-alasql.databasenum = 0;
-
-/**
- Alasql options object
- */
-alasql.options = {};
-alasql.options.errorlog = false; // Log or throw error
-alasql.options.valueof = false; // Use valueof in orderfn
-alasql.options.dropifnotexists = false; // DROP database in any case
-alasql.options.datetimeformat = 'sql'; // How to handle DATE and DATETIME types
-// Another value is 'javascript'
-alasql.options.casesensitive = true; // Table and column names are case sensitive and converted to lower-case
-alasql.options.logtarget = 'output'; // target for log. Values: 'console', 'output', 'id' of html tag
-alasql.options.logprompt = true; // Print SQL at log
-
-alasql.options.progress = false; // Callback for async queries progress
-
-// Default modifier
-// values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX
-alasql.options.modifier = undefined;
-// How many rows to lookup to define columns
-alasql.options.columnlookup = 10;
-// Create vertex if not found
-alasql.options.autovertex = true;
-
-// Use dbo as current database (for partial T-SQL comaptibility)
-alasql.options.usedbo = true;
-
-// AUTOCOMMIT ON | OFF
-alasql.options.autocommit = true;
-
-// Use cache
-alasql.options.cache = true;
-
-// Compatibility flags
-alasql.options.tsql = true;
-
-alasql.options.mysql = true;
-
-alasql.options.postgres = true;
-
-alasql.options.oracle = true;
-
-alasql.options.sqlite = true;
-
-alasql.options.orientdb = true;
-
-// for SET NOCOUNT OFF
-alasql.options.nocount = false;
-
-// Check for NaN and convert it to undefined
-alasql.options.nan = false;
-
-alasql.options.joinstar = 'overwrite'; // Option for SELECT * FROM a,b
-
-//alasql.options.worker = false;
-
-// Variables
-alasql.vars = {};
-
-alasql.declares = {};
-
-alasql.prompthistory = [];
-
-alasql.plugins = {}; // If plugin already loaded
-
-alasql.from = {}; // FROM functions
-
-alasql.into = {}; // INTO functions
-
-alasql.fn = {};
-
-alasql.aggr = {};
-
-alasql.busy = 0;
-
-// Cache
-alasql.MAXSQLCACHESIZE = 10000;
-alasql.DEFAULTDATABASEID = 'alasql';
-
-/* WebWorker */
-alasql.lastid = 0;
-
-alasql.buffer = {};
-
-alasql["private"] = {
- externalXlsxLib: null,
-};
-
-alasql.setXLSX = function(XLSX) {
- alasql["private"].externalXlsxLib = XLSX;
-};
-
-/**
- Select current database
- @param {string} databaseid Selected database identificator
- */
-alasql.use = function(databaseid) {
- if (!databaseid) {
- databaseid = alasql.DEFAULTDATABASEID;
- }
- if (alasql.useid === databaseid) {
- return;
- }
- alasql.useid = databaseid;
- var db = alasql.databases[alasql.useid];
- alasql.tables = db.tables;
- // alasql.fn = db.fn;
- db.resetSqlCache();
- if (alasql.options.usedbo) {
- alasql.databases.dbo = db; // Operator???
- }
-};
-
-alasql.autoval = function(tablename, colname, getNext, databaseid) {
- var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid];
-
- if (!db.tables[tablename]) {
- throw new Error('Tablename not found: ' + tablename);
- }
-
- if (!db.tables[tablename].identities[colname]) {
- throw new Error('Colname not found: ' + colname);
- }
-
- if (getNext) {
- return db.tables[tablename].identities[colname].value || null;
- }
-
- return (
- db.tables[tablename].identities[colname].value -
- db.tables[tablename].identities[colname].step || null
- );
-};
-
-/**
- Run single SQL statement on current database
- */
-alasql.exec = function(sql, params, cb, scope) {
- // Avoid setting params if not needed even with callback
- if (typeof params === 'function') {
- scope = cb;
- cb = params;
- params = {};
- }
-
- delete alasql.error;
- params = params || {};
- if (alasql.options.errorlog) {
- try {
- return alasql.dexec(alasql.useid, sql, params, cb, scope);
- } catch (err) {
- alasql.error = err;
- if (cb) {
- cb(null, alasql.error);
- }
- }
- } else {
- return alasql.dexec(alasql.useid, sql, params, cb, scope);
- }
-};
-
-/**
- Run SQL statement on specific database
- */
-alasql.dexec = function(databaseid, sql, params, cb, scope) {
- var db = alasql.databases[databaseid];
- // if(db.databaseid != databaseid) console.trace('got!');
-
- var hh;
- // Create hash
- if (alasql.options.cache) {
- hh = hash(sql);
- var statement = db.sqlCache[hh];
- // If database structure was not changed since last time return cache
- if (statement && db.dbversion === statement.dbversion) {
- return statement(params, cb);
- }
- }
-
- // Create AST
- var ast = alasql.parse(sql);
- if (!ast.statements) {
- return;
- }
- if (0 === ast.statements.length) {
- return 0;
- } else if (1 === ast.statements.length) {
- if (ast.statements[0].compile) {
- // Compile and Execute
- var statement = ast.statements[0].compile(databaseid, params);
- if (!statement) {
- return;
- }
- statement.sql = sql;
- statement.dbversion = db.dbversion;
-
- if (alasql.options.cache) {
- // Secure sqlCache size
- if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
- db.resetSqlCache();
- }
- db.sqlCacheSize++;
- db.sqlCache[hh] = statement;
- }
- var res = (alasql.res = statement(params, cb, scope));
- return res;
- } else {
-
- alasql.precompile(ast.statements[0], alasql.useid, params);
- var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));
- return res;
- }
- } else {
- // Multiple statements
- if (cb) {
- alasql.adrun(databaseid, ast, params, cb, scope);
- } else {
- return alasql.drun(databaseid, ast, params, cb, scope);
- }
- }
-};
-
-/**
- Run multiple statements and return array of results sync
- */
-alasql.drun = function(databaseid, ast, params, cb, scope) {
- var useid = alasql.useid;
-
- if (useid !== databaseid) {
- alasql.use(databaseid);
- }
-
- var res = [];
- for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {
- if (ast.statements[i]) {
- if (ast.statements[i].compile) {
- var statement = ast.statements[i].compile(alasql.useid);
- res.push((alasql.res = statement(params, null, scope)));
- } else {
- alasql.precompile(ast.statements[i], alasql.useid, params);
- res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));
- }
- }
- }
- if (useid !== databaseid) {
- alasql.use(useid);
- }
-
- if (cb) {
- cb(res);
- }
-
- alasql.res = res;
-
- return res;
-};
-
-/**
- Run multiple statements and return array of results async
- */
-alasql.adrun = function(databaseid, ast, params, cb, scope) {
- var idx = 0;
- var noqueries = ast.statements.length;
- if (alasql.options.progress !== false) {
- alasql.options.progress(noqueries, idx++);
- }
-
- // alasql.busy++;
- var useid = alasql.useid;
- if (useid !== databaseid) {
- alasql.use(databaseid);
- }
- var res = [];
-
- function adrunone(data) {
- if (data !== undefined) {
- res.push(data);
- }
- var astatement = ast.statements.shift();
- if (!astatement) {
- if (useid !== databaseid) {
- alasql.use(useid);
- }
- cb(res);
- // alasql.busy--;
- // if(alasql.busy<0) alasql.busy = 0;
- } else {
- if (astatement.compile) {
- var statement = astatement.compile(alasql.useid);
- statement(params, adrunone, scope);
- if (alasql.options.progress !== false) {
- alasql.options.progress(noqueries, idx++);
- }
- } else {
- alasql.precompile(ast.statements[0], alasql.useid, params);
- astatement.execute(alasql.useid, params, adrunone);
- if (alasql.options.progress !== false) {
- alasql.options.progress(noqueries, idx++);
- }
- }
- }
- }
-
- adrunone(); /** @todo Check, why data is empty here */
-};
-
-/**
- Compile statement to JavaScript function
- @param {string} sql SQL statement
- @param {string} databaseid Database identificator
- @return {functions} Compiled statement functions
-*/
-alasql.compile = function(sql, databaseid) {
- databaseid = databaseid || alasql.useid;
-
- var ast = alasql.parse(sql); // Create AST
-
- if (1 === ast.statements.length) {
- var statement = ast.statements[0].compile(databaseid);
- statement.promise = function(params) {
- return new Promise(function(resolve, reject) {
- statement(params, function(data, err) {
- if (err) {
- reject(err);
- } else {
- resolve(data);
- }
- });
- });
- };
-
- return statement;
-
- } else {
- throw new Error('Cannot compile, because number of statements in SQL is not equal to 1');
- }
-};
-
-//
-// Promises for AlaSQL
-//
-
-if (!utils.global.Promise) {
- if (utils.isNode) {
- /*not-for-browser/*
- utils.global.Promise = require('es6-promise').Promise;
- //*/
- } else {
- /*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
- * @version 3.2.1
- */
- (function() {
- 'use strict';
- function t(t) {
- return 'function' == typeof t || ('object' == typeof t && null !== t);
- }
- function e(t) {
- return 'function' == typeof t;
- }
- function n(t) {
- G = t;
- }
- function r(t) {
- Q = t;
- }
- function o() {
- return function() {
- process.nextTick(a);
- };
- }
- function i() {
- return function() {
- B(a);
- };
- }
- function s() {
- var t = 0,
- e = new X(a),
- n = document.createTextNode('');
- return (
- e.observe(n, {characterData: !0}),
- function() {
- n.data = t = ++t % 2;
- }
- );
- }
- function u() {
- var t = new MessageChannel();
- return (
- (t.port1.onmessage = a),
- function() {
- t.port2.postMessage(0);
- }
- );
- }
- function c() {
- return function() {
- setTimeout(a, 1);
- };
- }
- function a() {
- for (var t = 0; J > t; t += 2) {
- var e = tt[t],
- n = tt[t + 1];
- e(n), (tt[t] = void 0), (tt[t + 1] = void 0);
- }
- J = 0;
- }
- function f() {
- try {
- var t = require,
- e = t('vertx');
- return (B = e.runOnLoop || e.runOnContext, i());
- } catch (n) {
- return c();
- }
- }
- function l(t, e) {
- var n = this,
- r = new this.constructor(p);
- void 0 === r[rt] && k(r);
- var o = n._state;
- if (o) {
- var i = arguments[o - 1];
- Q(function() {
- x(o, r, i, n._result);
- });
- } else E(n, r, t, e);
- return r;
- }
- function h(t) {
- var e = this;
- if (t && 'object' == typeof t && t.constructor === e) return t;
- var n = new e(p);
- return (g(n, t), n);
- }
- function p() {}
- function _() {
- return new TypeError('You cannot resolve a promise with itself');
- }
- function d() {
- return new TypeError('A promises callback cannot return that same promise.');
- }
- function v(t) {
- try {
- return t.then;
- } catch (e) {
- return (ut.error = e, ut);
- }
- }
- function y(t, e, n, r) {
- try {
- t.call(e, n, r);
- } catch (o) {
- return o;
- }
- }
- function m(t, e, n) {
- Q(function(t) {
- var r = !1,
- o = y(
- n,
- e,
- function(n) {
- r || ((r = !0), e !== n ? g(t, n) : S(t, n));
- },
- function(e) {
- r || ((r = !0), j(t, e));
- },
- 'Settle: ' + (t._label || ' unknown promise')
- );
- !r && o && ((r = !0), j(t, o));
- }, t);
- }
- function b(t, e) {
- e._state === it
- ? S(t, e._result)
- : e._state === st
- ? j(t, e._result)
- : E(
- e,
- void 0,
- function(e) {
- g(t, e);
- },
- function(e) {
- j(t, e);
- }
- );
- }
- function w(t, n, r) {
- n.constructor === t.constructor && r === et && constructor.resolve === nt
- ? b(t, n)
- : r === ut
- ? j(t, ut.error)
- : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n);
- }
- function g(e, n) {
- e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n);
- }
- function A(t) {
- t._onerror && t._onerror(t._result), T(t);
- }
- function S(t, e) {
- t._state === ot &&
- ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t));
- }
- function j(t, e) {
- t._state === ot && ((t._state = st), (t._result = e), Q(A, t));
- }
- function E(t, e, n, r) {
- var o = t._subscribers,
- i = o.length;
- (t._onerror = null),
- (o[i] = e),
- (o[i + it] = n),
- (o[i + st] = r),
- 0 === i && t._state && Q(T, t);
- }
- function T(t) {
- var e = t._subscribers,
- n = t._state;
- if (0 !== e.length) {
- for (var r, o, i = t._result, s = 0; s < e.length; s += 3)
- (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i);
- t._subscribers.length = 0;
- }
- }
- function M() {
- this.error = null;
- }
- function P(t, e) {
- try {
- return t(e);
- } catch (n) {
- return (ct.error = n, ct);
- }
- }
- function x(t, n, r, o) {
- var i,
- s,
- u,
- c,
- a = e(r);
- if (a) {
- if (
- ((i = P(r, o)),
- i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0),
- n === i)
- )
- return void j(n, d());
- } else (i = o), (u = !0);
- n._state !== ot ||
- (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i));
- }
- function C(t, e) {
- try {
- e(
- function(e) {
- g(t, e);
- },
- function(e) {
- j(t, e);
- }
- );
- } catch (n) {
- j(t, n);
- }
- }
- function O() {
- return at++;
- }
- function k(t) {
- (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []);
- }
- function Y(t) {
- return new _t(this, t).promise;
- }
- function q(t) {
- var e = this;
- return new e(
- I(t)
- ? function(n, r) {
- for (var o = t.length, i = 0; o > i; i++)
- e.resolve(t[i]).then(n, r);
- }
- : function(t, e) {
- e(new TypeError('You must pass an array to race.'));
- }
- );
- }
- function F(t) {
- var e = this,
- n = new e(p);
- return (j(n, t), n);
- }
- function D() {
- throw new TypeError(
- 'You must pass a resolver function as the first argument to the promise constructor'
- );
- }
- function K() {
- throw new TypeError(
- "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
- );
- }
- function L(t) {
- (this[rt] = O()),
- (this._result = this._state = void 0),
- (this._subscribers = []),
- p !== t &&
- ('function' != typeof t && D(), this instanceof L ? C(this, t) : K());
- }
- function N(t, e) {
- (this._instanceConstructor = t),
- (this.promise = new t(p)),
- this.promise[rt] || k(this.promise),
- Array.isArray(e)
- ? ((this._input = e),
- (this.length = e.length),
- (this._remaining = e.length),
- (this._result = new Array(this.length)),
- 0 === this.length
- ? S(this.promise, this._result)
- : ((this.length = this.length || 0),
- this._enumerate(),
- 0 === this._remaining && S(this.promise, this._result)))
- : j(this.promise, U());
- }
- function U() {
- return new Error('Array Methods must be provided an Array');
- }
- function W() {
- var t;
- if ('undefined' != typeof global) t = global;
- else if ('undefined' != typeof self) t = self;
- else
- try {
- t = Function('return this')();
- } catch (e) {
- throw new Error(
- 'polyfill failed because global object is unavailable in this environment'
- );
- }
- var n = t.Promise;
- (!n ||
- '[object Promise]' !== Object.prototype.toString.call(n.resolve()) ||
- n.cast) &&
- (t.Promise = pt);
- }
- var z;
- z = Array.isArray
- ? Array.isArray
- : function(t) {
- return '[object Array]' === Object.prototype.toString.call(t);
- };
- var B,
- G,
- H,
- I = z,
- J = 0,
- Q = function(t, e) {
- (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H());
- },
- R = 'undefined' != typeof window ? window : void 0,
- V = R || {},
- X = V.MutationObserver || V.WebKitMutationObserver,
- Z =
- 'undefined' == typeof self &&
- 'undefined' != typeof process &&
- '[object process]' === {}.toString.call(process),
- $ =
- 'undefined' != typeof Uint8ClampedArray &&
- 'undefined' != typeof importScripts &&
- 'undefined' != typeof MessageChannel,
- tt = new Array(1e3);
- H = Z
- ? o()
- : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c();
- var et = l,
- nt = h,
- rt = Math.random()
- .toString(36)
- .substring(16),
- ot = void 0,
- it = 1,
- st = 2,
- ut = new M(),
- ct = new M(),
- at = 0,
- ft = Y,
- lt = q,
- ht = F,
- pt = L;
- (L.all = ft),
- (L.race = lt),
- (L.resolve = nt),
- (L.reject = ht),
- (L._setScheduler = n),
- (L._setAsap = r),
- (L._asap = Q),
- (L.prototype = {
- constructor: L,
- then: et,
- "catch": function(t) {
- return this.then(null, t);
- },
- });
- var _t = N;
- (N.prototype._enumerate = function() {
- for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++)
- this._eachEntry(e[n], n);
- }),
- (N.prototype._eachEntry = function(t, e) {
- var n = this._instanceConstructor,
- r = n.resolve;
- if (r === nt) {
- var o = v(t);
- if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result);
- else if ('function' != typeof o) this._remaining--, (this._result[e] = t);
- else if (n === pt) {
- var i = new n(p);
- w(i, t, o), this._willSettleAt(i, e);
- } else
- this._willSettleAt(
- new n(function(e) {
- e(t);
- }),
- e
- );
- } else this._willSettleAt(r(t), e);
- }),
- (N.prototype._settledAt = function(t, e, n) {
- var r = this.promise;
- r._state === ot &&
- (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)),
- 0 === this._remaining && S(r, this._result);
- }),
- (N.prototype._willSettleAt = function(t, e) {
- var n = this;
- E(
- t,
- void 0,
- function(t) {
- n._settledAt(it, e, t);
- },
- function(t) {
- n._settledAt(st, e, t);
- }
- );
- });
- var dt = W,
- vt = {Promise: pt, polyfill: dt};
- 'function' == typeof define && define.amd
- ? define(function() {
- return vt;
- })
- : 'undefined' != typeof module && module.exports
- ? (module.exports = vt)
- : 'undefined' != typeof this && (this.ES6Promise = vt),
- dt();
- }.call(this));
-
- }
-}
-
-var promiseExec = function(sql, params, counterStep, counterTotal) {
- return new utils.global.Promise(function(resolve, reject) {
- alasql(sql, params, function(data, err) {
- if (err) {
- reject(err);
- } else {
- if (counterStep && counterTotal && alasql.options.progress !== false) {
- alasql.options.progress(counterStep, counterTotal);
- }
- resolve(data);
- }
- });
- });
-};
-
-var promiseAll = function(sqlParamsArray) {
- if (sqlParamsArray.length < 1) {
- return;
- }
-
- var active, sql, params;
-
- var execArray = [];
-
- for (var i = 0; i < sqlParamsArray.length; i++) {
- active = sqlParamsArray[i];
-
- if (typeof active === 'string') {
- active = [active];
- }
-
- if (!utils.isArray(active) || active.length < 1 || 2 < active.length) {
- throw new Error('Error in .promise parameter');
- }
-
- sql = active[0];
- params = active[1] || undefined;
-
- execArray.push(promiseExec(sql, params, i, sqlParamsArray.length));
- }
-
- return utils.global.Promise.all(execArray);
-};
-
-alasql.promise = function(sql, params) {
- if (typeof Promise === 'undefined') {
- throw new Error('Please include a Promise/A+ library');
- }
-
- if (typeof sql === 'string') {
- return promiseExec(sql, params);
- }
-
- if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') {
- throw new Error('Error in .promise parameters');
- }
- return promiseAll(sql);
-};
-
-/*
-//
-// Database class for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Main Database class
-
-/**
- @class Database
- */
-
-var Database = (alasql.Database = function(databaseid) {
- var self = this;
-
- // self.prototype = this;
-
- if (self === alasql) {
- if (databaseid) {
- // if(alasql.databases[databaseid]) {
- self = alasql.databases[databaseid];
- // } else {
- alasql.databases[databaseid] = self;
- // }
- if (!self) {
- throw new Error('Database "' + databaseid + '" not found');
- }
- } else {
- // Create new database (or get alasql?)
- self = alasql.databases.alasql;
- // For SQL Server examples, USE tempdb
- if (alasql.options.tsql) {
- alasql.databases.tempdb = alasql.databases.alasql;
- }
- // self = new Database(databaseid); // to call without new
- }
- }
- if (!databaseid) {
- databaseid = 'db' + alasql.databasenum++; // Random name
- }
-
- // Step 1
- self.databaseid = databaseid;
- alasql.databases[databaseid] = self;
- self.dbversion = 0;
-
- //Steps 2-5
- self.tables = {};
- self.views = {};
- self.triggers = {};
- self.indices = {};
-
- // Step 6: Objects storage
- self.objects = {};
- self.counter = 0;
-
- self.resetSqlCache();
- return self;
-});
-
-/**
- Reset SQL statements cache
- */
-
-Database.prototype.resetSqlCache = function() {
- this.sqlCache = {}; // Cache for compiled SQL statements
- this.sqlCacheSize = 0;
-};
-
-// Main SQL function
-
-/**
- Run SQL statement on database
- @param {string} sql SQL statement
- @param [object] params Parameters
- @param {function} cb callback
- */
-
-Database.prototype.exec = function(sql, params, cb) {
- return alasql.dexec(this.databaseid, sql, params, cb);
-};
-
-Database.prototype.autoval = function(tablename, colname, getNext) {
- return alasql.autoval(tablename, colname, getNext, this.databaseid);
-};
-
-// Aliases like MS SQL
-
-/*
-//
-// Transactio class for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-Database.prototype.transaction = function(cb) {
- var tx = new alasql.Transaction(this.databaseid);
- var res = cb(tx);
- return res;
-};
-
-// Transaction class (for WebSQL compatibility)
-
-/**
- Transaction class
- @class Transaction
- */
-
-var Transaction = (alasql.Transaction = function(databaseid) {
- this.transactionid = Date.now();
- this.databaseid = databaseid;
- this.commited = false;
- this.dbversion = alasql.databases[databaseid].dbversion;
- // this.bank = cloneDeep(alasql.databases[databaseid]);
- this.bank = JSON.stringify(alasql.databases[databaseid]);
- // TODO CLone Tables with insertfns
-
- return this;
-});
-
-// Main class
-
-// Commit
-
-/**
- Commit transaction
- */
-Transaction.prototype.commit = function() {
- this.commited = true;
- alasql.databases[this.databaseid].dbversion = Date.now();
- delete this.bank;
-};
-
-// Rollback
-/**
- Rollback transaction
- */
-Transaction.prototype.rollback = function() {
- if (!this.commited) {
- alasql.databases[this.databaseid] = JSON.parse(this.bank);
- // alasql.databases[this.databaseid].tables = this.bank;
- // alasql.databases[this.databaseid].dbversion = this.dbversion;
- delete this.bank;
- } else {
- throw new Error('Transaction already commited');
- }
-};
-
-// Transactions stub
-
-/**
- Execute SQL statement
- @param {string} sql SQL statement
- @param {object} params Parameters
- @param {function} cb Callback function
- @return result
- */
-Transaction.prototype.exec = function(sql, params, cb) {
-
- return alasql.dexec(this.databaseid, sql, params, cb);
-};
-
-Transaction.prototype.executeSQL = Transaction.prototype.exec;
-
-/*
-//
-// Table class for Alasql.js
-// Date: 14.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Table class
-var Table = (alasql.Table = function(params) {
- // Step 1: Data array
- this.data = [];
-
- // Step 2: Columns
- this.columns = [];
- this.xcolumns = {};
-
- // Step 3: indices
- this.inddefs = {};
- this.indices = {};
- this.uniqs = {};
- this.uniqdefs = {};
-
- // Step 4: identities
- this.identities = {};
-
- // Step 5: checkfn...
- this.checks = [];
- this.checkfns = []; // For restore... to be done...
-
- // Step 6: INSERT/DELETE/UPDATE
-
- // Step 7: Triggers...
- // Create trigger hubs
- this.beforeinsert = {};
- this.afterinsert = {};
- this.insteadofinsert = {};
-
- this.beforedelete = {};
- this.afterdelete = {};
- this.insteadofdelete = {};
-
- this.beforeupdate = {};
- this.afterupdate = {};
- this.insteadofupdate = {};
-
- // Done
- extend(this, params);
-});
-
-Table.prototype.indexColumns = function() {
- var self = this;
- self.xcolumns = {};
- self.columns.forEach(function(col) {
- self.xcolumns[col.columnid] = col;
- });
-};
-
-/*
-//
-// View class for Alasql.js
-// Date: 14.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Table class
-var View = (alasql.View = function(params) {
- // Columns
- this.columns = [];
- this.xcolumns = {};
- // Data array
- this.query = [];
-
- extend(this, params);
-});
-
-/*
-//
-// Query class for Alasql.js
-// Date: 14.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Table class
-
-/**
- @class Query Main query class
- */
-var Query = (alasql.Query = function(params) {
- this.alasql = alasql;
-
- // Columns
- this.columns = [];
- this.xcolumns = {};
- this.selectGroup = [];
- this.groupColumns = {};
- // Data array
- extend(this, params);
-});
-
-/**
- @class Recordset data object
- */
-var Recordset = (alasql.Recordset = function(params) {
- // Data array
- extend(this, params);
-});
-
-/*
-//
-// Parser helper for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-var yy = (alasqlparser.yy = alasql.yy = {});
-
-// Utility
-yy.extend = extend;
-// Option for case sensitive
-yy.casesensitive = alasql.options.casesensitive;
-
-// Base class for all yy classes
-var Base = (yy.Base = function(params) {
- return yy.extend(this, params);
-});
-
-Base.prototype.toString = function() {};
-Base.prototype.toType = function() {};
-Base.prototype.toJS = function() {};
-
-Base.prototype.compile = returnUndefined;
-Base.prototype.exec = function() {};
-
-Base.prototype.compile = returnUndefined;
-Base.prototype.exec = function() {};
-
-/*
-//
-// Statements class for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// Statements container
-yy.Statements = function(params) {
- return yy.extend(this, params);
-};
-
-yy.Statements.prototype.toString = function() {
- return this.statements
- .map(function(st) {
- return st.toString();
- })
- .join('; ');
-};
-
-// Compile array of statements into single statement
-yy.Statements.prototype.compile = function(db) {
- var statements = this.statements.map(function(st) {
- return st.compile(db);
- });
- if (statements.length === 1) {
- return statements[0];
- } else {
- return function(params, cb) {
- var res = statements.map(function(st) {
- return st(params);
- });
- if (cb) {
- cb(res);
- }
- return res;
- };
- }
-};
-
-/* global alasql */
-/* global yy */
-/*
-//
-// SEARCH for Alasql.js
-// Date: 04.05.2015
-// (c) 2015, Andrey Gershun
-//
-*/
-
-function doSearch(databaseid, params, cb) {
- var res;
- var stope = {};
- var fromdata;
- var selectors = cloneDeep(this.selectors);
-
- function processSelector(selectors, sidx, value) {
- // var val;
-
- var val, // temp values use many places
- nest, // temp value used many places
- r, // temp value used many places
- sel = selectors[sidx];
-
- // if(!alasql.srch[sel.srchid]) {
- // throw new Error('Selector "'+sel.srchid+'" not found');
- // };
-
- var SECURITY_BREAK = 100000;
-
- if (sel.selid) {
- // TODO Process Selector
- if (sel.selid === 'PATH') {
- var queue = [{node: value, stack: []}];
- var visited = {};
- //var path = [];
- var objects = alasql.databases[alasql.useid].objects;
- while (queue.length > 0) {
- var q = queue.shift();
- var node = q.node;
- var stack = q.stack;
- var r = processSelector(sel.args, 0, node);
- if (r.length > 0) {
- if (sidx + 1 + 1 > selectors.length) {
- return stack;
- } else {
- var rv = [];
- if (stack && stack.length > 0) {
- stack.forEach(function(stv) {
- rv = rv.concat(processSelector(selectors, sidx + 1, stv));
- });
- }
- return rv;
- // return processSelector(selectors,sidx+1,stack);
- }
- } else {
- if (typeof visited[node.$id] !== 'undefined') {
- continue;
- } else {
-
- visited[node.$id] = true;
- if (node.$out && node.$out.length > 0) {
- node.$out.forEach(function(edgeid) {
- var edge = objects[edgeid];
- var stack2 = stack.concat(edge);
- stack2.push(objects[edge.$out[0]]);
- queue.push({
- node: objects[edge.$out[0]],
- stack: stack2,
- });
- });
- }
- }
- }
- }
- // Else return fail
- return [];
- }
- if (sel.selid === 'NOT') {
- var nest = processSelector(sel.args, 0, value);
-
- if (nest.length > 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- return processSelector(selectors, sidx + 1, value);
- }
- }
- } else if (sel.selid === 'DISTINCT') {
- var nest;
- if (typeof sel.args === 'undefined' || sel.args.length === 0) {
- nest = distinctArray(value);
- } else {
- nest = processSelector(sel.args, 0, value);
- }
- if (nest.length === 0) {
- return [];
- } else {
- var res = distinctArray(nest);
- if (sidx + 1 + 1 > selectors.length) {
- return res;
- } else {
- return processSelector(selectors, sidx + 1, res);
- }
- }
- } else if (sel.selid === 'AND') {
- var res = true;
- sel.args.forEach(function(se) {
- res = res && processSelector(se, 0, value).length > 0;
- });
- if (!res) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- return processSelector(selectors, sidx + 1, value);
- }
- }
- } else if (sel.selid === 'OR') {
- var res = false;
- sel.args.forEach(function(se) {
- res = res || processSelector(se, 0, value).length > 0;
- });
- if (!res) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- return processSelector(selectors, sidx + 1, value);
- }
- }
- } else if (sel.selid === 'ALL') {
- var nest = processSelector(sel.args[0], 0, value);
- if (nest.length === 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return nest;
- } else {
- return processSelector(selectors, sidx + 1, nest);
- }
- }
- } else if (sel.selid === 'ANY') {
- var nest = processSelector(sel.args[0], 0, value);
-
- if (nest.length === 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return [nest[0]];
- } else {
- return processSelector(selectors, sidx + 1, [nest[0]]);
- }
- }
- } else if (sel.selid === 'UNIONALL') {
- var nest = [];
- sel.args.forEach(function(se) {
- nest = nest.concat(processSelector(se, 0, value));
- });
- if (nest.length === 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return nest;
- } else {
- return processSelector(selectors, sidx + 1, nest);
- }
- }
- } else if (sel.selid === 'UNION') {
- var nest = [];
- sel.args.forEach(function(se) {
- nest = nest.concat(processSelector(se, 0, value));
- });
- var nest = distinctArray(nest);
- if (nest.length === 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return nest;
- } else {
- return processSelector(selectors, sidx + 1, nest);
- }
- }
- } else if (sel.selid === 'IF') {
- var nest = processSelector(sel.args, 0, value);
-
- if (nest.length === 0) {
- return [];
- } else {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- return processSelector(selectors, sidx + 1, value);
- }
- }
- } else if (sel.selid === 'REPEAT') {
-
- var lvar,
- lmax,
- lmin = sel.args[0].value;
- if (!sel.args[1]) {
- lmax = lmin; // Add security break
- } else {
- lmax = sel.args[1].value;
- }
- if (sel.args[2]) {
- lvar = sel.args[2].variable;
- }
- //var lsel = sel.sels;
-
- var retval = [];
-
- if (lmin === 0) {
- if (sidx + 1 + 1 > selectors.length) {
- retval = [value];
- } else {
- if (lvar) {
- alasql.vars[lvar] = 0;
- }
- retval = retval.concat(processSelector(selectors, sidx + 1, value));
- }
- }
-
- // var nests = processSelector(sel.sels,0,value).slice();
- if (lmax > 0) {
- var nests = [{value: value, lvl: 1}];
-
- var i = 0;
- while (nests.length > 0) {
- var nest = nests[0];
-
- nests.shift();
- if (nest.lvl <= lmax) {
- if (lvar) {
- alasql.vars[lvar] = nest.lvl;
- }
-
- var nest1 = processSelector(sel.sels, 0, nest.value);
-
- nest1.forEach(function(n) {
- nests.push({value: n, lvl: nest.lvl + 1});
- });
- if (nest.lvl >= lmin) {
- if (sidx + 1 + 1 > selectors.length) {
- retval = retval.concat(nest1);
- //return nests;
- } else {
- nest1.forEach(function(n) {
- retval = retval.concat(
- processSelector(selectors, sidx + 1, n)
- );
- });
- }
- }
- }
- // Security brake
- i++;
- if (i > SECURITY_BREAK) {
- throw new Error('Security brake. Number of iterations = ' + i);
- }
- }
- }
- return retval;
- } else if (sel.selid === 'OF') {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- var r1 = [];
- Object.keys(value).forEach(function(keyv) {
- alasql.vars[sel.args[0].variable] = keyv;
- r1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv]));
- });
- return r1;
- }
- } else if (sel.selid === 'TO') {
-
- var oldv = alasql.vars[sel.args[0]];
- var newv = [];
- if (oldv !== undefined) {
-
- newv = oldv.slice(0);
-
- } else {
- newv = [];
- }
- newv.push(value);
-
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- alasql.vars[sel.args[0]] = newv;
- var r1 = processSelector(selectors, sidx + 1, value);
-
- alasql.vars[sel.args[0]] = oldv;
- return r1;
- }
-
- } else if (sel.selid === 'ARRAY') {
- var nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- val = nest;
- } else {
- return [];
- }
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'SUM') {
- var nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- var val = nest.reduce(function(sum, current) {
- return sum + current;
- }, 0);
- } else {
- return [];
- }
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'AVG') {
- nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- val =
- nest.reduce(function(sum, current) {
- return sum + current;
- }, 0) / nest.length;
- } else {
- return [];
- }
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'COUNT') {
- nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- val = nest.length;
- } else {
- return [];
- }
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'FIRST') {
- nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- val = nest[0];
- } else {
- return [];
- }
-
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'LAST') {
- nest = processSelector(sel.args, 0, value);
- if (nest.length > 0) {
- val = nest[nest.length - 1];
- } else {
- return [];
- }
-
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'MIN') {
- nest = processSelector(sel.args, 0, value);
- if (nest.length === 0) {
- return [];
- }
- var val = nest.reduce(function(min, current) {
- return Math.min(min, current);
- }, Infinity);
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'MAX') {
- var nest = processSelector(sel.args, 0, value);
- if (nest.length === 0) {
- return [];
- }
- var val = nest.reduce(function(max, current) {
- return Math.max(max, current);
- }, -Infinity);
- if (sidx + 1 + 1 > selectors.length) {
- return [val];
- } else {
- return processSelector(selectors, sidx + 1, val);
- }
- } else if (sel.selid === 'PLUS') {
- var retval = [];
- // retval = retval.concat(processSelector(selectors,sidx+1,n))
- var nests = processSelector(sel.args, 0, value).slice();
- if (sidx + 1 + 1 > selectors.length) {
- retval = retval.concat(nests);
- } else {
- nests.forEach(function(n) {
- retval = retval.concat(processSelector(selectors, sidx + 1, n));
- });
- }
-
- var i = 0;
- while (nests.length > 0) {
- // nest = nests[0];
- // nests.shift();
- var nest = nests.shift();
-
- nest = processSelector(sel.args, 0, nest);
-
- nests = nests.concat(nest);
-
- if (sidx + 1 + 1 > selectors.length) {
- retval = retval.concat(nest);
- //return retval;
- } else {
- nest.forEach(function(n) {
-
- var rn = processSelector(selectors, sidx + 1, n);
-
- retval = retval.concat(rn);
- });
- }
-
- // Security brake
- i++;
- if (i > SECURITY_BREAK) {
- throw new Error('Security brake. Number of iterations = ' + i);
- }
- }
- return retval;
-
- } else if (sel.selid === 'STAR') {
- var retval = [];
- retval = processSelector(selectors, sidx + 1, value);
- var nests = processSelector(sel.args, 0, value).slice();
- if (sidx + 1 + 1 > selectors.length) {
- retval = retval.concat(nests);
- //return nests;
- } else {
- nests.forEach(function(n) {
- retval = retval.concat(processSelector(selectors, sidx + 1, n));
- });
- }
- var i = 0;
- while (nests.length > 0) {
- var nest = nests[0];
- nests.shift();
-
- nest = processSelector(sel.args, 0, nest);
-
- nests = nests.concat(nest);
-
- if (sidx + 1 + 1 <= selectors.length) {
- nest.forEach(function(n) {
- retval = retval.concat(processSelector(selectors, sidx + 1, n));
- });
- }
-
- // Security brake
- i++;
- if (i > SECURITY_BREAK) {
- throw new Error('Loop brake. Number of iterations = ' + i);
- }
- }
-
- return retval;
- } else if (sel.selid === 'QUESTION') {
- var retval = [];
- retval = retval.concat(processSelector(selectors, sidx + 1, value));
- var nest = processSelector(sel.args, 0, value);
- if (sidx + 1 + 1 <= selectors.length) {
- nest.forEach(function(n) {
- retval = retval.concat(processSelector(selectors, sidx + 1, n));
- });
- }
- return retval;
- } else if (sel.selid === 'WITH') {
- var nest = processSelector(sel.args, 0, value);
-
- if (nest.length === 0) {
- return [];
- } else {
-
- var r = {status: 1, values: nest};
- }
- } else if (sel.selid === 'ROOT') {
- if (sidx + 1 + 1 > selectors.length) {
- return [value];
- } else {
- return processSelector(selectors, sidx + 1, fromdata);
- }
- } else {
- throw new Error('Wrong selector ' + sel.selid);
- }
- } else if (sel.srchid) {
- var r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params);
-
- } else {
- throw new Error('Selector not found');
- }
-
- if (typeof r === 'undefined') {
- r = {status: 1, values: [value]};
- }
-
- var res = [];
- if (r.status === 1) {
- var arr = r.values;
-
- if (sidx + 1 + 1 > selectors.length) {
- // if(sidx+1+1 > selectors.length) {
- res = arr;
-
- } else {
- for (var i = 0; i < r.values.length; i++) {
- res = res.concat(processSelector(selectors, sidx + 1, arr[i]));
- }
- }
- }
- return res;
- }
-
- if (selectors !== undefined && selectors.length > 0) {
-
- if (
- selectors &&
- selectors[0] &&
- selectors[0].srchid === 'PROP' &&
- selectors[0].args &&
- selectors[0].args[0]
- ) {
-
- if (selectors[0].args[0].toUpperCase() === 'XML') {
- stope.mode = 'XML';
- selectors.shift();
- } else if (selectors[0].args[0].toUpperCase() === 'HTML') {
- stope.mode = 'HTML';
- selectors.shift();
- } else if (selectors[0].args[0].toUpperCase() === 'JSON') {
- stope.mode = 'JSON';
- selectors.shift();
- }
- }
- if (selectors.length > 0 && selectors[0].srchid === 'VALUE') {
- stope.value = true;
- selectors.shift();
- }
- }
-
- if (this.from instanceof yy.Column) {
- var dbid = this.from.databaseid || databaseid;
- fromdata = alasql.databases[dbid].tables[this.from.columnid].data;
- //selectors.unshift({srchid:'CHILD'});
- } else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) {
- var args = this.from.args.map(function(arg) {
- var as = arg.toJS();
-
- var fn = new Function('params,alasql', 'var y;return ' + as).bind(this);
- return fn(params, alasql);
- });
-
- fromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args);
-
- } else if (typeof this.from === 'undefined') {
- fromdata = alasql.databases[databaseid].objects;
- } else {
- var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
- fromdata = fromfn(params, alasql);
- // Check for Mogo Collections
- if (
- typeof Mongo === 'object' &&
- typeof Mongo.Collection !== 'object' &&
- fromdata instanceof Mongo.Collection
- ) {
- fromdata = fromdata.find().fetch();
- }
-
- // if(typeof fromdata == 'object' && Array.isArray(fromdata)) {
- // selectors.unshift({srchid:'CHILD'});
- // }
- }
-
- // If source data is array than first step is to run over array
- // var selidx = 0;
- // var selvalue = fromdata;
-
- if (selectors !== undefined && selectors.length > 0) {
- // Init variables for TO() selectors
-
- if (false) {
- selectors.forEach(function(selector) {
- if (selector.srchid === 'TO') {
- //* @todo move to TO selector
- alasql.vars[selector.args[0]] = [];
- // TODO - process nested selectors
- }
- });
- }
-
- res = processSelector(selectors, 0, fromdata);
- } else {
- res = fromdata;
- }
-
- if (this.into) {
- var a1, a2;
- if (typeof this.into.args[0] !== 'undefined') {
- a1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())(
- params,
- alasql
- );
- }
- if (typeof this.into.args[1] !== 'undefined') {
- a2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())(
- params,
- alasql
- );
- }
- res = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb);
- } else {
- if (stope.value && res.length > 0) {
- res = res[0];
- }
- if (cb) {
- res = cb(res);
- }
- }
- return res;
-}
-
-/**
- Search class
- @class
- @example
- SEARCH SUM(/a) FROM ? -- search over parameter object
-*/
-
-yy.Search = function(params) {
- return yy.extend(this, params);
-};
-
-yy.Search.prototype.toString = function() {
- var s = 'SEARCH' + ' ';
- if (this.selectors) {
- s += this.selectors.toString();
- }
- if (this.from) {
- s += 'FROM' + ' ' + this.from.toString();
- }
-
- return s;
-};
-
-yy.Search.prototype.toJS = function(context) {
-
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
- // var s = '';
- return s;
-};
-
-yy.Search.prototype.compile = function(databaseid) {
- var dbid = databaseid;
- var self = this;
-
- var statement = function(params, cb) {
-
- var res;
- doSearch.bind(self)(dbid, params, function(data) {
-
- res = modify(statement.query, data);
-
- if (cb) {
- res = cb(res);
- }
- });
-
- // if(cb) res = cb(res);
- return res;
- };
- statement.query = {};
- return statement;
-};
-
-// List of search functions
-alasql.srch = {};
-
-alasql.srch.PROP = function(val, args, stope) {
-
- if (stope.mode === 'XML') {
- var arr = [];
- val.children.forEach(function(v) {
- if (v.name.toUpperCase() === args[0].toUpperCase()) {
- arr.push(v);
- }
- });
- if (arr.length > 0) {
- return {status: 1, values: arr};
- } else {
- return {status: -1, values: []};
- }
- } else {
- if (
- typeof val !== 'object' ||
- val === null ||
- typeof args !== 'object' ||
- typeof val[args[0]] === 'undefined'
- ) {
- return {status: -1, values: []};
- } else {
- return {status: 1, values: [val[args[0]]]};
- }
- }
-};
-
-alasql.srch.APROP = function(val, args) {
- if (
- typeof val !== 'object' ||
- val === null ||
- typeof args !== 'object' ||
- typeof val[args[0]] === 'undefined'
- ) {
- return {status: 1, values: [undefined]};
- } else {
- return {status: 1, values: [val[args[0]]]};
- }
-};
-
-// Test expression
-alasql.srch.EQ = function(val, args, stope, params) {
- var exprs = args[0].toJS('x', '');
- var exprfn = new Function('x,alasql,params', 'return ' + exprs);
- if (val === exprfn(val, alasql, params)) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Test expression
-alasql.srch.LIKE = function(val, args, stope, params) {
- var exprs = args[0].toJS('x', '');
- var exprfn = new Function('x,alasql,params', 'return ' + exprs);
- if (
- val.toUpperCase().match(
- new RegExp(
- '^' +
- exprfn(val, alasql, params)
- .toUpperCase()
- .replace(/%/g, '.*')
- .replace(/\?|_/g, '.') +
- '$'
- ),
- 'g'
- )
- ) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.ATTR = function(val, args, stope) {
- if (stope.mode === 'XML') {
- if (typeof args === 'undefined') {
- return {status: 1, values: [val.attributes]};
- } else {
- if (
- typeof val === 'object' &&
- typeof val.attributes === 'object' &&
- typeof val.attributes[args[0]] !== 'undefined'
- ) {
- return {status: 1, values: [val.attributes[args[0]]]};
- } else {
- return {status: -1, values: []};
- }
- }
- } else {
- throw new Error('ATTR is not using in usual mode');
- }
-};
-
-alasql.srch.CONTENT = function(val, args, stope) {
- if (stope.mode === 'XML') {
- return {status: 1, values: [val.content]};
- } else {
- throw new Error('ATTR is not using in usual mode');
- }
-};
-
-alasql.srch.SHARP = function(val, args) {
- var obj = alasql.databases[alasql.useid].objects[args[0]];
- if (typeof val !== 'undefined' && val === obj) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.PARENT = function(/*val,args,stope*/) {
- // TODO: implement
- console.error('PARENT not implemented', arguments);
-
- return {status: -1, values: []};
-};
-
-alasql.srch.CHILD = function(val, args, stope) {
-
- if (typeof val === 'object') {
- if (Array.isArray(val)) {
- return {status: 1, values: val};
- } else {
- if (stope.mode === 'XML') {
- return {
- status: 1,
- values: Object.keys(val.children).map(function(key) {
- return val.children[key];
- }),
- };
- } else {
- return {
- status: 1,
- values: Object.keys(val).map(function(key) {
- return val[key];
- }),
- };
- }
- }
- } else {
- // If primitive value
- return {status: 1, values: []};
- }
-};
-
-// Return all keys
-alasql.srch.KEYS = function(val) {
- if (typeof val === 'object' && val !== null) {
- return {status: 1, values: Object.keys(val)};
- } else {
- // If primitive value
- return {status: 1, values: []};
- }
-};
-
-// Test expression
-alasql.srch.WHERE = function(val, args, stope, params) {
- var exprs = args[0].toJS('x', '');
- var exprfn = new Function('x,alasql,params', 'return ' + exprs);
- if (exprfn(val, alasql, params)) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.NAME = function(val, args) {
- if (val.name === args[0]) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.CLASS = function(val, args) {
-
- // Please avoid `===` here
- if (val.$class == args) {
- // jshint ignore:line
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.VERTEX = function(val) {
- if (val.$node === 'VERTEX') {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.INSTANCEOF = function(val, args) {
- if (val instanceof alasql.fn[args[0]]) {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.EDGE = function(val) {
- if (val.$node === 'EDGE') {
- return {status: 1, values: [val]};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.EX = function(val, args, stope, params) {
- var exprs = args[0].toJS('x', '');
- var exprfn = new Function('x,alasql,params', 'return ' + exprs);
- return {status: 1, values: [exprfn(val, alasql, params)]};
-};
-
-// Transform expression
-alasql.srch.RETURN = function(val, args, stope, params) {
- var res = {};
- if (args && args.length > 0) {
- args.forEach(function(arg) {
- var exprs = arg.toJS('x', '');
- var exprfn = new Function('x,alasql,params', 'return ' + exprs);
- if (typeof arg.as === 'undefined') {
- arg.as = arg.toString();
- }
- res[arg.as] = exprfn(val, alasql, params);
- });
- }
- return {status: 1, values: [res]};
-};
-
-// Transform expression
-alasql.srch.REF = function(val) {
- return {status: 1, values: [alasql.databases[alasql.useid].objects[val]]};
-};
-
-// Transform expression
-alasql.srch.OUT = function(val) {
- if (val.$out && val.$out.length > 0) {
- var res = val.$out.map(function(v) {
- return alasql.databases[alasql.useid].objects[v];
- });
- return {status: 1, values: res};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.OUTOUT = function(val) {
- if (val.$out && val.$out.length > 0) {
- var res = [];
- val.$out.forEach(function(v) {
- var av = alasql.databases[alasql.useid].objects[v];
- if (av && av.$out && av.$out.length > 0) {
- av.$out.forEach(function(vv) {
- res = res.concat(alasql.databases[alasql.useid].objects[vv]);
- });
- }
- });
- return {status: 1, values: res};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.IN = function(val) {
- if (val.$in && val.$in.length > 0) {
- var res = val.$in.map(function(v) {
- return alasql.databases[alasql.useid].objects[v];
- });
- return {status: 1, values: res};
- } else {
- return {status: -1, values: []};
- }
-};
-
-alasql.srch.ININ = function(val) {
- if (val.$in && val.$in.length > 0) {
- var res = [];
- val.$in.forEach(function(v) {
- var av = alasql.databases[alasql.useid].objects[v];
- if (av && av.$in && av.$in.length > 0) {
- av.$in.forEach(function(vv) {
- res = res.concat(alasql.databases[alasql.useid].objects[vv]);
- });
- }
- });
- return {status: 1, values: res};
- } else {
- return {status: -1, values: []};
- }
-};
-
-// Transform expression
-alasql.srch.AS = function(val, args) {
- alasql.vars[args[0]] = val;
- return {status: 1, values: [val]};
-};
-
-// Transform expression
-alasql.srch.AT = function(val, args) {
- var v = alasql.vars[args[0]];
- return {status: 1, values: [v]};
-};
-
-// Transform expression
-alasql.srch.CLONEDEEP = function(val) {
- // TODO something wrong
- var z = cloneDeep(val);
- return {status: 1, values: [z]};
-};
-
-// // Transform expression
-// alasql.srch.DELETE = function(val,args) {
-
-// };
-
-// Transform expression
-alasql.srch.SET = function(val, args, stope, params) {
-
- var s = args
- .map(function(st) {
-
- if (st.method === '@') {
- return "alasql.vars['" + st.variable + "']=" + st.expression.toJS('x', '');
- } else if (st.method === '$') {
- return "params['" + st.variable + "']=" + st.expression.toJS('x', '');
- } else {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- }
- })
- .join(';');
- var setfn = new Function('x,params,alasql', s);
-
- setfn(val, params, alasql);
-
- return {status: 1, values: [val]};
-};
-
-alasql.srch.ROW = function(val, args, stope, params) {
- var s = 'var y;return [';
-
- s += args
- .map(function(arg) {
- return arg.toJS('x', '');
- })
- .join(',');
- s += ']';
- var setfn = new Function('x,params,alasql', s);
- var rv = setfn(val, params, alasql);
-
- return {status: 1, values: [rv]};
-};
-
-alasql.srch.D3 = function(val) {
- if (val.$node !== 'VERTEX' && val.$node === 'EDGE') {
- val.source = val.$in[0];
- val.target = val.$out[0];
- }
-
- return {status: 1, values: [val]};
-};
-
-var compileSearchOrder = function(order) {
- if (order) {
-
- if (
- order &&
- order.length === 1 &&
- order[0].expression &&
- typeof order[0].expression === 'function'
- ) {
-
- var func = order[0].expression;
-
- return function(a, b) {
- var ra = func(a),
- rb = func(b);
- if (ra > rb) {
- return 1;
- }
- if (ra === rb) {
- return 0;
- }
- return -1;
- };
- }
-
- var s = '';
- var sk = '';
- order.forEach(function(ord) {
-
- // Date conversion
- var dg = '';
-
- if (ord.expression instanceof yy.NumValue) {
- ord.expression = self.columns[ord.expression.value - 1];
- }
-
- if (ord.expression instanceof yy.Column) {
- var columnid = ord.expression.columnid;
-
- if (alasql.options.valueof) {
- dg = '.valueOf()'; // TODO Check
- }
- // COLLATE NOCASE
- if (ord.nocase) {
- dg += '.toUpperCase()';
- }
-
- if (columnid === '_') {
- s +=
- 'if(a' +
- dg +
- (ord.direction === 'ASC' ? '>' : '<') +
- 'b' +
- dg +
- ')return 1;';
- s += 'if(a' + dg + '==b' + dg + '){';
- } else {
- s +=
- "if((a['" +
- columnid +
- "']||'')" +
- dg +
- (ord.direction === 'ASC' ? '>' : '<') +
- "(b['" +
- columnid +
- "']||'')" +
- dg +
- ')return 1;';
- s +=
- "if((a['" +
- columnid +
- "']||'')" +
- dg +
- "==(b['" +
- columnid +
- "']||'')" +
- dg +
- '){';
- }
- } else {
- dg = '.valueOf()';
- // COLLATE NOCASE
- if (ord.nocase) {
- dg += '.toUpperCase()';
- }
- s +=
- 'if((' +
- ord.toJS('a', '') +
- "||'')" +
- dg +
- (ord.direction === 'ASC' ? '>(' : '<(') +
- ord.toJS('b', '') +
- "||'')" +
- dg +
- ')return 1;';
- s +=
- 'if((' +
- ord.toJS('a', '') +
- "||'')" +
- dg +
- '==(' +
- ord.toJS('b', '') +
- "||'')" +
- dg +
- '){';
- }
-
- // TODO Add date comparision
- // s += 'if(a[\''+columnid+"']"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\''+columnid+"']"+dg+')return 1;';
- // s += 'if(a[\''+columnid+"']"+dg+'==b[\''+columnid+"']"+dg+'){';
- // }
- sk += '}';
- });
- s += 'return 0;';
- s += sk + 'return -1';
-
- return new Function('a,b', s);
- }
-};
-
-alasql.srch.ORDERBY = function(val, args /*,stope*/) {
-
- var res = val.sort(compileSearchOrder(args));
- return {status: 1, values: res};
-};
-
-// Main query procedure
-function queryfn(query, oldscope, cb, A, B) {
- var aaa = query.sources.length;
-
- var ms;
- query.sourceslen = query.sources.length;
- var slen = query.sourceslen;
- query.query = query; // TODO Remove to prevent memory leaks
- query.A = A;
- query.B = B;
- query.cb = cb;
- query.oldscope = oldscope;
-
- // Run all subqueries before main statement
- if (query.queriesfn) {
- query.sourceslen += query.queriesfn.length;
- slen += query.queriesfn.length;
-
- query.queriesdata = [];
-
- query.queriesfn.forEach(function(q, idx) {
- // if(query.explain) ms = Date.now();
-
- // var res = flatArray(q(query.params,null,queryfn2,(-idx-1),query));
-
- // var res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query));
-
- q.query.params = query.params;
- // query.queriesdata[idx] =
-
- // if(false) {
- // queryfn(q.query,query.oldscope,queryfn2,(-idx-1),query);
- // } else {
- queryfn2([], -idx - 1, query);
- // }
-
- // query.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms});
- // query.queriesdata[idx] = res;
- // return res;
- });
-
- }
-
- var scope;
- if (!oldscope) scope = {};
- else scope = cloneDeep(oldscope);
- query.scope = scope;
-
- // First - refresh data sources
-
- var result;
- query.sources.forEach(function(source, idx) {
- // source.data = query.database.tables[source.tableid].data;
-
- source.query = query;
- var rs = source.datafn(query, query.params, queryfn2, idx, alasql);
-
- if (typeof rs !== 'undefined') {
- // TODO - this is a hack: check if result is array - check all cases and
- // make it more logical
- if ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length;
- result = rs;
- }
- //
- // Ugly hack to use in query.wherefn and source.srcwherefns functions
- // constructions like this.queriesdata['test'].
- // I can elimite it with source.srcwherefn.bind(this)()
- // but it may be slow.
- //
- source.queriesdata = query.queriesdata;
- });
- if (query.sources.length == 0 || 0 === slen) result = queryfn3(query);
-
- return result;
-}
-
-function queryfn2(data, idx, query) {
-
- //console.trace();
-
- if (idx >= 0) {
- var source = query.sources[idx];
- source.data = data;
- if (typeof source.data == 'function') {
- source.getfn = source.data;
- source.dontcache = source.getfn.dontcache;
-
- // var prevsource = query.sources[h-1];
- if (
- source.joinmode == 'OUTER' ||
- source.joinmode == 'RIGHT' ||
- source.joinmode == 'ANTI'
- ) {
- source.dontcache = false;
- }
- source.data = {};
- }
- } else {
- // subqueries
-
- query.queriesdata[-idx - 1] = flatArray(data);
-
- }
-
- query.sourceslen--;
- if (query.sourceslen > 0) return;
-
- return queryfn3(query);
-}
-
-function queryfn3(query) {
- var scope = query.scope,
- jlen;
-
- // Preindexation of data sources
- // if(!oldscope) {
- preIndex(query);
- // }
-
- // query.sources.forEach(function(source) {
-
- // });
-
- // Prepare variables
- query.data = [];
- query.xgroups = {};
- query.groups = [];
-
- // Level of Joins
- var h = 0;
-
- // Start walking over data
-
- doJoin(query, scope, h);
-
- // If groupping, then filter groups with HAVING function
-
- if (query.groupfn) {
- query.data = [];
- if (0 === query.groups.length) {
- var g = {};
- if (query.selectGroup.length > 0) {
-
- query.selectGroup.forEach(function(sg) {
- if (sg.aggregatorid == 'COUNT' || sg.aggregatorid == 'SUM') {
- g[sg.nick] = 0;
- } else {
- g[sg.nick] = undefined;
- }
- });
- }
- query.groups = [g];
-
- }
-
- // ******
-
- if (query.aggrKeys.length > 0) {
- var gfns = '';
- query.aggrKeys.forEach(function(col) {
- gfns +=
- "g['" +
- col.nick +
- "']=alasql.aggr['" +
- col.funcid +
- "'](undefined,g['" +
- col.nick +
- "'],3);";
- // gfns += 'return g[\''+col.nick+'\];';
- });
-
- var gfn = new Function('g,params,alasql', 'var y;' + gfns);
- }
-
- // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),'
- // +'\'__REDUCE__'+colas+'\':acc,';
-
- // *******
-
- // debugger;
- // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) {
-
- // } else {
- for (var i = 0, ilen = query.groups.length; i < ilen; i++) {
- var g = query.groups[i];
-
- if (gfn) gfn(g, query.params, alasql);
-
- if (!query.havingfn || query.havingfn(g, query.params, alasql)) {
-
- var d = query.selectgfn(g, query.params, alasql);
- query.data.push(d);
- }
- }
- // }
-
- // query.groups = query.groups.filter();
- }
- // Remove distinct values
- doDistinct(query);
-
- // UNION / UNION ALL
- if (query.unionallfn) {
- // TODO Simplify this part of program
- var ud, nd;
- if (query.corresponding) {
- if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined;
- ud = query.unionallfn(query.params);
- } else {
- if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET';
- nd = query.unionallfn(query.params);
- ud = [];
- ilen = nd.data.length;
- for (var i = 0; i < ilen; i++) {
- var r = {};
- for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {
- r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
- }
- ud.push(r);
- }
- }
- query.data = query.data.concat(ud);
- } else if (query.unionfn) {
- if (query.corresponding) {
- if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY';
- ud = query.unionfn(query.params);
- } else {
- if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET';
- nd = query.unionfn(query.params);
- ud = [];
- ilen = nd.data.length;
- for (var i = 0; i < ilen; i++) {
- r = {};
- jlen = Math.min(query.columns.length, nd.columns.length);
- for (var j = 0; j < jlen; j++) {
- r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
- }
- ud.push(r);
- }
- }
-
- query.data = arrayUnionDeep(query.data, ud);
- } else if (query.exceptfn) {
- if (query.corresponding) {
- if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY';
- var ud = query.exceptfn(query.params);
- } else {
- if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET';
- var nd = query.exceptfn(query.params);
- var ud = [];
- for (var i = 0, ilen = nd.data.length; i < ilen; i++) {
- var r = {};
- for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {
- r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
- }
- ud.push(r);
- }
- }
-
- query.data = arrayExceptDeep(query.data, ud);
- } else if (query.intersectfn) {
- if (query.corresponding) {
- if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined;
- ud = query.intersectfn(query.params);
- } else {
- if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET';
- nd = query.intersectfn(query.params);
- ud = [];
- ilen = nd.data.length;
- for (i = 0; i < ilen; i++) {
- r = {};
- jlen = Math.min(query.columns.length, nd.columns.length);
- for (j = 0; j < jlen; j++) {
- r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
- }
- ud.push(r);
- }
- }
-
- query.data = arrayIntersectDeep(query.data, ud);
- }
-
- // Ordering
- if (query.orderfn) {
- if (query.explain) var ms = Date.now();
- query.data = query.data.sort(query.orderfn);
- if (query.explain) {
- query.explaination.push({
- explid: query.explid++,
- description: 'QUERY BY',
- ms: Date.now() - ms,
- });
- }
- }
-
- // Reduce to limit and offset
- doLimit(query);
-
- // Remove Angular.js artifacts and other unnecessary columns
- // Issue #25
-
- // TODO: Check what artefacts rest from Angular.js
- if (typeof angular != 'undefined') {
- query.removeKeys.push('$$hashKey');
- }
-
- if (query.removeKeys.length > 0) {
- var removeKeys = query.removeKeys;
-
- // Remove from data
- jlen = removeKeys.length;
- if (jlen > 0) {
- ilen = query.data.length;
- for (i = 0; i < ilen; i++) {
- for (j = 0; j < jlen; j++) {
- delete query.data[i][removeKeys[j]];
- }
- }
- }
-
- // Remove from columns list
- if (query.columns.length > 0) {
- query.columns = query.columns.filter(function(column) {
- var found = false;
- removeKeys.forEach(function(key) {
- if (column.columnid == key) found = true;
- });
- return !found;
- });
- }
- }
-
- if (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) {
- var removeLikeKeys = query.removeLikeKeys;
-
- // Remove unused columns
- // SELECT * REMOVE COLUMNS LIKE "%b"
- for (var i = 0, ilen = query.data.length; i < ilen; i++) {
- r = query.data[i];
- for (var k in r) {
- for (j = 0; j < query.removeLikeKeys.length; j++) {
- if (alasql.utils.like(query.removeLikeKeys[j], k)) {
- // if(k.match(query.removeLikeKeys[j])) {
- delete r[k];
- }
- }
- }
- }
-
- if (query.columns.length > 0) {
- query.columns = query.columns.filter(function(column) {
- var found = false;
- removeLikeKeys.forEach(function(key) {
- // if(column.columnid.match(key)) found = true;
- if (alasql.utils.like(key, column.columnid)) {
- found = true;
- }
- });
- return !found;
- });
- }
- }
-
- if (query.pivotfn) query.pivotfn();
- if (query.unpivotfn) query.unpivotfn();
-
- if (query.intoallfn) {
-
- // var res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql);
- var res = query.intoallfn(query.columns, query.cb, query.params, query.alasql);
-
- // if(query.cb) res = query.cb(res,query.A, query.B);
-
- // debugger;
- return res;
- } else if (query.intofn) {
- ilen = query.data.length;
- for (i = 0; i < ilen; i++) {
- query.intofn(query.data[i], i, query.params, query.alasql);
- }
-
- if (query.cb) query.cb(query.data.length, query.A, query.B);
- return query.data.length;
- } else {
-
- res = query.data;
- if (query.cb) res = query.cb(query.data, query.A, query.B);
- return res;
- }
-}
-
-// Limiting
-function doLimit(query) {
-
- if (query.limit) {
- var offset = 0;
- if (query.offset) {
- offset = query.offset | 0 || 0;
- offset = offset < 0 ? 0 : offset;
- }
- var limit;
- if (query.percent) {
- limit = ((query.data.length * query.limit / 100) | 0) + offset;
- } else {
- limit = (query.limit | 0) + offset;
- }
- query.data = query.data.slice(offset, limit);
- }
-}
-
-// Distinct
-function doDistinct(query) {
- if (query.distinct) {
- var uniq = {};
- // TODO: Speedup, because Object.keys is slow**
- // TODO: Problem with DISTINCT on objects
- var keys = Object.keys(query.data[0] || []);
- for (var i = 0, ilen = query.data.length; i < ilen; i++) {
- var uix = keys
- .map(function(k) {
- return query.data[i][k];
- })
- .join('`');
- uniq[uix] = query.data[i];
- }
- query.data = [];
- for (var key in uniq) {
- query.data.push(uniq[key]);
- }
- }
-}
-
-// Optimization: preliminary indexation of joins
-var preIndex = function(query) {
-
- // Loop over all sources
- // Todo: make this loop smaller and more graspable
- for (var k = 0, klen = query.sources.length; k < klen; k++) {
- var source = query.sources[k];
- delete source.ix;
- // If there is indexation rule
-
- if (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) {
- // If there is no table.indices - create it
- if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) {
- if (!alasql.databases[source.databaseid].tables[source.tableid].indices)
- query.database.tables[source.tableid].indices = {};
- // Check if index already exists
- var ixx =
- alasql.databases[source.databaseid].tables[source.tableid].indices[
- hash(source.onrightfns + '`' + source.srcwherefns)
- ];
- if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) {
- source.ix = ixx;
- }
- }
-
- if (!source.ix) {
- source.ix = {};
- // Walking over source data
- var scope = {};
- var i = 0;
- var ilen = source.data.length;
- var dataw;
- // while(source.getfn i= query.sources.length) {
- // Todo: check if this runs once too many
-
- // Then apply where and select
-
- if (query.wherefn(scope, query.params, alasql)) {
-
- // var res = query.selectfn(scope, query.params, alasql);
-
- // If there is a GROUP BY then pipe to groupping function
- if (query.groupfn) {
- query.groupfn(scope, query.params, alasql);
- } else {
- // query.qwerty = 999;
-
- query.data.push(query.selectfn(scope, query.params, alasql));
- }
- }
- } else if (query.sources[h].applyselect) {
-
- var source = query.sources[h];
- source.applyselect(
- query.params,
- function(data) {
- if (data.length > 0) {
-
- for (var i = 0; i < data.length; i++) {
- scope[source.alias] = data[i];
- doJoin(query, scope, h + 1);
- }
- } else {
- if (source.applymode == 'OUTER') {
- scope[source.alias] = {};
- doJoin(query, scope, h + 1);
- }
- }
- },
- scope
- );
-
- } else {
- // STEP 1
-
- var source = query.sources[h];
- var nextsource = query.sources[h + 1];
-
- // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "RIGHT"
- // || source.joinmode == "OUTER" || source.joinmode == "SEMI") {
- // Todo: check if this is smart
- if (true) {
- //source.joinmode != "ANTI") {
-
- var tableid = source.alias || source.tableid;
- var pass = false; // For LEFT JOIN
- var data = source.data;
- var opt = false;
-
- // Reduce data for looping if there is optimization hint
- if (!source.getfn || (source.getfn && !source.dontcache)) {
- if (
- source.joinmode != 'RIGHT' &&
- source.joinmode != 'OUTER' &&
- source.joinmode != 'ANTI' &&
- source.optimization == 'ix'
- ) {
- data = source.ix[source.onleftfn(scope, query.params, alasql)] || [];
- opt = true;
-
- }
- }
-
- // Main cycle
- var i = 0;
- if (typeof data == 'undefined') {
- throw new Error('Data source number ' + h + ' in undefined');
- }
- var ilen = data.length;
- var dataw;
-
- while (
- (dataw = data[i]) ||
- (!opt && (source.getfn && (dataw = source.getfn(i)))) ||
- i < ilen
- ) {
- if (!opt && source.getfn && !source.dontcache) data[i] = dataw;
-
- scope[tableid] = dataw;
- // Reduce with ON and USING clause
- if (
- !source.onleftfn ||
- source.onleftfn(scope, query.params, alasql) ==
- source.onrightfn(scope, query.params, alasql)
- ) {
- // For all non-standard JOINs like a-b=0
- if (source.onmiddlefn(scope, query.params, alasql)) {
- // Recursively call new join
- // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "OUTER" || source.joinmode == "RIGHT" ) {
- if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') {
-
- doJoin(query, scope, h + 1);
- }
-
- // if(source.data[i].f = 200) debugger;
-
- // if(source.joinmode == "RIGHT" || source.joinmode == "ANTI" || source.joinmode == "OUTER") {
- if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') {
- dataw._rightjoin = true;
- }
-
- // for LEFT JOIN
- pass = true;
- }
- }
- i++;
- }
-
- // Additional join for LEFT JOINS
- if (
- (source.joinmode == 'LEFT' ||
- source.joinmode == 'OUTER' ||
- source.joinmode == 'SEMI') &&
- !pass
- ) {
- // Clear the scope after the loop
- scope[tableid] = {};
- doJoin(query, scope, h + 1);
- }
- }
-
- // When there is no records
- // if(data.length == 0 && query.groupfn) {
- // scope[tableid] = undefined;
- // doJoin(query,scope,h+1);
- // }
-
- // STEP 2
-
- if (h + 1 < query.sources.length) {
- if (
- nextsource.joinmode == 'OUTER' ||
- nextsource.joinmode == 'RIGHT' ||
- nextsource.joinmode == 'ANTI'
- ) {
- scope[source.alias] = {};
-
- var j = 0;
- var jlen = nextsource.data.length;
- var dataw;
-
- while (
- (dataw = nextsource.data[j]) ||
- (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
- j < jlen
- ) {
- if (nextsource.getfn && !nextsource.dontcache) {
- nextsource.data[j] = dataw;
- }
-
- if (dataw._rightjoin) {
- delete dataw._rightjoin;
- } else {
- // delete dataw._rightjoin;
-
- if (h == 0) {
- scope[nextsource.alias] = dataw;
- doJoin(query, scope, h + 2);
- } else {
- //scope[nextsource.alias] = dataw;
- //doJoin(query, scope, h+2);
-
- }
- }
- j++;
- }
- // debugger;
- } else {
-
- }
- } else {
-
- }
-
- scope[tableid] = undefined;
-
- }
-}
-
-function swapSources(query, h) {
- var source = query.sources[h];
- var nextsource = query.sources[h + 1];
-
- var onleftfn = source.onleftfn;
- var onleftfns = source.onleftfns;
- var onrightfn = source.onrightfn;
- var onrightfns = source.onrightfns;
- var optimization = source.optimization;
-
- source.onleftfn = nextsource.onrightfn;
- source.onleftfns = nextsource.onrightfns;
- source.onrightfn = nextsource.onleftfn;
- source.onrightfns = nextsource.onleftfns;
- source.optimization = nextsource.optimization;
-
- nextsource.onleftfn = onleftfn;
- nextsource.onleftfns = onleftfns;
- nextsource.onrightfn = onrightfn;
- nextsource.onrightfns = onrightfns;
- nextsource.optimization = optimization;
-
- query.sources[h] = nextsource;
- query.sources[h + 1] = source;
-}
-
-/*
-//
-// Select run-time part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-//
-// Main part of SELECT procedure
-//
-
-/* global yy */
-
-yy.Select = function(params) {
- return yy.extend(this, params);
-};
-yy.Select.prototype.toString = function() {
- var s;
- s = '';
- if (this.explain) {
- s += 'EXPLAIN ';
- }
- s += 'SELECT ';
- if (this.modifier) {
- s += this.modifier + ' ';
- }
- if (this.distinct) {
- s += 'DISTINCT ';
- }
- if (this.top) {
- s += 'TOP ' + this.top.value + ' ';
- if (this.percent) {
- s += 'PERCENT ';
- }
- }
- s += this.columns
- .map(function(col) {
- var s;
- s = col.toString();
- if (typeof col.as !== 'undefined') {
- s += ' AS ' + col.as;
- }
- return s;
- })
- .join(', ');
- if (this.from) {
- s +=
- ' FROM ' +
- this.from
- .map(function(f) {
- var ss;
- ss = f.toString();
- if (f.as) {
- ss += ' AS ' + f.as;
- }
- return ss;
- })
- .join(',');
- }
- if (this.joins) {
- s += this.joins
- .map(function(jn) {
- var ss;
- ss = ' ';
- if (jn.joinmode) {
- ss += jn.joinmode + ' ';
- }
- if (jn.table) {
- ss += 'JOIN ' + jn.table.toString();
- } else if (jn.select) {
- ss += 'JOIN (' + jn.select.toString() + ')';
- } else if (jn instanceof alasql.yy.Apply) {
- ss += jn.toString();
- } else {
- throw new Error('Wrong type in JOIN mode');
- }
- if (jn.as) {
- ss += ' AS ' + jn.as;
- }
- if (jn.using) {
- ss += ' USING ' + jn.using.toString();
- }
- if (jn.on) {
- ss += ' ON ' + jn.on.toString();
- }
- return ss;
- })
- .join('');
- }
- if (this.where) {
- s += ' WHERE ' + this.where.toString();
- }
- if (this.group && this.group.length > 0) {
- s +=
- ' GROUP BY ' +
- this.group
- .map(function(grp) {
- return grp.toString();
- })
- .join(', ');
- }
- if (this.having) {
- s += ' HAVING ' + this.having.toString();
- }
- if (this.order && this.order.length > 0) {
- s +=
- ' ORDER BY ' +
- this.order
- .map(function(ord) {
- return ord.toString();
- })
- .join(', ');
- }
- if (this.limit) {
- s += ' LIMIT ' + this.limit.value;
- }
- if (this.offset) {
- s += ' OFFSET ' + this.offset.value;
- }
- if (this.union) {
- s += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString();
- }
- if (this.unionall) {
- s +=
- ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString();
- }
- if (this.except) {
- s += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString();
- }
- if (this.intersect) {
- s +=
- ' INTERSECT ' +
- (this.corresponding ? 'CORRESPONDING ' : '') +
- this.intersect.toString();
- }
- return s;
-};
-
-/**
- Select statement in expression
- */
-yy.Select.prototype.toJS = function(context) {
-
- // if(this.expression.reduced) return 'true';
- // return this.expression.toJS(context, tableid, defcols);
-
- // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
-
- var s =
- 'alasql.utils.flatArray(this.queriesfn[' +
- (this.queriesidx - 1) +
- '](this.params,null,' +
- context +
- '))[0]';
-
- return s;
-};
-
-// Compile SELECT statement
-yy.Select.prototype.compile = function(databaseid, params) {
- var db = alasql.databases[databaseid];
- // Create variable for query
- var query = new Query();
-
- // Array with columns to be removed
- query.removeKeys = [];
- query.aggrKeys = [];
-
- query.explain = this.explain; // Explain
- query.explaination = [];
- query.explid = 1;
-
- query.modifier = this.modifier;
-
- query.database = db;
- // 0. Precompile whereexists
- this.compileWhereExists(query);
-
- // 0. Precompile queries for IN, NOT IN, ANY and ALL operators
- this.compileQueries(query);
-
- query.defcols = this.compileDefCols(query, databaseid);
-
- // 1. Compile FROM clause
- query.fromfn = this.compileFrom(query);
-
- // 2. Compile JOIN clauses
- if (this.joins) {
- this.compileJoins(query);
- }
-
- // todo?: 3. Compile SELECT clause
-
- // For ROWNUM()
- query.rownums = [];
-
- this.compileSelectGroup0(query);
-
- if (this.group || query.selectGroup.length > 0) {
- query.selectgfns = this.compileSelectGroup1(query);
- } else {
- query.selectfns = this.compileSelect1(query, params);
- }
-
- // Remove columns clause
- this.compileRemoveColumns(query);
-
- // 5. Optimize WHERE and JOINS
- if (this.where) {
- this.compileWhereJoins(query);
- }
-
- // 4. Compile WHERE clause
- query.wherefn = this.compileWhere(query);
-
- // 6. Compile GROUP BY
- if (this.group || query.selectGroup.length > 0) {
- query.groupfn = this.compileGroup(query);
- }
-
- // 6. Compile HAVING
- if (this.having) {
- query.havingfn = this.compileHaving(query);
- }
-
- // 8. Compile ORDER BY clause
- if (this.order) {
- query.orderfn = this.compileOrder(query);
- }
-
- if (this.group || query.selectGroup.length > 0) {
- query.selectgfn = this.compileSelectGroup2(query);
- } else {
- query.selectfn = this.compileSelect2(query);
- }
-
- // 7. Compile DISTINCT, LIMIT and OFFSET
- query.distinct = this.distinct;
-
- // 9. Compile PIVOT clause
- if (this.pivot) query.pivotfn = this.compilePivot(query);
- if (this.unpivot) query.pivotfn = this.compileUnpivot(query);
-
- // 10. Compile TOP/LIMIT/OFFSET/FETCH cleuse
- if (this.top) {
- query.limit = this.top.value;
- } else if (this.limit) {
- query.limit = this.limit.value;
- if (this.offset) {
- query.offset = this.offset.value;
- }
- }
-
- query.percent = this.percent;
-
- // 9. Compile ordering function for UNION and UNIONALL
- query.corresponding = this.corresponding; // If CORRESPONDING flag exists
- if (this.union) {
- query.unionfn = this.union.compile(databaseid);
- if (this.union.order) {
- query.orderfn = this.union.compileOrder(query);
- } else {
- query.orderfn = null;
- }
- } else if (this.unionall) {
- query.unionallfn = this.unionall.compile(databaseid);
- if (this.unionall.order) {
- query.orderfn = this.unionall.compileOrder(query);
- } else {
- query.orderfn = null;
- }
- } else if (this.except) {
- query.exceptfn = this.except.compile(databaseid);
- if (this.except.order) {
- query.orderfn = this.except.compileOrder(query);
- } else {
- query.orderfn = null;
- }
- } else if (this.intersect) {
- query.intersectfn = this.intersect.compile(databaseid);
- if (this.intersect.order) {
- query.intersectfn = this.intersect.compileOrder(query);
- } else {
- query.orderfn = null;
- }
- }
-
- // SELECT INTO
- if (this.into) {
- if (this.into instanceof yy.Table) {
- //
- // Save into the table in database
- //
- if (
- alasql.options.autocommit &&
- alasql.databases[this.into.databaseid || databaseid].engineid
- ) {
- // For external database when AUTOCOMMIT is ONs
- query.intoallfns =
- 'return alasql.engines["' +
- alasql.databases[this.into.databaseid || databaseid].engineid +
- '"]' +
- '.intoTable("' +
- (this.into.databaseid || databaseid) +
- '","' +
- this.into.tableid +
- '",this.data, columns, cb);';
- } else {
- // Into AlaSQL tables
- query.intofns =
- "alasql.databases['" +
- (this.into.databaseid || databaseid) +
- "'].tables" +
- "['" +
- this.into.tableid +
- "'].data.push(r);";
- }
- } else if (this.into instanceof yy.VarValue) {
- //
- // Save into local variable
- // SELECT * INTO @VAR1 FROM ?
- //
- query.intoallfns =
- 'alasql.vars["' +
- this.into.variable +
- '"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;';
- } else if (this.into instanceof yy.FuncValue) {
- //
- // If this is INTO() function, then call it
- // with one or two parameters
- //
- var qs = "return alasql.into['" + this.into.funcid.toUpperCase() + "'](";
- if (this.into.args && this.into.args.length > 0) {
- qs += this.into.args[0].toJS() + ',';
- if (this.into.args.length > 1) {
- qs += this.into.args[1].toJS() + ',';
- } else {
- qs += 'undefined,';
- }
- } else {
- qs += 'undefined, undefined,';
- }
- query.intoallfns = qs + 'this.data,columns,cb)';
-
- } else if (this.into instanceof yy.ParamValue) {
- //
- // Save data into parameters array
- // like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]);
- //
- query.intofns = "params['" + this.into.param + "'].push(r)";
- }
-
- if (query.intofns) {
- // Create intofn function
-
- query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns);
- } else if (query.intoallfns) {
- // Create intoallfn function
-
- query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns);
- }
- }
-
- // Now, compile all togeather into one function with query object in scope
- var statement = function(params, cb, oldscope) {
- query.params = params;
- // Note the callback function has the data and error reversed due to existing code in promiseExec which has the
- // err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing,
- // the (data, err) standard is maintained here.
- var res1 = queryfn(query, oldscope, function(res, err) {
- if (err) {
- return cb(err, null);
- }
- if (query.rownums.length > 0) {
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- for (var j = 0, jlen = query.rownums.length; j < jlen; j++) {
- res[i][query.rownums[j]] = i + 1;
- }
- }
- }
-
- var res2 = modify(query, res);
-
- if (cb) {
- cb(res2);
- }
-
- return res2;
- });
-
- // if(typeof res1 != 'undefined') res1 = modify(query,res1);
-
- return res1;
- };
-
- // statement.dbversion = ;
-
- statement.query = query;
- return statement;
-};
-
-/**
- Modify res according modifier
- @function
- @param {object} query Query object
- @param res {object|number|string|boolean} res Data to be converted
- */
-function modify(query, res) {
- // jshint ignore:line
-
- /* If source is a primitive value then return it */
- if (
- typeof res === 'undefined' ||
- typeof res === 'number' ||
- typeof res === 'string' ||
- typeof res === 'boolean'
- ) {
- return res;
- }
-
- var modifier = query.modifier || alasql.options.modifier;
- var columns = query.columns;
- if (typeof columns === 'undefined' || columns.length == 0) {
- // Try to create columns
- if (res.length > 0) {
- var allcol = {};
- for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) {
- for (var key in res[i]) {
- allcol[key] = true;
- }
- }
-
- columns = Object.keys(allcol).map(function(columnid) {
- return {columnid: columnid};
- });
- } else {
- // Cannot recognize columns
- columns = [];
- }
- }
-
- if (modifier === 'VALUE') {
-
- if (res.length > 0) {
- var key;
- if (columns && columns.length > 0) {
- key = columns[0].columnid;
- } else {
- key = Object.keys(res[0])[0];
- }
- res = res[0][key];
- } else {
- res = undefined;
- }
- } else if (modifier === 'ROW') {
- if (res.length > 0) {
- var key;
- var a = [];
- for (var key in res[0]) {
- a.push(res[0][key]);
- }
- res = a;
- } else {
- res = undefined;
- }
- } else if (modifier === 'COLUMN') {
- var ar = [];
- if (res.length > 0) {
- var key;
- if (columns && columns.length > 0) {
- key = columns[0].columnid;
- } else {
- key = Object.keys(res[0])[0];
- }
-
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- ar.push(res[i][key]);
- }
- }
- res = ar;
- } else if (modifier === 'MATRIX') {
- // Returns square matrix of rows
- var ar = [];
- for (var i = 0; i < res.length; i++) {
- var a = [];
- var r = res[i];
- for (var j = 0; j < columns.length; j++) {
- a.push(r[columns[j].columnid]);
- }
- ar.push(a);
- }
- res = ar;
- } else if (modifier === 'INDEX') {
- var ar = {};
- var key, val;
- if (columns && columns.length > 0) {
- key = columns[0].columnid;
- val = columns[1].columnid;
- } else {
- var okeys = Object.keys(res[0]);
- key = okeys[0];
- val = okeys[1];
- }
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- ar[res[i][key]] = res[i][val];
- }
- res = ar;
- // res = arrayOfArrays(res);
- } else if (modifier === 'RECORDSET') {
- res = new alasql.Recordset({columns: columns, data: res});
- // res = arrayOfArrays(res);
- } else if (modifier === 'TEXTSTRING') {
- var key;
- if (columns && columns.length > 0) {
- key = columns[0].columnid;
- } else {
- key = Object.keys(res[0])[0];
- }
-
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- res[i] = res[i][key];
- }
- res = res.join('\n');
- // res = arrayOfArrays(res);
- }
- return res;
-}
-
-yy.Select.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
- // throw new Error('Insert statement is should be compiled')
-};
-
-/*
-//
-// EXISTS and other subqueries functions functions for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.ExistsValue = function(params) {
- return yy.extend(this, params);
-};
-yy.ExistsValue.prototype.toString = function() {
- return 'EXISTS(' + this.value.toString() + ')';
-};
-
-yy.ExistsValue.prototype.toType = function() {
- return 'boolean';
-};
-
-yy.ExistsValue.prototype.toJS = function(context, tableid, defcols) {
-
- return 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length';
-};
-
-yy.Select.prototype.compileWhereExists = function(query) {
- if (!this.exists) return;
- query.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(query.database.databaseid);
-
- // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
-};
-
-yy.Select.prototype.compileQueries = function(query) {
- if (!this.queries) return;
- query.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(query.database.databaseid);
-
- // if(!nq.query) nq.query = {};
- nq.query.modifier = 'RECORDSET';
- // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
- return nq;
- });
-};
-
-//
-// Prepare subqueries and exists
-//
-alasql.precompile = function(statement, databaseid, params) {
-
- if (!statement) return;
- statement.params = params;
- if (statement.queries) {
-
- statement.queriesfn = statement.queries.map(function(q) {
- var nq = q.compile(databaseid || statement.database.databaseid);
-
- // nq.query.modifier = undefined;
- // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (statement.exists) {
-
- statement.existsfn = statement.exists.map(function(ex) {
- var nq = ex.compile(databaseid || statement.database.databaseid);
-
- // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
- // if(!nq.query.modifier) nq.query.modifier = 'ARRAY';
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-};
-
-/*
-//
-// Select compiler part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy, alasql, Mongo, returnTrue */
-
-yy.Select.prototype.compileFrom = function(query) {
-
- var self = this;
- query.sources = [];
- // var tableid = this.from[0].tableid;
- // var as = '';
- // if(self.from[0].as) as = this.from[0].as;
-
- query.aliases = {};
- if (!self.from) return;
-
- self.from.forEach(function(tq) {
-
- var ps = '';
-
- var alias = tq.as || tq.tableid;
-
- if (tq instanceof yy.Table) {
-
- query.aliases[alias] = {
- tableid: tq.tableid,
- databaseid: tq.databaseid || query.database.databaseid,
- type: 'table',
- };
- } else if (tq instanceof yy.Select) {
- query.aliases[alias] = {type: 'subquery'};
- } else if (tq instanceof yy.Search) {
- query.aliases[alias] = {type: 'subsearch'};
- } else if (tq instanceof yy.ParamValue) {
- query.aliases[alias] = {type: 'paramvalue'};
- } else if (tq instanceof yy.FuncValue) {
- query.aliases[alias] = {type: 'funcvalue'};
- } else if (tq instanceof yy.VarValue) {
- query.aliases[alias] = {type: 'varvalue'};
- } else if (tq instanceof yy.FromData) {
- query.aliases[alias] = {type: 'fromdata'};
- } else if (tq instanceof yy.Json) {
- query.aliases[alias] = {type: 'json'};
- } else if (tq.inserted) {
- query.aliases[alias] = {type: 'inserted'};
- } else {
- throw new Error('Wrong table at FROM');
- }
-
- var source = {
- alias: alias,
- databaseid: tq.databaseid || query.database.databaseid,
- tableid: tq.tableid,
- joinmode: 'INNER',
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- // columns: []
- };
-
- if (tq instanceof yy.Table) {
- // Get columns from table
- source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;
-
- if (
- alasql.options.autocommit &&
- alasql.databases[source.databaseid].engineid &&
- !alasql.databases[source.databaseid].tables[source.tableid].view
- ) {
-
- // TODO -- make view for external engine
- source.datafn = function(query, params, cb, idx, alasql) {
- return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(
- source.databaseid,
- source.tableid,
- cb,
- idx,
- query
- );
- };
- } else if (alasql.databases[source.databaseid].tables[source.tableid].view) {
- source.datafn = function(query, params, cb, idx, alasql) {
- var res = alasql.databases[source.databaseid].tables[source.tableid].select(
- params
- );
- if (cb) res = cb(res, idx, query);
- return res;
- };
- } else {
-
- source.datafn = function(query, params, cb, idx, alasql) {
- /*
-
-*/
- var res = alasql.databases[source.databaseid].tables[source.tableid].data;
-
- if (cb) res = cb(res, idx, query);
-
- return res;
- // return alasql.databases[source.databaseid].tables[source.tableid].data;
- };
- }
- } else if (tq instanceof yy.Select) {
- source.subquery = tq.compile(query.database.databaseid);
- if (typeof source.subquery.query.modifier === 'undefined') {
- source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets
- }
- source.columns = source.subquery.query.columns;
-
- // tq.columns;
-
- source.datafn = function(query, params, cb, idx, alasql) {
- // return source.subquery(query.params, cb, idx, query);
- var res;
- source.subquery(query.params, function(data) {
- res = data.data;
- if (cb) res = cb(res, idx, query);
- return res;
- // return data.data;
- });
-
- return res;
- };
- } else if (tq instanceof yy.Search) {
- source.subsearch = tq;
- source.columns = [];
-
- source.datafn = function(query, params, cb, idx, alasql) {
- // return source.subquery(query.params, cb, idx, query);
- var res;
- source.subsearch.execute(query.database.databaseid, query.params, function(data) {
- res = data;
- if (cb) res = cb(res, idx, query);
- return res;
- // return data.data;
- });
-
- return res;
- };
- } else if (tq instanceof yy.ParamValue) {
- ps = "var res = alasql.prepareFromData(params['" + tq.param + "']";
-
- if (tq.array) ps += ',true';
- ps += ');if(cb)res=cb(res,idx,query);return res';
- source.datafn = new Function('query,params,cb,idx,alasql', ps);
- } else if (tq.inserted) {
- ps = 'var res = alasql.prepareFromData(alasql.inserted';
- if (tq.array) ps += ',true';
- ps += ');if(cb)res=cb(res,idx,query);return res';
- source.datafn = new Function('query,params,cb,idx,alasql', ps);
- } else if (tq instanceof yy.Json) {
- ps = 'var res = alasql.prepareFromData(' + tq.toJS();
-
- if (tq.array) ps += ',true';
- ps += ');if(cb)res=cb(res,idx,query);return res';
- source.datafn = new Function('query,params,cb,idx,alasql', ps);
- } else if (tq instanceof yy.VarValue) {
- ps = "var res = alasql.prepareFromData(alasql.vars['" + tq.variable + "']";
-
- if (tq.array) ps += ',true';
- ps += ');if(cb)res=cb(res,idx,query);return res';
- source.datafn = new Function('query,params,cb,idx,alasql', ps);
- } else if (tq instanceof yy.FuncValue) {
- ps = "var res=alasql.from['" + tq.funcid.toUpperCase() + "'](";
-
- if (tq.args && tq.args.length > 0) {
- if (tq.args[0]) {
- ps += tq.args[0].toJS('query.oldscope') + ',';
- } else {
- ps += 'null,';
- }
- if (tq.args[1]) {
- ps += tq.args[1].toJS('query.oldscope') + ',';
- } else {
- ps += 'null,';
- }
- } else {
- ps += 'null,null,';
- }
- ps += 'cb,idx,query';
- ps += ');/*if(cb)res=cb(res,idx,query);*/return res';
-
- source.datafn = new Function('query, params, cb, idx, alasql', ps);
- } else if (tq instanceof yy.FromData) {
- source.datafn = function(query, params, cb, idx, alasql) {
- var res = tq.data;
- if (cb) res = cb(res, idx, query);
- return res;
- };
- } else {
- throw new Error('Wrong table at FROM');
- }
- // source.data = alasql.databases[source.databaseid].tables[source.tableid].data;
- query.sources.push(source);
- });
- // TODO Add joins
- query.defaultTableid = query.sources[0].alias;
-
-};
-
-alasql.prepareFromData = function(data, array) {
-
- var i, ilen;
- var res = data;
- if (typeof data === 'string') {
- res = data.split(/\r?\n/);
- if (array) {
- for (i = 0, ilen = res.length; i < ilen; i++) {
- res[i] = [res[i]];
- }
- }
- } else if (array) {
- res = [];
- for (i = 0, ilen = data.length; i < ilen; i++) {
- res.push([data[i]]);
- }
-
- } else if (typeof data === 'object' && !Array.isArray(data)) {
- // } else if(typeof data == 'object' && !(typeof data.length == 'undefined')) {
- if (
- typeof Mongo !== 'undefined' &&
- typeof Mongo.Collection !== 'undefined' &&
- data instanceof Mongo.Collection
- ) {
- res = data.find().fetch();
- } else {
- res = [];
- for (var key in data) {
- if (data.hasOwnProperty(key)) res.push([key, data[key]]);
- }
- }
-
- }
-
- return res;
-};
-
-/*
-//
-// Select compiler part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// SELECT Compile functions
-
-/* global yy, alasql, returnTrue, arrayIntersect */
-
-// Compile JOIN caluese
-yy.Select.prototype.compileJoins = function(query) {
-
- // debugger;
- var self = this;
-
- this.joins.forEach(function(jn) {
- // Test CROSS-JOIN
- var tq, ps, source;
- if (jn.joinmode === 'CROSS') {
- if (jn.using || jn.on) {
- throw new Error('CROSS JOIN cannot have USING or ON clauses');
- } else {
- jn.joinmode = 'INNER';
- }
- }
-
- if (jn instanceof yy.Apply) {
-
- source = {
- alias: jn.as,
- applymode: jn.applymode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- columns: [], // TODO check this
- };
- source.applyselect = jn.select.compile(query.database.databaseid);
- source.columns = source.applyselect.query.columns;
-
- source.datafn = function(query, params, cb, idx, alasql) {
- var res;
- if (cb) res = cb(res, idx, query);
- return res;
- };
-
- query.sources.push(source);
-
- return;
- }
-
- if (jn.table) {
- tq = jn.table;
- source = {
- alias: jn.as || tq.tableid,
- databaseid: tq.databaseid || query.database.databaseid,
- tableid: tq.tableid,
- joinmode: jn.joinmode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- columns: [],
- };
- //
-
- if (!alasql.databases[source.databaseid].tables[source.tableid]) {
- throw new Error(
- "Table '" +
- source.tableid +
- "' is not exists in database '" +
- source.databaseid +
- "'"
- );
- }
-
- source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;
-
- // source.data = query.database.tables[source.tableid].data;
- if (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) {
-
- source.datafn = function(query, params, cb, idx, alasql) {
-
- return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(
- source.databaseid,
- source.tableid,
- cb,
- idx,
- query
- );
- };
- } else if (alasql.databases[source.databaseid].tables[source.tableid].view) {
- source.datafn = function(query, params, cb, idx, alasql) {
- var res = alasql.databases[source.databaseid].tables[source.tableid].select(
- params
- );
- if (cb) res = cb(res, idx, query);
- return res;
- };
- } else {
- source.datafn = function(query, params, cb, idx, alasql) {
- var res = alasql.databases[source.databaseid].tables[source.tableid].data;
- if (cb) res = cb(res, idx, query);
- return res;
- };
- }
-
- // var alias = jn.as || tq.tableid;
- // if(tq) {
- query.aliases[source.alias] = {
- tableid: tq.tableid,
- databaseid: tq.databaseid || query.database.databaseid,
- };
- // }
- } else if (jn.select) {
- tq = jn.select;
- source = {
- alias: jn.as,
- // databaseid: jn.databaseid || query.database.databaseid,
- // tableid: tq.tableid,
- joinmode: jn.joinmode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- columns: [],
- };
-
- source.subquery = tq.compile(query.database.databaseid);
- if (typeof source.subquery.query.modifier === 'undefined') {
- source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets
- }
- source.columns = source.subquery.query.columns;
-
- // if(jn instanceof yy.Apply) {
- source.datafn = function(query, params, cb, idx, alasql) {
- // return cb(null,idx,alasql);
- return source.subquery(query.params, null, cb, idx).data;
- };
- // } else {
- // source.datafn = function(query, params, cb, idx, alasql) {
- // return source.subquery(query.params, null, cb, idx);
- // }
- // }
- query.aliases[source.alias] = {type: 'subquery'};
- } else if (jn.param) {
- source = {
- alias: jn.as,
- // databaseid: jn.databaseid || query.database.databaseid,
- // tableid: tq.tableid,
- joinmode: jn.joinmode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- };
- // source.data = ;
- var jnparam = jn.param.param;
-
- ps = "var res=alasql.prepareFromData(params['" + jnparam + "']";
- if (jn.array) ps += ',true';
- ps += ');if(cb)res=cb(res, idx, query);return res';
-
- source.datafn = new Function('query,params,cb,idx, alasql', ps);
- query.aliases[source.alias] = {type: 'paramvalue'};
- } else if (jn.variable) {
- source = {
- alias: jn.as,
- // databaseid: jn.databaseid || query.database.databaseid,
- // tableid: tq.tableid,
- joinmode: jn.joinmode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- };
- // source.data = ;
- // var jnparam = jn.param.param;
-
- ps = "var res=alasql.prepareFromData(alasql.vars['" + jn.variable + "']";
- if (jn.array) ps += ',true';
- ps += ');if(cb)res=cb(res, idx, query);return res';
-
- source.datafn = new Function('query,params,cb,idx, alasql', ps);
- query.aliases[source.alias] = {type: 'varvalue'};
- } else if (jn.func) {
- source = {
- alias: jn.as,
- // databaseid: jn.databaseid || query.database.databaseid,
- // tableid: tq.tableid,
- joinmode: jn.joinmode,
- onmiddlefn: returnTrue,
- srcwherefns: '', // for optimization
- srcwherefn: returnTrue,
- };
- // source.data = ;
-
- var s = "var res=alasql.from['" + jn.func.funcid.toUpperCase() + "'](";
-
- var args = jn.func.args;
- if (args && args.length > 0) {
- if (args[0]) {
- s += args[0].toJS('query.oldscope') + ',';
- } else {
- s += 'null,';
- }
- if (args[1]) {
- s += args[1].toJS('query.oldscope') + ',';
- } else {
- s += 'null,';
- }
- } else {
- s += 'null,null,';
- }
- s += 'cb,idx,query';
- s += ');/*if(cb)res=cb(res,idx,query);*/return res';
-
- source.datafn = new Function('query, params, cb, idx, alasql', s);
-
- query.aliases[source.alias] = {type: 'funcvalue'};
- }
-
- var alias = source.alias;
-
- // Test NATURAL-JOIN
- if (jn.natural) {
- if (jn.using || jn.on) {
- throw new Error('NATURAL JOIN cannot have USING or ON clauses');
- } else {
- // source.joinmode == "INNER";
- if (query.sources.length > 0) {
- var prevSource = query.sources[query.sources.length - 1];
- var prevTable =
- alasql.databases[prevSource.databaseid].tables[prevSource.tableid];
- var table = alasql.databases[source.databaseid].tables[source.tableid];
-
- if (prevTable && table) {
- var c1 = prevTable.columns.map(function(col) {
- return col.columnid;
- });
- var c2 = table.columns.map(function(col) {
- return col.columnid;
- });
- jn.using = arrayIntersect(c1, c2).map(function(colid) {
- return {columnid: colid};
- });
-
- } else {
- throw new Error(
- 'In this version of Alasql NATURAL JOIN ' +
- 'works for tables with predefined columns only'
- );
- }
- }
- }
- }
-
- if (jn.using) {
- prevSource = query.sources[query.sources.length - 1];
-
- source.onleftfns = jn.using
- .map(function(col) {
-
- return (
- "p['" +
- (prevSource.alias || prevSource.tableid) +
- "']['" +
- col.columnid +
- "']"
- );
- })
- .join('+"`"+');
-
- source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns);
-
- source.onrightfns = jn.using
- .map(function(col) {
- return "p['" + (source.alias || source.tableid) + "']['" + col.columnid + "']";
- })
- .join('+"`"+');
- source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns);
- source.optimization = 'ix';
-
- } else if (jn.on) {
-
- if (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) {
-
- source.optimization = 'ix';
-
- var lefts = '';
- var rights = '';
- var middles = '';
- var middlef = false;
- // Test right and left sides
- var ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols);
- var rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols);
-
- if (
- ls.indexOf("p['" + alias + "']") > -1 &&
- !(rs.indexOf("p['" + alias + "']") > -1)
- ) {
- if (
- (ls.match(/p\['.*?'\]/g) || []).every(function(s) {
- return s === "p['" + alias + "']";
- })
- ) {
- rights = ls;
- } else {
- middlef = true;
- }
- } else if (
- !(ls.indexOf("p['" + alias + "']") > -1) &&
- rs.indexOf("p['" + alias + "']") > -1
- ) {
- if (
- (rs.match(/p\['.*?'\]/g) || []).every(function(s) {
- return s === "p['" + alias + "']";
- })
- ) {
- lefts = ls;
- } else {
- middlef = true;
- }
- } else {
- middlef = true;
- }
-
- if (
- rs.indexOf("p['" + alias + "']") > -1 &&
- !(ls.indexOf("p['" + alias + "']") > -1)
- ) {
- if (
- (rs.match(/p\['.*?'\]/g) || []).every(function(s) {
- return s === "p['" + alias + "']";
- })
- ) {
- rights = rs;
- } else {
- middlef = true;
- }
- } else if (
- !(rs.indexOf("p['" + alias + "']") > -1) &&
- ls.indexOf("p['" + alias + "']") > -1
- ) {
- if (
- (ls.match(/p\['.*?'\]/g) || []).every(function(s) {
- return s === "p['" + alias + "']";
- })
- ) {
- lefts = rs;
- } else {
- middlef = true;
- }
- } else {
- middlef = true;
- }
-
- if (middlef) {
- // middles = jn.on.toJS('p',query.defaultTableid);
- // } else {
- rights = '';
- lefts = '';
- middles = jn.on.toJS('p', query.defaultTableid, query.defcols);
- source.optimization = 'no';
- // What to here?
- }
-
- source.onleftfns = lefts;
- source.onrightfns = rights;
- source.onmiddlefns = middles || 'true';
-
- source.onleftfn = new Function(
- 'p,params,alasql',
- 'var y;return ' + source.onleftfns
- );
- source.onrightfn = new Function(
- 'p,params,alasql',
- 'var y;return ' + source.onrightfns
- );
- source.onmiddlefn = new Function(
- 'p,params,alasql',
- 'var y;return ' + source.onmiddlefns
- );
-
- // } else if(jn.on instanceof yy.Op && jn.on.op == 'AND') {
-
- } else {
-
- source.optimization = 'no';
- // source.onleftfn = returnTrue;
- // source.onleftfns = "true";
- source.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols);
- source.onmiddlefn = new Function(
- 'p,params,alasql',
- 'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols)
- );
- }
-
- // Optimization function
- }
-
- // source.data = alasql.databases[source.databaseid].tables[source.tableid].data;
-
- // TODO SubQueries
-
- query.sources.push(source);
- });
-
-};
-
-yy.Select.prototype.compileWhere = function(query) {
- if (this.where) {
- if (typeof this.where == 'function') {
- return this.where;
- } else {
- var s = this.where.toJS('p', query.defaultTableid, query.defcols);
- query.wherefns = s;
-
- return new Function('p,params,alasql', 'var y;return ' + s);
- }
- } else
- return function() {
- return true;
- };
-};
-
-yy.Select.prototype.compileWhereJoins = function(query) {
- return;
-
- // TODO Fix Where optimization
-
- optimizeWhereJoin(query, this.where.expression);
-
- //for sources compile wherefs
- query.sources.forEach(function(source) {
- if (source.srcwherefns) {
- source.srcwherefn = new Function(
- 'p,params,alasql',
- 'var y;return ' + source.srcwherefns
- );
- }
- if (source.wxleftfns) {
- source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns);
- }
- if (source.wxrightfns) {
- source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns);
- }
-
- });
-};
-
-function optimizeWhereJoin(query, ast) {
- if (!ast) return false;
- if (!(ast instanceof yy.Op)) return;
- if (ast.op != '=' && ast.op != 'AND') return;
- if (ast.allsome) return;
-
- var s = ast.toJS('p', query.defaultTableid, query.defcols);
- var fsrc = [];
- query.sources.forEach(function(source, idx) {
- // Optimization allowed only for tables only
- if (source.tableid) {
- // This is a good place to remove all unnecessary optimizations
- if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source);
- }
- });
-
- // if(fsrc.length < query.sources.length) return;
-
- if (fsrc.length == 0) {
-
- return;
- } else if (fsrc.length == 1) {
- if (
- !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) {
- return s == "p['" + fsrc[0].alias + "']";
- })
- ) {
- return;
- // This is means, that we have column from parent query
- // So we return without optimization
- }
-
- var src = fsrc[0]; // optmiization source
- src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s;
-
- if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) {
- if (ast.left instanceof yy.Column) {
- var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
- var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
- if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) {
- fsrc[0].wxleftfns = ls;
- fsrc[0].wxrightfns = rs;
- }
- }
- if (ast.right instanceof yy.Column) {
- var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
- var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
- if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) {
- fsrc[0].wxleftfns = rs;
- fsrc[0].wxrightfns = ls;
- }
- }
- }
- ast.reduced = true; // To do not duplicate wherefn and srcwherefn
- return;
- } else {
- if ((ast.op = 'AND')) {
- optimizeWhereJoin(query, ast.left);
- optimizeWhereJoin(query, ast.right);
- }
- }
-}
-
-/*
-//
-// Select compiler part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/**
- Compile group of statements
- */
-yy.Select.prototype.compileGroup = function(query) {
-
- if (query.sources.length > 0) {
- var tableid = query.sources[0].alias;
- } else {
- // If SELECT contains group aggregators without source tables
- var tableid = '';
- }
- var defcols = query.defcols;
-
- var allgroup = [[]];
- if (this.group) {
- allgroup = decartes(this.group, query);
- }
-
- // Prepare groups
- //var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']];
-
- // Union all arrays to get a maximum
- var allgroups = [];
- allgroup.forEach(function(a) {
- allgroups = arrayUnion(allgroups, a);
- });
-
- query.allgroups = allgroups;
-
- query.ingroup = [];
-
- // Create negative array
-
- var s = '';
- // s+= query.selectfns;
- allgroup.forEach(function(agroup) {
- // Start of group function
- s += 'var g=this.xgroups[';
-
- // var gcols = this.group.map(function(col){return col.columnid}); // Group fields with r
- // Array with group columns from record
- var rg = agroup.map(function(col2) {
- var columnid = col2.split('\t')[0];
- var coljs = col2.split('\t')[1];
- // Check, if aggregator exists but GROUP BY is not exists
- if (columnid === '') {
- return '1'; // Create fictive groupping column for fictive GROUP BY
- }
- // else return "r['"+columnid+"']";
- query.ingroup.push(columnid);
-
- return coljs;
- });
-
- if (rg.length === 0) {
- rg = ["''"];
- }
-
- s += rg.join('+"`"+');
- s += '];if(!g) {this.groups.push((g=this.xgroups[';
- s += rg.join('+"`"+');
- s += '] = {';
- // s += ']=r';
- s += agroup
- .map(function(col2) {
- var columnid = col2.split('\t')[0];
- var coljs = col2.split('\t')[1];
-
- if (columnid === '') {
- return '';
- }
- return "'" + columnid + "':" + coljs + ',';
- })
- .join('');
-
- var neggroup = arrayDiff(allgroups, agroup);
-
- s += neggroup
- .map(function(col2) {
- var columnid = col2.split('\t')[0];
- // var coljs = col2.split('\t')[1]
- return "'" + columnid + "':null,";
- })
- .join('');
-
- var aft = '',
- aft2 = '';
-
- if (typeof query.groupStar !== 'undefined') {
- aft2 +=
- "for(var f in p['" +
- query.groupStar +
- "']) {g[f]=p['" +
- query.groupStar +
- "'][f];};";
- }
-
- /*
- */
- // s += self.columns.map(function(col){
-
- s += query.selectGroup
- .map(function(col) {
-
- var colexp = col.expression.toJS('p', tableid, defcols);
- var colas = col.nick;
- // if(typeof colas == 'undefined') {
- // if(col instanceof yy.Column) colas = col.columnid;
- // else colas = col.toString();
- // };
- if (col instanceof yy.AggrValue) {
- if (col.distinct) {
- aft +=
- ",g['$$_VALUES_" +
- colas +
- "']={},g['$$_VALUES_" +
- colas +
- "'][" +
- colexp +
- ']=true';
- }
- if (col.aggregatorid === 'SUM') {
- return "'" + colas + "':(" + colexp + ')||0,';
- } else if (
- col.aggregatorid === 'MIN' ||
- col.aggregatorid === 'MAX' ||
- col.aggregatorid === 'FIRST' ||
- col.aggregatorid === 'LAST'
- // || col.aggregatorid == 'AVG'
- // ) { return "'"+col.as+'\':r[\''+col.as+'\'],'; }//f.field.arguments[0].toJS();
- ) {
- return "'" + colas + "':" + colexp + ','; //f.field.arguments[0].toJS();
- } else if (col.aggregatorid === 'ARRAY') {
- return "'" + colas + "':[" + colexp + '],';
- } else if (col.aggregatorid === 'COUNT') {
- if (col.expression.columnid === '*') {
- return "'" + colas + "':1,";
- } else {
- // return "'"+colas+'\':(typeof '+colexp+' != "undefined")?1:0,';
- // } else {
- return "'" + colas + "':(typeof " + colexp + ' != "undefined")?1:0,';
- }
-
- // else if(col.aggregatorid == 'MIN') { return "'"+col.as+'\':r[\''+col.as+'\'],'; }
- // else if(col.aggregatorid == 'MAX') { return "'"+col.as+'\':r[\''+col.as+'\'],'; }
- } else if (col.aggregatorid === 'AVG') {
- query.removeKeys.push('_SUM_' + colas);
- query.removeKeys.push('_COUNT_' + colas);
-
- return (
- '' +
- "'" +
- colas +
- "':" +
- colexp +
- ",'_SUM_" +
- colas +
- "':(" +
- colexp +
- ")||0,'_COUNT_" +
- colas +
- "':(typeof " +
- colexp +
- ' != "undefined")?1:0,'
- );
- } else if (col.aggregatorid === 'AGGR') {
- aft += ",g['" + colas + "']=" + col.expression.toJS('g', -1);
- return '';
- } else if (col.aggregatorid === 'REDUCE') {
- // query.removeKeys.push('_REDUCE_'+colas);
- query.aggrKeys.push(col);
-
- // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),'
- // +'\'__REDUCE__'+colas+'\':acc,';
- return (
- "'" +
- colas +
- "':alasql.aggr['" +
- col.funcid +
- "'](" +
- colexp +
- ',undefined,1),'
- );
- }
- return '';
- }
-
- return '';
- })
- .join('');
-
- s += '}' + aft + ',g));' + aft2 + '} else {';
-
- /*
- // var neggroup = arrayDiff(allgroups,agroup);
-
- // s += neggroup.map(function(columnid){
- // return "g['"+columnid+"']=null;";
- // }).join('');
-*/
-
- // s += self.columns.map(function(col){
- s += query.selectGroup
- .map(function(col) {
- var colas = col.nick;
-
- var colexp = col.expression.toJS('p', tableid, defcols);
-
- if (col instanceof yy.AggrValue) {
- var pre = '',
- post = '';
- if (col.distinct) {
- var pre =
- 'if(typeof ' +
- colexp +
- '!="undefined" && (!g[\'$$_VALUES_' +
- colas +
- "'][" +
- colexp +
- '])) \
- {';
- var post = "g['$$_VALUES_" + colas + "'][" + colexp + ']=true;}';
- }
- if (col.aggregatorid === 'SUM') {
- return pre + "g['" + colas + "']+=(" + colexp + '||0);' + post; //f.field.arguments[0].toJS();
- } else if (col.aggregatorid === 'COUNT') {
-
- if (col.expression.columnid === '*') {
- return pre + "g['" + colas + "']++;" + post;
- } else {
- return (
- pre +
- 'if(typeof ' +
- colexp +
- '!="undefined") g[\'' +
- colas +
- "']++;" +
- post
- );
- }
- } else if (col.aggregatorid === 'ARRAY') {
- return pre + "g['" + colas + "'].push(" + colexp + ');' + post;
- } else if (col.aggregatorid === 'MIN') {
- return (
- pre +
- "g['" +
- colas +
- "']=Math.min(g['" +
- colas +
- "']," +
- colexp +
- ');' +
- post
- );
- } else if (col.aggregatorid === 'MAX') {
- return (
- pre +
- "g['" +
- colas +
- "']=Math.max(g['" +
- colas +
- "']," +
- colexp +
- ');' +
- post
- );
- } else if (col.aggregatorid === 'FIRST') {
- return '';
- } else if (col.aggregatorid === 'LAST') {
- return pre + "g['" + colas + "']=" + colexp + ';' + post;
- } else if (col.aggregatorid === 'AVG') {
- return (
- '' +
- pre +
- "g['_SUM_" +
- colas +
- "']+=(y=" +
- colexp +
- ')||0;' +
- "g['_COUNT_" +
- colas +
- '\']+=(typeof y!="undefined")?1:0;' +
- "g['" +
- colas +
- "']=g['_SUM_" +
- colas +
- "']/g['_COUNT_" +
- colas +
- "'];" +
- post
- );
- // }
- // else if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); }
- } else if (col.aggregatorid === 'AGGR') {
- return (
- '' +
- pre +
- "g['" +
- colas +
- "']=" +
- col.expression.toJS('g', -1) +
- ';' +
- post
- );
- } else if (col.aggregatorid === 'REDUCE') {
- return (
- '' +
- pre +
- "g['" +
- colas +
- "']=alasql.aggr." +
- col.funcid +
- '(' +
- colexp +
- ",g['" +
- colas +
- "'],2);" +
- post
- );
- }
-
- return '';
- }
-
- return '';
- })
- .join('');
-
- // s += selectFields.map(function(f){
-
- // if(f.constructor.name == 'LiteralValue') return '';
- // if (f.field instanceof SQLParser.nodes.FunctionValue
- // && (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) {
- // return 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();
- // return 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();
- // return 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS();
- // };
- // return '';
- // }).join('');
-
- // s += ' group.amt += rec.emplid;';
- // s += 'group.count++;';
- s += '}';
- });
-
- return new Function('p,params,alasql', 'var y;' + s);
-};
-
-/*
-//
-// Select compiler part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// yy.Select.prototype.compileSources = function(query) {
-
-// };
-
-function compileSelectStar(query, aliases, joinstar) {
- var sp = '',
- ss = [],
- columnIds = {};
-
- aliases.forEach(function(alias) {
-
- // if(!alias) {
- // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};';
- // } else {
-
- // TODO move this out of this function
- query.ixsources = {};
- query.sources.forEach(function(source) {
- query.ixsources[source.alias] = source;
- });
-
- // Fixed
- var columns;
- if (query.ixsources[alias]) {
- var columns = query.ixsources[alias].columns;
- }
-
- // if(columns.length == 0 && query.aliases[alias].tableid) {
- // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns;
- // };
-
- // Check if this is a Table or other
- if (joinstar && alasql.options.joinstar == 'json') {
- sp += "r['" + alias + "']={};";
- }
-
- if (columns && columns.length > 0) {
- columns.forEach(function(tcol) {
- if (joinstar && alasql.options.joinstar == 'underscore') {
- ss.push(
- "'" +
- alias +
- '_' +
- tcol.columnid +
- "':p['" +
- alias +
- "']['" +
- tcol.columnid +
- "']"
- );
- } else if (joinstar && alasql.options.joinstar == 'json') {
- // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']');
- sp +=
- "r['" +
- alias +
- "']['" +
- tcol.columnid +
- "']=p['" +
- alias +
- "']['" +
- tcol.columnid +
- "'];";
- } else {
- var value = "p['" + alias + "']['" + tcol.columnid + "']";
- if (!columnIds[tcol.columnid]) {
- var key = "'" + tcol.columnid + "':";
- ss.push(key + value);
- columnIds[tcol.columnid] = {
- id: ss.length - 1,
- value: value,
- key: key,
- };
- } else {
- var newValue =
- value +
- ' !== undefined ? ' +
- value +
- ' : ' +
- columnIds[tcol.columnid].value;
- ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue;
- columnIds[tcol.columnid].value = newValue;
- }
- }
-
- query.selectColumns[escapeq(tcol.columnid)] = true;
-
- var coldef = {
- columnid: tcol.columnid,
- dbtypeid: tcol.dbtypeid,
- dbsize: tcol.dbsize,
- dbprecision: tcol.dbprecision,
- dbenum: tcol.dbenum,
- };
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- });
-
- } else {
-
- // if column not exist, then copy all
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
-
- query.dirtyColumns = true;
- }
- // }
-
- });
-
- return {s: ss.join(','), sp: sp};
-}
-
-yy.Select.prototype.compileSelect1 = function(query, params) {
- var self = this;
- query.columns = [];
- query.xcolumns = {};
- query.selectColumns = {};
- query.dirtyColumns = false;
- var s = 'var r={';
- var sp = '';
- var ss = [];
-
- this.columns.forEach(function(col) {
-
- if (col instanceof yy.Column) {
- if (col.columnid === '*') {
- if (col.func) {
- sp +=
- "r=params['" +
- col.param +
- "'](p['" +
- query.sources[0].alias +
- "'],p,params,alasql);";
- } else if (col.tableid) {
- //Copy all
- var ret = compileSelectStar(query, [col.tableid], false);
- if (ret.s) {
- ss = ss.concat(ret.s);
- }
- sp += ret.sp;
- } else {
-
- var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid);
- if (ret.s) {
- ss = ss.concat(ret.s);
- }
- sp += ret.sp;
-
- // TODO Remove these lines
- // In case of no information
- // sp += 'for(var k1 in p){var w=p[k1];'+
- // 'for(k2 in w) {r[k2]=w[k2]}}'
- }
- } else {
- // If field, otherwise - expression
- var tbid = col.tableid;
-
- var dbid =
- col.databaseid || query.sources[0].databaseid || query.database.databaseid;
- if (!tbid) tbid = query.defcols[col.columnid];
- if (!tbid) tbid = query.defaultTableid;
- if (col.columnid !== '_') {
- if (
- false &&
- tbid &&
- !query.defcols['.'][col.tableid] &&
- !query.defcols[col.columnid]
- ) {
- ss.push(
- "'" +
- escapeq(col.as || col.columnid) +
- "':p['" +
- query.defaultTableid +
- "']['" +
- col.tableid +
- "']['" +
- col.columnid +
- "']"
- );
- } else {
- // workaround for multisheet xlsx export with custom COLUMNS
- var isMultisheetParam =
- params &&
- params.length > 1 &&
- Array.isArray(params[0]) &&
- params[0].length >= 1 &&
- params[0][0].hasOwnProperty('sheetid');
- if (isMultisheetParam) {
- sp =
- 'var r={};var w=p["' +
- tbid +
- '"];' +
- 'var cols=[' +
- self.columns
- .map(function(col) {
- return "'" + col.columnid + "'";
- })
- .join(',') +
- '];var colas=[' +
- self.columns
- .map(function(col) {
- return "'" + (col.as || col.columnid) + "'";
- })
- .join(',') +
- '];' +
- "for (var i=0;i 0) {
-
- var tcol = xcolumns[col.columnid];
-
- if (undefined === tcol) {
- throw new Error('Column does not exist: ' + col.columnid);
- }
-
- var coldef = {
- columnid: col.as || col.columnid,
- dbtypeid: tcol.dbtypeid,
- dbsize: tcol.dbsize,
- dbpecision: tcol.dbprecision,
- dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- } else {
- var coldef = {
- columnid: col.as || col.columnid,
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
-
- query.dirtyColumns = true;
- }
- } else {
- var coldef = {
- columnid: col.as || col.columnid,
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- // This is a subquery?
- // throw new Error('There is now such table \''+col.tableid+'\'');
- }
- }
- } else if (col instanceof yy.AggrValue) {
- if (!self.group) {
- // self.group=[new yy.Column({columnid:'q',as:'q' })];
- self.group = [''];
- }
- if (!col.as) {
- col.as = escapeq(col.toString());
- }
-
- if (
- col.aggregatorid === 'SUM' ||
- col.aggregatorid === 'MAX' ||
- col.aggregatorid === 'MIN' ||
- col.aggregatorid === 'FIRST' ||
- col.aggregatorid === 'LAST' ||
- col.aggregatorid === 'AVG' ||
- col.aggregatorid === 'ARRAY' ||
- col.aggregatorid === 'REDUCE'
- ) {
- ss.push(
- "'" +
- escapeq(col.as) +
- "':" +
- n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))
- );
- } else if (col.aggregatorid === 'COUNT') {
- ss.push("'" + escapeq(col.as) + "':1");
- // Nothing
- }
- // todo: confirm that no default action must be implemented
-
- // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd;
-
- var coldef = {
- columnid: col.as || col.columnid || col.toString(),
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
-
- // else if (col.aggregatorid == 'MAX') {
- // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
- // } else if (col.aggregatorid == 'MIN') {
- // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
- // }
- } else {
-
- ss.push(
- "'" +
- escapeq(col.as || col.columnid || col.toString()) +
- "':" +
- n2u(col.toJS('p', query.defaultTableid, query.defcols))
- );
- // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid));
- //if(col instanceof yy.Expression) {
- query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true;
-
- var coldef = {
- columnid: col.as || col.columnid || col.toString(),
- // dbtypeid:tcol.dbtypeid,
- // dbsize:tcol.dbsize,
- // dbpecision:tcol.dbprecision,
- // dbenum: tcol.dbenum,
- };
-
- query.columns.push(coldef);
- query.xcolumns[coldef.columnid] = coldef;
- }
- });
- s += ss.join(',') + '};' + sp;
- return s;
-
-};
-yy.Select.prototype.compileSelect2 = function(query) {
- var s = query.selectfns;
- if (this.orderColumns && this.orderColumns.length > 0) {
- this.orderColumns.forEach(function(v, idx) {
- var key = '$$$' + idx;
- if (v instanceof yy.Column && query.xcolumns[v.columnid]) {
- s += "r['" + key + "']=r['" + v.columnid + "'];";
- } else {
- s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';';
- }
- query.removeKeys.push(key);
- });
- }
-
- return new Function('p,params,alasql', 'var y;' + s + 'return r');
-};
-
-yy.Select.prototype.compileSelectGroup0 = function(query) {
- var self = this;
- self.columns.forEach(function(col, idx) {
- if (!(col instanceof yy.Column && col.columnid === '*')) {
- var colas;
- // = col.as;
- if (col instanceof yy.Column) {
- colas = escapeq(col.columnid);
- } else {
- colas = escapeq(col.toString(true));
-
- }
- for (var i = 0; i < idx; i++) {
- if (colas === self.columns[i].nick) {
- colas = self.columns[i].nick + ':' + idx;
- break;
- }
- }
- // }
- col.nick = colas;
- if (
- col.funcid &&
- (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER')
- ) {
- query.rownums.push(col.as);
- }
-
- // }
- } else {
- query.groupStar = col.tableid || 'default';
- }
- });
-
- this.columns.forEach(function(col) {
- if (col.findAggregator) {
- col.findAggregator(query);
- }
- });
-
- if (this.having) {
- if (this.having.findAggregator) {
- this.having.findAggregator(query);
- }
- }
-};
-
-yy.Select.prototype.compileSelectGroup1 = function(query) {
- var self = this;
- var s = 'var r = {};';
-
- self.columns.forEach(function(col) {
-
- if (col instanceof yy.Column && col.columnid === '*') {
- // s += 'for(var k in g){r[k]=g[k]};';
- // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
-
- s += 'for(var k in g) {r[k]=g[k]};';
- return '';
-
- } else {
- // var colas = col.as;
- var colas = col.as;
- if (colas === undefined) {
- if (col instanceof yy.Column) {
- colas = escapeq(col.columnid);
- } else {
- colas = col.nick;
- }
- }
- query.groupColumns[colas] = col.nick;
-
- // if(col.as) {
- s += "r['" + colas + "']=";
- // // } else {
- // // s += 'r[\''+escapeq()+'\']=';
- // // };
- // // s += ';';
-
- s += n2u(col.toJS('g', '')) + ';';
-
- for (var i = 0; i < query.removeKeys.length; i++) {
- // THis part should be intellectual
- if (query.removeKeys[i] === colas) {
- query.removeKeys.splice(i, 1);
- break;
- }
- }
- }
- });
- // return new Function('g,params,alasql',s+'return r');
- return s;
-};
-
-yy.Select.prototype.compileSelectGroup2 = function(query) {
- var self = this;
- var s = query.selectgfns;
- self.columns.forEach(function(col) {
-
- if (query.ingroup.indexOf(col.nick) > -1) {
- s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];";
- }
- });
-
- if (this.orderColumns && this.orderColumns.length > 0) {
- this.orderColumns.forEach(function(v, idx) {
-
- var key = '$$$' + idx;
-
- if (v instanceof yy.Column && query.groupColumns[v.columnid]) {
- s += "r['" + key + "']=r['" + v.columnid + "'];";
- } else {
- s += "r['" + key + "']=" + v.toJS('g', '') + ';';
- }
- query.removeKeys.push(key);
- });
- }
-
- return new Function('g,params,alasql', 'var y;' + s + 'return r');
-};
-
-// SELECY * REMOVE [COLUMNS] col-list, LIKE ''
-yy.Select.prototype.compileRemoveColumns = function(query) {
- var self = this;
- if (typeof this.removecolumns !== 'undefined') {
- query.removeKeys = query.removeKeys.concat(
- this.removecolumns
- .filter(function(column) {
- return typeof column.like === 'undefined';
- })
- .map(function(column) {
- return column.columnid;
- })
- );
-
- query.removeLikeKeys = this.removecolumns
- .filter(function(column) {
- return typeof column.like !== 'undefined';
- })
- .map(function(column) {
- // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g');
- return column.like.value;
- });
- }
-};
-
-/* global yy */
-
-yy.Select.prototype.compileHaving = function(query) {
- if (this.having) {
- var s = this.having.toJS('g', -1);
- query.havingfns = s;
-
- return new Function('g,params,alasql', 'var y;return ' + s);
- }
-
- return function() {
- return true;
- };
-};
-
-yy.Select.prototype.compileOrder = function(query) {
- var self = this;
- self.orderColumns = [];
- if (this.order) {
-
- if (
- this.order &&
- this.order.length == 1 &&
- this.order[0].expression &&
- typeof this.order[0].expression == 'function'
- ) {
-
- var func = this.order[0].expression;
-
- return function(a, b) {
- var ra = func(a),
- rb = func(b);
- if (ra > rb) return 1;
- if (ra == rb) return 0;
- return -1;
- };
- }
-
- var s = '';
- var sk = '';
- this.order.forEach(function(ord, idx) {
-
- if (ord.expression instanceof yy.NumValue) {
- var v = self.columns[ord.expression.value - 1];
- } else {
- var v = ord.expression;
- }
- self.orderColumns.push(v);
-
- var key = '$$$' + idx;
-
- // Date conversion
- var dg = '';
- //if(alasql.options.valueof)
- if (ord.expression instanceof yy.Column) {
- var columnid = ord.expression.columnid;
- if (query.xcolumns[columnid]) {
- var dbtypeid = query.xcolumns[columnid].dbtypeid;
- if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2')
- dg = '.valueOf()';
- // TODO Add other types mapping
- } else {
- if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check
- }
- // dg = '.valueOf()';
- }
- // COLLATE NOCASE
- if (ord.nocase) dg += '.toUpperCase()';
- s +=
- "if((a['" +
- key +
- "']||'')" +
- dg +
- (ord.direction == 'ASC' ? '>' : '<') +
- "(b['" +
- key +
- "']||'')" +
- dg +
- ')return 1;';
- s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){';
-
- /*
-if(false) {
-
- if(ord.expression instanceof yy.NumValue) {
- ord.expression = self.columns[ord.expression.value-1];
-
- ord.expression = new yy.Column({columnid:ord.expression.nick});
- };
-
- if(ord.expression instanceof yy.Column) {
- var columnid = ord.expression.columnid;
- if(query.xcolumns[columnid]) {
- var dbtypeid = query.xcolumns[columnid].dbtypeid;
- if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()';
- // TODO Add other types mapping
- } else {
- if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check
- }
- // COLLATE NOCASE
- if(ord.nocase) dg += '.toUpperCase()';
-
- s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;';
- s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){';
-
- } else {
- dg = '.valueOf()';
- // COLLATE NOCASE
- if(ord.nocase) dg += '.toUpperCase()';
- s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;';
- s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){';
- }
-
- // TODO Add date comparision
-
-}
-*/
- sk += '}';
- });
- s += 'return 0;';
- s += sk + 'return -1';
- query.orderfns = s;
-
- return new Function('a,b', 'var y;' + s);
- }
-};
-
-// Pivot functions
-/**
- Compile Pivot functions
- @param {object} query Source query
- @return {function} Pivoting functions
-*/
-yy.Select.prototype.compilePivot = function(query) {
- var self = this;
- /** @type {string} Main pivoting column */
-
- var columnid = self.pivot.columnid;
- var exprcolid = self.pivot.expr.expression.columnid;
- var aggr = self.pivot.expr.aggregatorid;
- var inlist = self.pivot.inlist;
-
- if (inlist) {
- inlist = inlist.map(function(l) {
- return l.expr.columnid;
- });
- }
-
- // Function for PIVOT post production
- return function() {
- var query = this;
- var cols = query.columns
- .filter(function(col) {
- return col.columnid != columnid && col.columnid != exprcolid;
- })
- .map(function(col) {
- return col.columnid;
- });
-
- var newcols = [];
- var gnewcols = {};
- var gr = {};
- var ga = {};
- var data = [];
- query.data.forEach(function(d) {
- if (!inlist || inlist.indexOf(d[columnid]) > -1) {
- var gx = cols
- .map(function(colid) {
- return d[colid];
- })
- .join('`');
- var g = gr[gx];
- if (!g) {
- g = {};
- gr[gx] = g;
- data.push(g);
- cols.forEach(function(colid) {
- g[colid] = d[colid];
- });
- }
-
- if (!ga[gx]) {
- ga[gx] = {};
- }
-
- if (ga[gx][d[columnid]]) {
- ga[gx][d[columnid]]++;
- } else {
- ga[gx][d[columnid]] = 1;
- }
-
- if (!gnewcols[d[columnid]]) {
- gnewcols[d[columnid]] = true;
- newcols.push(d[columnid]);
- }
-
- if (aggr == 'SUM' || aggr == 'AVG') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
- g[d[columnid]] += d[exprcolid];
- } else if (aggr == 'COUNT') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
- g[d[columnid]]++;
- } else if (aggr == 'MIN') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity;
- if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'MAX') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity;
- if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'FIRST') {
- if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];
- } else if (aggr == 'LAST') {
- g[d[columnid]] = d[exprcolid];
- } else if (alasql.aggr[aggr]) {
- // Custom aggregator
- alasql.aggr[aggr](g[d[columnid]], d[exprcolid]);
- } else {
- throw new Error('Wrong aggregator in PIVOT clause');
- }
- }
- });
-
- if (aggr == 'AVG') {
- for (var gx in gr) {
- var d = gr[gx];
- for (var colid in d) {
- if (cols.indexOf(colid) == -1 && colid != exprcolid) {
- d[colid] = d[colid] / ga[gx][colid];
- }
- }
- }
- }
-
- // columns
- query.data = data;
-
- if (inlist) newcols = inlist;
-
- var ncol = query.columns.filter(function(col) {
- return col.columnid == exprcolid;
- })[0];
- query.columns = query.columns.filter(function(col) {
- return !(col.columnid == columnid || col.columnid == exprcolid);
- });
- newcols.forEach(function(colid) {
- var nc = cloneDeep(ncol);
- nc.columnid = colid;
- query.columns.push(nc);
- });
- };
-};
-
-// var columnid = this.pivot.columnid;
-
-// return function(data){
-
-// if(false) {
-
-// }
-
-// if(false) {
-
-// }
-// };
-
-/**
- Compile UNPIVOT clause
- @param {object} query Query object
- @return {function} Function for unpivoting
-*/
-yy.Select.prototype.compileUnpivot = function(query) {
- var self = this;
- var tocolumnid = self.unpivot.tocolumnid;
- var forcolumnid = self.unpivot.forcolumnid;
- var inlist = self.unpivot.inlist.map(function(l) {
- return l.columnid;
- });
-
- return function() {
- var data = [];
-
- var xcols = query.columns
- .map(function(col) {
- return col.columnid;
- })
- .filter(function(colid) {
- return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid;
- });
-
- query.data.forEach(function(d) {
- inlist.forEach(function(colid) {
- var nd = {};
- xcols.forEach(function(xcolid) {
- nd[xcolid] = d[xcolid];
- });
- nd[forcolumnid] = colid;
- nd[tocolumnid] = d[colid];
- data.push(nd);
- });
- });
-
- query.data = data;
-
- // });
- };
-};
-
-/*
-//
-// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/**
- Calculate ROLLUP() combination
- */
-
-var rollup = function(a, query) {
- var rr = [];
- var mask = 0;
- var glen = a.length;
- for (var g = 0; g < glen + 1; g++) {
- var ss = [];
- for (var i = 0; i < glen; i++) {
- if (a[i] instanceof yy.Column) {
- a[i].nick = escapeq(a[i].columnid);
-
- query.groupColumns[escapeq(a[i].columnid)] = a[i].nick;
- var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);
- } else {
- query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString());
- var aaa =
- escapeq(a[i].toString()) +
- '\t' +
- a[i].toJS('p', query.sources[0].alias, query.defcols);
- }
-
- if (mask & (1 << i)) ss.push(aaa);
- }
- rr.push(ss);
- mask = (mask << 1) + 1;
- }
- return rr;
-};
-
-/**
- Calculate CUBE()
- */
-var cube = function(a, query) {
- var rr = [];
- var glen = a.length;
- var glenCube = 1 << glen;
- for (var g = 0; g < glenCube; g++) {
- var ss = [];
- for (var i = 0; i < glen; i++) {
- if (g & (1 << i))
- //ss.push(a[i]);
- //ss = cartes(ss,decartes(a[i]));
-
- // var aaa = a[i].toString()+'\t'
- // +a[i].toJS('p',query.sources[0].alias,query.defcols);
-
- ss = ss.concat(decartes(a[i], query));
- //
- }
- rr.push(ss);
- }
- return rr;
-};
-
-/**
- GROUPING SETS()
- */
-var groupingsets = function(a, query) {
- return a.reduce(function(acc, d) {
- acc = acc.concat(decartes(d, query));
- return acc;
- }, []);
-};
-
-/**
- Cartesian production
- */
-var cartes = function(a1, a2) {
- var rrr = [];
- for (var i1 = 0; i1 < a1.length; i1++) {
- for (var i2 = 0; i2 < a2.length; i2++) {
- rrr.push(a1[i1].concat(a2[i2]));
- }
- }
- return rrr;
-};
-
-/**
- Prepare groups function
- */
-function decartes(gv, query) {
-
- if (Array.isArray(gv)) {
- var res = [[]];
- for (var t = 0; t < gv.length; t++) {
- if (gv[t] instanceof yy.Column) {
-
- gv[t].nick = escapeq(gv[t].columnid);
- query.groupColumns[gv[t].nick] = gv[t].nick;
- res = res.map(function(r) {
- return r.concat(
- gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // res = res.map(function(r){return r.concat(gv[t].columnid)});
- } else if (gv[t] instanceof yy.FuncValue) {
- query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
- res = res.map(function(r) {
- return r.concat(
- escapeq(gv[t].toString()) +
- '\t' +
- gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // to be defined
- } else if (gv[t] instanceof yy.GroupExpression) {
- if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query));
- else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query));
- else if (gv[t].type == 'GROUPING SETS')
- res = cartes(res, groupingsets(gv[t].group, query));
- else throw new Error('Unknown grouping function');
- } else if (gv[t] === '') {
-
- res = [['1\t1']];
- } else {
- // if(gv[t])
-
- res = res.map(function(r) {
- query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
- return r.concat(
- escapeq(gv[t].toString()) +
- '\t' +
- gv[t].toJS('p', query.sources[0].alias, query.defcols)
- );
- });
- // res = res.concat(gv[t]);
- }
-
- }
- return res;
- } else if (gv instanceof yy.FuncValue) {
-
- query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
- return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];
- } else if (gv instanceof yy.Column) {
- gv.nick = escapeq(gv.columnid);
- query.groupColumns[gv.nick] = gv.nick;
- return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened?
- // } else if(gv instanceof yy.Expression) {
- // return [gv.columnid]; // Is this ever happened?
- } else {
- query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
- return [
- escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols),
- ];
- // throw new Error('Single argument in the group without array');
- }
-
-}
-
-/*
-//
-// Select run-time part for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Select.prototype.compileDefCols = function(query, databaseid) {
-
- var defcols = {'.': {}};
- if (this.from) {
- this.from.forEach(function(fr) {
- defcols['.'][fr.as || fr.tableid] = true;
- if (fr instanceof yy.Table) {
- var alias = fr.as || fr.tableid;
-
- var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid];
-
- if (undefined === table) {
- throw new Error('Table does not exist: ' + fr.tableid);
- }
-
- if (table.columns) {
- table.columns.forEach(function(col) {
- if (defcols[col.columnid]) {
- defcols[col.columnid] = '-'; // Ambigous
- } else {
- defcols[col.columnid] = alias;
- }
- });
- }
- } else if (fr instanceof yy.Select) {
- } else if (fr instanceof yy.Search) {
- } else if (fr instanceof yy.ParamValue) {
- } else if (fr instanceof yy.VarValue) {
- } else if (fr instanceof yy.FuncValue) {
- } else if (fr instanceof yy.FromData) {
- } else if (fr instanceof yy.Json) {
- } else if (fr.inserted) {
- } else {
-
- throw new Error('Unknown type of FROM clause');
- }
- });
- }
-
- if (this.joins) {
- this.joins.forEach(function(jn) {
- defcols['.'][jn.as || jn.table.tableid] = true;
-
- if (jn.table) {
- var alias = jn.table.tableid;
- if (jn.as) alias = jn.as;
- var alias = jn.as || jn.table.tableid;
- var table =
- alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid];
-
- if (table.columns) {
- table.columns.forEach(function(col) {
- if (defcols[col.columnid]) {
- defcols[col.columnid] = '-'; // Ambigous
- } else {
- defcols[col.columnid] = alias;
- }
- });
- }
- } else if (jn.select) {
- } else if (jn.param) {
- } else if (jn.func) {
- } else {
- throw new Error('Unknown type of FROM clause');
- }
- });
- }
- // for(var k in defcols) {
- // if(defcols[k] == '-') defcols[k] = undefined;
- // }
-
- return defcols;
-};
-
-/*
-//
-// UNION for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// SELECT UNION statement
-
-yy.Union = function(params) {
- return yy.extend(this, params);
-};
-yy.Union.prototype.toString = function() {
- return 'UNION';
-};
-
-yy.Union.prototype.compile = function(tableid) {
- return null;
-};
-
-/*
-//
-// CROSS AND OUTER APPLY for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Apply = function(params) {
- return yy.extend(this, params);
-};
-
-yy.Apply.prototype.toString = function() {
- var s = this.applymode + ' APPLY (' + this.select.toString() + ')';
-
- if (this.as) s += ' AS ' + this.as;
-
- return s;
-};
-
-/*
-//
-// CROSS AND OUTER APPLY for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Over = function(params) {
- return yy.extend(this, params);
-};
-yy.Over.prototype.toString = function() {
- var s = 'OVER (';
- if (this.partition) {
- s += 'PARTITION BY ' + this.partition.toString();
- if (this.order) s += ' ';
- }
- if (this.order) {
- s += 'ORDER BY ' + this.order.toString();
- }
- s += ')';
- return s;
-};
-
-/*
-//
-// Expressions for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/**
- Expression statement ( = 2*2; )
- @class
- @param {object} params Initial parameters
-*/
-yy.ExpressionStatement = function(params) {
- return yy.extend(this, params);
-};
-
-/**
- Convert AST to string
- @this ExpressionStatement
- @return {string}
-*/
-yy.ExpressionStatement.prototype.toString = function() {
- return this.expression.toString();
-};
-/**
- Execute statement
- @param {string} databaseid Database identificatro
- @param {object} params Statement parameters
- @param {statement-callback} cb Callback
- @return {object} Result value
-*/
-yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) {
- if (this.expression) {
-
- alasql.precompile(this, databaseid, params); // Precompile queries
- var exprfn = new Function(
- 'params,alasql,p',
- 'var y;return ' + this.expression.toJS('({})', '', null)
- ).bind(this);
- var res = exprfn(params, alasql);
- if (cb) {
- res = cb(res);
- }
- return res;
- }
-};
-
-/**
- Expression class
- @class
- @param {object} params Initial parameters
-*/
-
-yy.Expression = function(params) {
- return yy.extend(this, params);
-};
-
-/**
- Convert AST to string
- @this ExpressionStatement
- @return {string}
-*/
-yy.Expression.prototype.toString = function(dontas) {
- var s = this.expression.toString(dontas);
- if (this.order) {
- s += ' ' + this.order.toString();
- }
- if (this.nocase) {
- s += ' COLLATE NOCASE';
- }
- if (this.direction) {
- s += ' ' + this.direction;
- }
- return s;
-};
-
-/**
- Find aggregator in AST subtree
- @this ExpressionStatement
- @param {object} query Query object
-*/
-yy.Expression.prototype.findAggregator = function(query) {
- if (this.expression.findAggregator) {
- this.expression.findAggregator(query);
- }
-};
-
-/**
- Convert AST to JavaScript expression
- @this ExpressionStatement
- @param {string} context Context string, e.g. 'p','g', or 'x'
- @param {string} tableid Default table name
- @param {object} defcols Default columns dictionary
- @return {string} JavaScript expression
-*/
-
-yy.Expression.prototype.toJS = function(context, tableid, defcols) {
-
- if (this.expression.reduced) {
- return 'true';
- }
- return this.expression.toJS(context, tableid, defcols);
-};
-
-/**
- Compile AST to JavaScript expression
- @this ExpressionStatement
- @param {string} context Context string, e.g. 'p','g', or 'x'
- @param {string} tableid Default table name
- @param {object} defcols Default columns dictionary
- @return {string} JavaScript expression
-*/
-
-yy.Expression.prototype.compile = function(context, tableid, defcols) {
-
- if (this.reduced) {
- return returnTrue();
- }
- return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols));
-};
-
-/**
- JavaScript class
- @class
-*/
-yy.JavaScript = function(params) {
- return yy.extend(this, params);
-};
-yy.JavaScript.prototype.toString = function() {
- var s = '``' + this.value + '``';
- return s;
-};
-
-yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) {
-
- return '(' + this.value + ')';
-};
-yy.JavaScript.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- var expr = new Function('params,alasql,p', this.value);
- expr(params, alasql);
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-/**
- Literal class
- @class
- @example
- MyVar, [My vairable], `MySQL variable`
-*/
-
-yy.Literal = function(params) {
- return yy.extend(this, params);
-};
-yy.Literal.prototype.toString = function(dontas) {
- var s = this.value;
- if (this.value1) {
- s = this.value1 + '.' + s;
- }
- if (this.alias && !dontas) s += ' AS ' + this.alias;
- // else s = tableid+'.'+s;
- return s;
-};
-
-/**
- Join class
- @class
-*/
-
-yy.Join = function(params) {
- return yy.extend(this, params);
-};
-yy.Join.prototype.toString = function() {
- var s = ' ';
- if (this.joinmode) {
- s += this.joinmode + ' ';
- }
- s += 'JOIN ' + this.table.toString();
- return s;
-};
-
-// }
-
-/**
- Table class
- @class
-*/
-
-yy.Table = function(params) {
- return yy.extend(this, params);
-};
-yy.Table.prototype.toString = function() {
- var s = this.tableid;
- // if(this.joinmode)
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
- }
- return s;
-};
-
-/**
- View class
- @class
-*/
-
-yy.View = function(params) {
- return yy.extend(this, params);
-};
-yy.View.prototype.toString = function() {
- var s = this.viewid;
- // if(this.joinmode)
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
- }
- return s;
-};
-
-/**
- Binary operation class
- @class
-*/
-yy.Op = function(params) {
- return yy.extend(this, params);
-};
-yy.Op.prototype.toString = function() {
- if (this.op === 'IN' || this.op === 'NOT IN') {
- return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')';
- }
- if (this.allsome) {
- return (
- this.left.toString() +
- ' ' +
- this.op +
- ' ' +
- this.allsome +
- ' (' +
- this.right.toString() +
- ')'
- );
- }
- if (this.op === '->' || this.op === '!') {
- var s = this.left.toString() + this.op;
-
- if (typeof this.right !== 'string' && typeof this.right !== 'number') {
- s += '(';
- }
-
- s += this.right.toString();
-
- if (typeof this.right !== 'string' && typeof this.right !== 'number') {
- s += ')';
- }
-
- return s;
- }
- return (
- this.left.toString() +
- ' ' +
- this.op +
- ' ' +
- (this.allsome ? this.allsome + ' ' : '') +
- this.right.toString()
- );
-};
-
-yy.Op.prototype.findAggregator = function(query) {
-
- if (this.left && this.left.findAggregator) {
- this.left.findAggregator(query);
- }
- // Do not go in > ALL
- if (this.right && this.right.findAggregator && !this.allsome) {
- this.right.findAggregator(query);
- }
-};
-
-yy.Op.prototype.toType = function(tableid) {
- if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) {
- return 'number';
- }
- if (['||'].indexOf(this.op) > -1) {
- return 'string';
- }
- if (this.op === '+') {
- if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') {
- return 'string';
- }
- if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') {
- return 'number';
- }
- }
-
- if (
- [
- 'AND',
- 'OR',
- 'NOT',
- '=',
- '==',
- '===',
- '!=',
- '!==',
- '!===',
- '>',
- '>=',
- '<',
- '<=',
- 'IN',
- 'NOT IN',
- 'LIKE',
- 'NOT LIKE',
- 'REGEXP',
- 'GLOB',
- ].indexOf(this.op) > -1
- ) {
- return 'boolean';
- }
-
- if (
- this.op === 'BETWEEN' ||
- this.op === 'NOT BETWEEN' ||
- this.op === 'IS NULL' ||
- this.op === 'IS NOT NULL'
- ) {
- return 'boolean';
- }
-
- if (this.allsome) {
- return 'boolean';
- }
-
- if (!this.op) {
- return this.left.toType();
- }
-
- return 'unknown';
-};
-
-yy.Op.prototype.toJS = function(context, tableid, defcols) {
-
- var s;
- var refs = [];
- var op = this.op;
- var _this = this;
- //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)};
- //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)};
- var accessedLeft = false,
- accessedRight = false;
- var ref = function(expr) {
- if (expr.toJS) {
- expr = expr.toJS(context, tableid, defcols);
- }
- var i = refs.push(expr) - 1;
- return 'y[' + i + ']';
- };
- var leftJS = function() {
- return ref(_this.left);
- };
- var rightJS = function() {
- return ref(_this.right);
- };
-
- if (this.op === '=') {
- op = '===';
- } else if (this.op === '<>') {
- op = '!=';
- } else if (this.op === 'OR') {
- op = '||';
- }
-
- // Arrow operator
- if (this.op === '->') {
- // Expression to prevent error if object is empty (#344)
- var ljs = '(' + leftJS() + '||{})';
-
- if (typeof this.right === 'string') {
- s = ljs + '["' + this.right + '"]';
- } else if (typeof this.right === 'number') {
- s = ljs + '[' + this.right + ']';
- } else if (this.right instanceof yy.FuncValue) {
- var ss = [];
- if (!(!this.right.args || 0 === this.right.args.length)) {
- var ss = this.right.args.map(ref);
- }
- s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')';
- } else {
- s = '' + ljs + '[' + rightJS() + ']';
- }
- }
-
- if (this.op === '!') {
- if (typeof this.right === 'string') {
- s =
- '' +
- 'alasql.databases[alasql.useid].objects[' +
- leftJS() +
- ']["' +
- this.right +
- '"]';
- }
- // TODO - add other cases
- }
-
- if (this.op === 'IS') {
- s =
- '' +
- '(' +
- '(' +
- leftJS() +
- '==null)' + // Cant be ===
- ' === ' +
- '(' +
- rightJS() +
- '==null)' + // Cant be ===
- ')';
- }
-
- if (this.op === '==') {
- s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')';
- }
-
- if (this.op === '===' || this.op === '!===') {
- s =
- '' +
- '(' +
- (this.op === '!===' ? '!' : '') +
- '(' +
- '(' +
- leftJS() +
- ').valueOf()' +
- '===' +
- '(' +
- rightJS() +
- ').valueOf()' +
- ')' +
- ')';
- }
-
- if (this.op === '!==') {
- s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))';
- }
- if (this.op === '||') {
- s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))';
- }
- if (this.op === 'LIKE' || this.op === 'NOT LIKE') {
- var s =
- '(' +
- (this.op === 'NOT LIKE' ? '!' : '') +
- 'alasql.utils.like(' +
- rightJS() +
- ',' +
- leftJS();
- if (this.escape) {
- s += ',' + ref(this.escape);
- }
- s += '))';
- }
- if (this.op === 'REGEXP') {
- s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')';
- }
- if (this.op === 'GLOB') {
- s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')';
- }
-
- if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {
- var left = leftJS();
- s =
- '' +
- '(' +
- (this.op === 'NOT BETWEEN' ? '!' : '') +
- '(' +
- '(' +
- ref(this.right1) +
- '<=' +
- left +
- ') && (' +
- left +
- '<=' +
- ref(this.right2) +
- ')' +
- ')' +
- ')';
-
- }
-
- if (this.op === 'IN') {
- if (this.right instanceof yy.Select) {
- s = '(';
- // s += 'this.query.queriesdata['+this.queriesidx+']';
- // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))';
- s +=
- 'alasql.utils.flatArray(this.queriesfn[' +
- this.queriesidx +
- '](params,null,' +
- context +
- '))';
- s += '.indexOf(';
- s += leftJS() + ')>-1)';
- } else if (Array.isArray(this.right)) {
- // if(this.right.length == 0) return 'false';
- s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)';
-
- } else {
- s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';
-
- // } else {
- // throw new Error('Wrong IN operator without SELECT part');
- }
- }
-
- if (this.op === 'NOT IN') {
- if (this.right instanceof yy.Select) {
- s = '(';
- //this.query.queriesdata['+this.queriesidx+']
- // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))';
- s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';
- s += '.indexOf(';
- s += leftJS() + ')<0)';
- } else if (Array.isArray(this.right)) {
- // if(this.right.length == 0) return 'true';
- s = '([' + this.right.map(ref).join(',') + '].indexOf(';
- s += leftJS() + ')<0)';
- } else {
- s = '(' + rightJS() + '.indexOf(';
- s += leftJS() + ')==-1)';
-
- // throw new Error('Wrong NOT IN operator without SELECT part');
- }
- }
-
- if (this.allsome === 'ALL') {
- var s;
- if (this.right instanceof yy.Select) {
- // var s = 'this.query.queriesdata['+this.queriesidx+']';
- s =
- 'alasql.utils.flatArray(this.query.queriesfn[' +
- this.queriesidx +
- '](params,null,p))';
-
- s += '.every(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else if (Array.isArray(this.right)) {
- s =
- '' +
- (this.right.length == 1
- ? ref(this.right[0])
- : '[' + this.right.map(ref).join(',') + ']');
- s += '.every(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else {
- throw new Error('NOT IN operator without SELECT');
- }
- }
-
- if (this.allsome === 'SOME' || this.allsome === 'ANY') {
- var s;
- if (this.right instanceof yy.Select) {
- // var s = 'this.query.queriesdata['+this.queriesidx+']';
- s =
- 'alasql.utils.flatArray(this.query.queriesfn[' +
- this.queriesidx +
- '](params,null,p))';
- s += '.some(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else if (Array.isArray(this.right)) {
- s =
- '' +
- (this.right.length == 1
- ? ref(this.right[0])
- : '[' + this.right.map(ref).join(',') + ']');
- s += '.some(function(b){return (';
- s += leftJS() + ')' + op + 'b})';
- } else {
- throw new Error('SOME/ANY operator without SELECT');
- }
- }
-
- // Special case for AND optimization (if reduced)
- if (this.op === 'AND') {
- if (this.left.reduced) {
- if (this.right.reduced) {
- return 'true';
- } else {
- s = rightJS();
- }
- } else if (this.right.reduced) {
- s = leftJS();
- }
-
- // Otherwise process as regular operation (see below)
- op = '&&';
- }
-
- // if(this.op === '^') {
- // // return 'Math.pow('
- // // + leftJS()
- // // + ','
- // // + rightJS()
- // // + ')';
- // }
-
- // Change names
-
- var expr = s || '(' + leftJS() + op + rightJS() + ')';
-
- var declareRefs = 'y=[(' + refs.join('), (') + ')]';
-
- if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') {
- return '(' + declareRefs + ', ' + expr + ')';
- }
-
- return (
- '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')'
- );
-};
-
-yy.VarValue = function(params) {
- return yy.extend(this, params);
-};
-yy.VarValue.prototype.toString = function() {
- return '@' + this.variable;
-};
-
-yy.VarValue.prototype.toType = function() {
- return 'unknown';
-};
-
-yy.VarValue.prototype.toJS = function() {
- return "alasql.vars['" + this.variable + "']";
-};
-
-yy.NumValue = function(params) {
- return yy.extend(this, params);
-};
-yy.NumValue.prototype.toString = function() {
- return this.value.toString();
-};
-
-yy.NumValue.prototype.toType = function() {
- return 'number';
-};
-
-yy.NumValue.prototype.toJS = function() {
- return '' + this.value;
-};
-
-yy.StringValue = function(params) {
- return yy.extend(this, params);
-};
-yy.StringValue.prototype.toString = function() {
- return "'" + this.value.toString() + "'";
-};
-
-yy.StringValue.prototype.toType = function() {
- return 'string';
-};
-
-yy.StringValue.prototype.toJS = function() {
-
- // return "'"+doubleqq(this.value)+"'";
- return "'" + escapeq(this.value) + "'";
-};
-
-yy.DomainValueValue = function(params) {
- return yy.extend(this, params);
-};
-yy.DomainValueValue.prototype.toString = function() {
- return 'VALUE';
-};
-
-yy.DomainValueValue.prototype.toType = function() {
- return 'object';
-};
-
-yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) {
-
- // return "'"+doubleqq(this.value)+"'";
- return context;
-};
-
-yy.ArrayValue = function(params) {
- return yy.extend(this, params);
-};
-yy.ArrayValue.prototype.toString = function() {
- return 'ARRAY[]';
-};
-
-yy.ArrayValue.prototype.toType = function() {
- return 'object';
-};
-
-yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) {
-
- // return "'"+doubleqq(this.value)+"'";
- return (
- '[(' +
- this.value
- .map(function(el) {
- return el.toJS(context, tableid, defcols);
- })
- .join('), (') +
- ')]'
- );
-};
-
-yy.LogicValue = function(params) {
- return yy.extend(this, params);
-};
-yy.LogicValue.prototype.toString = function() {
- return this.value ? 'TRUE' : 'FALSE';
-};
-
-yy.LogicValue.prototype.toType = function() {
- return 'boolean';
-};
-
-yy.LogicValue.prototype.toJS = function() {
- return this.value ? 'true' : 'false';
-};
-
-yy.NullValue = function(params) {
- return yy.extend(this, params);
-};
-yy.NullValue.prototype.toString = function() {
- return 'NULL';
-};
-yy.NullValue.prototype.toJS = function() {
- return 'undefined';
- // return 'undefined';
-};
-
-yy.ParamValue = function(params) {
- return yy.extend(this, params);
-};
-yy.ParamValue.prototype.toString = function() {
- return '$' + this.param;
-};
-yy.ParamValue.prototype.toJS = function() {
- if (typeof this.param === 'string') {
- return "params['" + this.param + "']";
- }
-
- return 'params[' + this.param + ']';
-};
-
-yy.UniOp = function(params) {
- return yy.extend(this, params);
-};
-yy.UniOp.prototype.toString = function() {
- var s;
- s = void 0;
- if (this.op === '~') {
- s = this.op + this.right.toString();
- }
- if (this.op === '-') {
- s = this.op + this.right.toString();
- }
- if (this.op === '+') {
- s = this.op + this.right.toString();
- }
- if (this.op === '#') {
- s = this.op + this.right.toString();
- }
- if (this.op === 'NOT') {
- s = this.op + '(' + this.right.toString() + ')';
- }
- if (this.op === null) {
- s = '(' + this.right.toString() + ')';
- }
- if (!s) {
- s = '(' + this.right.toString() + ')';
- }
- return s;
-};
-
-yy.UniOp.prototype.findAggregator = function(query) {
- if (this.right.findAggregator) {
- this.right.findAggregator(query);
- }
-};
-
-yy.UniOp.prototype.toType = function() {
- if (this.op === '-') {
- return 'number';
- }
-
- if (this.op === '+') {
- return 'number';
- }
-
- if (this.op === 'NOT') {
- return 'boolean';
- }
-
- // Todo: implement default case
-};
-
-yy.UniOp.prototype.toJS = function(context, tableid, defcols) {
- if (this.op === '~') {
- return '(~(' + this.right.toJS(context, tableid, defcols) + '))';
- }
-
- if (this.op === '-') {
- return '(-(' + this.right.toJS(context, tableid, defcols) + '))';
- }
-
- if (this.op === '+') {
- return '(' + this.right.toJS(context, tableid, defcols) + ')';
- }
-
- if (this.op === 'NOT') {
- return '!(' + this.right.toJS(context, tableid, defcols) + ')';
- }
-
- if (this.op === '#') {
- if (this.right instanceof yy.Column) {
- return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])";
- } else {
- return (
- '(alasql.databases[alasql.useid].objects[' +
- this.right.toJS(context, tableid, defcols) +
- '])'
- );
- }
- }
-
- // Please avoid === here
- if (this.op == null) {
- // jshint ignore:line
- return '(' + this.right.toJS(context, tableid, defcols) + ')';
- }
-
- // Todo: implement default case.
-};
-
-yy.Column = function(params) {
- return yy.extend(this, params);
-};
-yy.Column.prototype.toString = function(dontas) {
- var s;
- if (this.columnid == +this.columnid) {
- // jshint ignore:line
- s = '[' + this.columnid + ']';
- } else {
- s = this.columnid;
- }
- if (this.tableid) {
- if (+this.columnid === this.columnid) {
- s = this.tableid + s;
- } else {
- s = this.tableid + '.' + s;
- }
- if (this.databaseid) {
- s = this.databaseid + '.' + s;
- }
- }
- if (this.alias && !dontas) s += ' AS ' + this.alias;
- return s;
-};
-
-yy.Column.prototype.toJS = function(context, tableid, defcols) {
-
- var s = '';
- if (!this.tableid && tableid === '' && !defcols) {
- if (this.columnid !== '_') {
- s = context + "['" + this.columnid + "']";
- } else {
- if (context === 'g') {
- s = "g['_']";
- } else {
- s = context;
- }
- }
- } else {
- if (context === 'g') {
- // if(this.columnid == '_') {
- // } else {
- s = "g['" + this.nick + "']";
- // }
- } else if (this.tableid) {
- if (this.columnid !== '_') {
- // if() {
- // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']';
- // } else {
- s = context + "['" + this.tableid + "']['" + this.columnid + "']";
- // }
- } else {
- if (context === 'g') {
- s = "g['_']";
- } else {
- s = context + "['" + this.tableid + "']";
- }
- }
- } else if (defcols) {
- var tbid = defcols[this.columnid];
- if (tbid === '-') {
- throw new Error(
- 'Cannot resolve column "' +
- this.columnid +
- '" because it exists in two source tables'
- );
- } else if (tbid) {
- if (this.columnid !== '_') {
- s = context + "['" + tbid + "']['" + this.columnid + "']";
- } else {
- s = context + "['" + tbid + "']";
- }
-
- } else {
- if (this.columnid !== '_') {
- // if(defcols['.'][this.tableid]) {
-
- // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']';
- // } else {
- s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
- // }
- } else {
- s = context + "['" + (this.tableid || tableid) + "']";
- }
- }
- } else if (tableid === -1) {
- // if(this.columnid != '') {
- s = context + "['" + this.columnid + "']";
- // } else {
- // s = context;
- // }
- } else {
- if (this.columnid !== '_') {
- s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
- } else {
- s = context + "['" + (this.tableid || tableid) + "']";
- }
- }
- }
-
- // console.trace(new Error());
-
- return s;
-};
-
-yy.AggrValue = function(params) {
- return yy.extend(this, params);
-};
-yy.AggrValue.prototype.toString = function(dontas) {
- var s = '';
- if (this.aggregatorid === 'REDUCE') {
- s += this.funcid + '(';
- } else {
- s += this.aggregatorid + '(';
- }
-
- if (this.distinct) {
- s += 'DISTINCT ';
- }
-
- if (this.expression) {
- s += this.expression.toString();
- }
-
- s += ')';
-
- if (this.over) {
- s += ' ' + this.over.toString();
- }
-
- if (this.alias && !dontas) s += ' AS ' + this.alias;
- // if(this.alias) s += ' AS '+this.alias;
- return s;
-};
-
-yy.AggrValue.prototype.findAggregator = function(query) {
-
- // var colas = this.as || this.toString();
-
- var colas = escapeq(this.toString()) + ':' + query.selectGroup.length;
-
- // if(!query.selectColumns[colas]) {
- // }
-
- var found = false;
-
- if (!found) {
- if (!this.nick) {
- this.nick = colas;
- var found = false;
- for (var i = 0; i < query.removeKeys.length; i++) {
- if (query.removeKeys[i] === colas) {
- found = true;
- break;
- }
- }
- if (!found) {
- query.removeKeys.push(colas);
- }
- }
- query.selectGroup.push(this);
- }
-
- // this.reduced = true;
- return;
-};
-
-yy.AggrValue.prototype.toType = function() {
- if (
- ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) >
- -1
- ) {
- return 'number';
- }
-
- if (['ARRAY'].indexOf(this.aggregatorid) > -1) {
- return 'array';
- }
-
- if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) {
- return this.expression.toType();
- }
-
- // todo: implement default;
-};
-
-yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) {
-
- var colas = this.nick;
- if (colas === undefined) {
- colas = this.toString();
- }
- return "g['" + colas + "']";
-};
-
-yy.OrderExpression = function(params) {
- return yy.extend(this, params);
-};
-yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString;
-
-yy.GroupExpression = function(params) {
- return yy.extend(this, params);
-};
-yy.GroupExpression.prototype.toString = function() {
- return this.type + '(' + this.group.toString() + ')';
-};
-
-// Alasql Linq library
-
-yy.FromData = function(params) {
- return yy.extend(this, params);
-};
-yy.FromData.prototype.toString = function() {
- if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')';
- else return '?';
-};
-yy.FromData.prototype.toJS = function() {
-
-};
-
-yy.Select.prototype.exec = function(params, cb) {
- if (this.preparams) params = this.preparams.concat(params);
-
- var databaseid = alasql.useid;
- db = alasql.databases[databaseid];
- var sql = this.toString();
- var hh = hash(sql);
-
- var statement = this.compile(databaseid);
- if (!statement) return;
- statement.sql = sql;
- statement.dbversion = db.dbversion;
-
- // Secure sqlCache size
- if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
- db.resetSqlCache();
- }
- db.sqlCacheSize++;
- db.sqlCache[hh] = statement;
- var res = (alasql.res = statement(params, cb));
- return res;
-};
-
-yy.Select.prototype.Select = function() {
- var self = this;
- var agrs = [];
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
- }
- } else {
- throw new Error('Wrong number of arguments of Select() function');
- }
-
- self.columns = [];
-
- args.forEach(function(arg) {
- if (typeof arg == 'string') {
- self.columns.push(new yy.Column({columnid: arg}));
- } else if (typeof arg == 'function') {
- var pari = 0;
- if (self.preparams) {
- pari = self.preparams.length;
- } else {
- self.preparams = [];
- }
- self.preparams.push(arg);
- self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari}));
- } else {
- // Unknown type
- }
- });
-
- return self;
-};
-
-yy.Select.prototype.From = function(tableid) {
- var self = this;
- if (!self.from) self.from = [];
- if (Array.isArray(tableid)) {
- var pari = 0;
- if (self.preparams) {
- pari = self.preparams.length;
- } else {
- self.preparams = [];
- }
- self.preparams.push(tableid);
- self.from.push(new yy.ParamValue({param: pari}));
- } else if (typeof tableid == 'string') {
- self.from.push(new yy.Table({tableid: tableid}));
- } else {
- throw new Error('Unknown arguments in From() function');
- }
- return self;
-};
-
-yy.Select.prototype.OrderBy = function() {
- var self = this;
- var agrs = [];
-
- self.order = [];
-
- if (arguments.length == 0) {
- // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'}));
- args = ['_'];
- } else if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
- }
- } else {
- throw new Error('Wrong number of arguments of Select() function');
- }
-
- if (args.length > 0) {
- args.forEach(function(arg) {
- var expr = new yy.Column({columnid: arg});
- if (typeof arg == 'function') {
- expr = arg;
- }
- self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'}));
- });
- }
- return self;
-};
-
-yy.Select.prototype.Top = function(topnum) {
- var self = this;
- self.top = new yy.NumValue({value: topnum});
- return self;
-};
-
-yy.Select.prototype.GroupBy = function() {
- var self = this;
- var agrs = [];
-
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- } else if (arguments.length == 1) {
- if (Array.isArray(arguments[0])) {
- args = arguments[0];
- } else {
- args = [arguments[0]];
- }
- } else {
- throw new Error('Wrong number of arguments of Select() function');
- }
-
- self.group = [];
-
- args.forEach(function(arg) {
- var expr = new yy.Column({columnid: arg});
- self.group.push(expr);
- });
-
- return self;
-};
-
-yy.Select.prototype.Where = function(expr) {
- var self = this;
- if (typeof expr == 'function') {
- self.where = expr;
- }
- return self;
-};
-
-/*
-//
-// Functions for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.FuncValue = function(params) {
- return yy.extend(this, params);
-};
-yy.FuncValue.prototype.toString = function(dontas) {
- var s = '';
-
- if (alasql.fn[this.funcid]) s += this.funcid;
- else if (alasql.aggr[this.funcid]) s += this.funcid;
- else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()])
- s += this.funcid.toUpperCase();
-
- s += '(';
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toString();
- })
- .join(',');
- }
- s += ')';
- if (this.as && !dontas) s += ' AS ' + this.as.toString();
- // if(this.alias) s += ' AS '+this.alias;
- return s;
-};
-
-yy.FuncValue.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- alasql.precompile(this, databaseid, params); // Precompile queries
-
- var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null));
- expr(params, alasql);
- if (cb) res = cb(res);
- return res;
-};
-
-yy.FuncValue.prototype.findAggregator = function(query) {
- if (this.args && this.args.length > 0) {
- this.args.forEach(function(arg) {
- if (arg.findAggregator) arg.findAggregator(query);
- });
- }
-};
-
-yy.FuncValue.prototype.toJS = function(context, tableid, defcols) {
- var s = '';
- var funcid = this.funcid;
- // IF this is standard compile functions
- if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) {
- if (this.args && this.args.length > 0) {
- s += alasql.stdlib[funcid.toUpperCase()].apply(
- this,
- this.args.map(function(arg) {
- return arg.toJS(context, tableid);
- })
- );
- } else {
- s += alasql.stdlib[funcid.toUpperCase()]();
- }
- } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) {
- if (this.newid) s += 'new ';
- s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '(';
- // if(this.args) s += this.args.toJS(context, tableid);
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toJS(context, tableid, defcols);
- })
- .join(',');
- }
- s += ')';
- } else {
- // This is user-defined run-time function
- // TODO arguments!!!
- // var s = '';
- if (this.newid) s += 'new ';
- s += 'alasql.fn.' + this.funcid + '(';
- // if(this.args) s += this.args.toJS(context, tableid);
- if (this.args && this.args.length > 0) {
- s += this.args
- .map(function(arg) {
- return arg.toJS(context, tableid, defcols);
- })
- .join(',');
- }
- s += ')';
- }
-
- // if(this.alias) s += ' AS '+this.alias;
- return s;
-};
-
-var stdlib = (alasql.stdlib = {});
-var stdfn = (alasql.stdfn = {});
-
-stdlib.ABS = function(a) {
- return 'Math.abs(' + a + ')';
-};
-stdlib.CLONEDEEP = function(a) {
- return 'alasql.utils.cloneDeep(' + a + ')';
-};
-
-stdfn.CONCAT = function() {
- return Array.prototype.slice.call(arguments).join('');
-};
-stdlib.EXP = function(a) {
- return 'Math.pow(Math.E,' + a + ')';
-};
-
-stdlib.IIF = function(a, b, c) {
- if (arguments.length == 3) {
- return '((' + a + ')?(' + b + '):(' + c + '))';
- } else {
- throw new Error('Number of arguments of IFF is not equals to 3');
- }
-};
-stdlib.IFNULL = function(a, b) {
- return '(' + a + '||' + b + ')';
-};
-stdlib.INSTR = function(s, p) {
- return '((' + s + ').indexOf(' + p + ')+1)';
-};
-
-//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';};
-
-stdlib.LEN = stdlib.LENGTH = function(s) {
- return und(s, 'y.length');
-};
-//stdlib.LENGTH = function(s) {return '('+s+').length'};
-
-stdlib.LOWER = stdlib.LCASE = function(s) {
- return und(s, 'String(y).toLowerCase()');
-};
-//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';}
-
-// Returns a character expression after it removes leading blanks.
-// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql
-stdlib.LTRIM = function(s) {
- return und(s, 'y.replace(/^[ ]+/,"")');
-};
-
-// Returns a character string after truncating all trailing spaces.
-// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql
-stdlib.RTRIM = function(s) {
- return und(s, 'y.replace(/[ ]+$/,"")');
-};
-
-stdlib.MAX = stdlib.GREATEST = function() {
- return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')';
-};
-
-stdlib.MIN = stdlib.LEAST = function() {
- return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')';
-};
-
-stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) {
- if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)');
- else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')');
-};
-
-stdfn.REGEXP_LIKE = function(a, b, c) {
-
- return (a || '').search(RegExp(b, c)) > -1;
-};
-
-// Here we uses undefined instead of null
-stdlib.ISNULL = stdlib.NULLIF = function(a, b) {
- return '(' + a + '==' + b + '?undefined:' + a + ')';
-};
-
-stdlib.POWER = function(a, b) {
- return 'Math.pow(' + a + ',' + b + ')';
-};
-
-stdlib.RANDOM = function(r) {
- if (arguments.length == 0) {
- return 'Math.random()';
- } else {
- return '(Math.random()*(' + r + ')|0)';
- }
-};
-stdlib.ROUND = function(s, d) {
- if (arguments.length == 2) {
- return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))';
- } else {
- return 'Math.round(' + s + ')';
- }
-};
-stdlib.CEIL = stdlib.CEILING = function(s) {
- return 'Math.ceil(' + s + ')';
-};
-stdlib.FLOOR = function(s) {
- return 'Math.floor(' + s + ')';
-};
-
-stdlib.ROWNUM = function() {
- return '1';
-};
-stdlib.ROW_NUMBER = function() {
- return '1';
-};
-
-stdlib.SQRT = function(s) {
- return 'Math.sqrt(' + s + ')';
-};
-
-stdlib.TRIM = function(s) {
- return und(s, 'y.trim()');
-};
-
-stdlib.UPPER = stdlib.UCASE = function(s) {
- return und(s, 'String(y).toUpperCase()');
-};
-
-// Concatination of strings
-stdfn.CONCAT_WS = function() {
- var args = Array.prototype.slice.call(arguments);
- return args.slice(1, args.length).join(args[0]);
-};
-
-//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';}
-//REPLACE
-// RTRIM
-// SUBSTR
-// TRIM
-//REPLACE
-// RTRIM
-// SUBSTR
-// TRIM
-
-// Aggregator for joining strings
-alasql.aggr.GROUP_CONCAT = function(v, s, stage) {
- if (stage === 1) {
- return '' + v;
- } else if (stage === 2) {
- s += ',' + v;
- return s;
- }
- return s;
-};
-
-alasql.aggr.MEDIAN = function(v, s, stage) {
- if (stage === 2) {
- if (v !== null) {
- s.push(v);
- }
- return s;
- } else if (stage === 1) {
- if (v === null) {
- return [];
- }
- return [v];
- } else {
- if (!s.length) {
- return s;
- }
-
- var r = s.sort();
- var p = (r.length + 1) / 2;
- if (Number.isInteger(p)) {
- return r[p - 1];
- }
-
- return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2;
- }
-};
-
-alasql.aggr.QUART = function(v, s, stage, nth) {
- //Quartile (first quartile per default or input param)
- if (stage === 2) {
- if (v !== null) {
- s.push(v);
- }
- return s;
- } else if (stage === 1) {
- if (v === null) {
- return [];
- }
- return [v];
- } else {
- if (!s.length) {
- return s;
- }
-
- nth = !nth ? 1 : nth;
- var r = s.sort();
- var p = nth * (r.length + 1) / 4;
- if (Number.isInteger(p)) {
- return r[p - 1]; //Integer value
- }
- return r[Math.floor(p)]; //Math.ceil -1 or Math.floor
- }
-};
-
-alasql.aggr.QUART2 = function(v, s, stage) {
- //Second Quartile
- return alasql.aggr.QUART(v, s, stage, 2);
-};
-alasql.aggr.QUART3 = function(v, s, stage) {
- //Third Quartile
- return alasql.aggr.QUART(v, s, stage, 3);
-};
-
-// Standard deviation
-alasql.aggr.VAR = function(v, s, stage) {
- if (stage === 1) {
- if (v === null) {
- return {arr: [], sum: 0};
- }
- return {arr: [v], sum: v};
- } else if (stage === 2) {
- if (v === null) {
- return s;
- }
- s.arr.push(v);
- s.sum += v;
- return s;
- } else {
- var N = s.arr.length;
- var avg = s.sum / N;
- var std = 0;
- for (var i = 0; i < N; i++) {
- std += (s.arr[i] - avg) * (s.arr[i] - avg);
- }
- std = std / (N - 1);
- return std;
- }
-};
-
-alasql.aggr.STDEV = function(v, s, stage) {
- if (stage === 1 || stage === 2) {
- return alasql.aggr.VAR(v, s, stage);
- } else {
- return Math.sqrt(alasql.aggr.VAR(v, s, stage));
- }
-};
-
-// Standard deviation
-// alasql.aggr.VARP = function(v,s,acc){
-
-// };
-
-alasql.aggr.VARP = function(v, s, stage) {
- if (stage == 1) {
- return {arr: [v], sum: v};
- } else if (stage == 2) {
- s.arr.push(v);
- s.sum += v;
- return s;
- } else {
- var N = s.arr.length;
- var avg = s.sum / N;
- var std = 0;
- for (var i = 0; i < N; i++) {
- std += (s.arr[i] - avg) * (s.arr[i] - avg);
- }
- std = std / N;
- return std;
- }
-};
-
-alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) {
- if (stage == 1 || stage == 2) {
- return alasql.aggr.VARP(v, s, stage);
- } else {
- return Math.sqrt(alasql.aggr.VARP(v, s, stage));
- }
-};
-
-alasql._aggrOriginal = alasql.aggr;
-alasql.aggr = {};
-Object.keys(alasql._aggrOriginal).forEach(function(k) {
- alasql.aggr[k] = function(v, s, stage) {
- if (stage === 3 && typeof s === 'undefined') return undefined;
- return alasql._aggrOriginal[k].apply(null, arguments);
- };
-});
-
-// String functions
-stdfn.REPLACE = function(target, pattern, replacement) {
- return (target || '').split(pattern).join(replacement);
-};
-
-// This array is required for fast GUID generation
-var lut = [];
-for (var i = 0; i < 256; i++) {
- lut[i] = (i < 16 ? '0' : '') + i.toString(16);
-}
-
-stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() {
- var d0 = (Math.random() * 0xffffffff) | 0;
- var d1 = (Math.random() * 0xffffffff) | 0;
- var d2 = (Math.random() * 0xffffffff) | 0;
- var d3 = (Math.random() * 0xffffffff) | 0;
- return (
- lut[d0 & 0xff] +
- lut[(d0 >> 8) & 0xff] +
- lut[(d0 >> 16) & 0xff] +
- lut[(d0 >> 24) & 0xff] +
- '-' +
- lut[d1 & 0xff] +
- lut[(d1 >> 8) & 0xff] +
- '-' +
- lut[((d1 >> 16) & 0x0f) | 0x40] +
- lut[(d1 >> 24) & 0xff] +
- '-' +
- lut[(d2 & 0x3f) | 0x80] +
- lut[(d2 >> 8) & 0xff] +
- '-' +
- lut[(d2 >> 16) & 0xff] +
- lut[(d2 >> 24) & 0xff] +
- lut[d3 & 0xff] +
- lut[(d3 >> 8) & 0xff] +
- lut[(d3 >> 16) & 0xff] +
- lut[(d3 >> 24) & 0xff]
- );
-};
-
-/*
-//
-// CASE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.CaseValue = function(params) {
- return yy.extend(this, params);
-};
-yy.CaseValue.prototype.toString = function() {
- var s = 'CASE ';
- if (this.expression) s += this.expression.toString();
- if (this.whens) {
- s += this.whens
- .map(function(w) {
- return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString();
- })
- .join();
- }
- s += ' END';
- return s;
-};
-
-yy.CaseValue.prototype.findAggregator = function(query) {
-
- if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query);
- if (this.whens && this.whens.length > 0) {
- this.whens.forEach(function(w) {
- if (w.when.findAggregator) w.when.findAggregator(query);
- if (w.then.findAggregator) w.then.findAggregator(query);
- });
- }
- if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query);
-};
-
-yy.CaseValue.prototype.toJS = function(context, tableid, defcols) {
- var s = '((function(' + context + ',params,alasql){var y,r;';
- if (this.expression) {
- // this.expression.toJS(context, tableid)
- s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';';
- s += (this.whens || [])
- .map(function(w) {
- return (
- ' if(v==' +
- w.when.toJS(context, tableid, defcols) +
- ') {r=' +
- w.then.toJS(context, tableid, defcols) +
- '}'
- );
- })
- .join(' else ');
- if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
- } else {
- s += (this.whens || [])
- .map(function(w) {
- return (
- ' if(' +
- w.when.toJS(context, tableid, defcols) +
- ') {r=' +
- w.then.toJS(context, tableid, defcols) +
- '}'
- );
- })
- .join(' else ');
- if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
- }
- // TODO remove bind from CASE
- s += ';return r;}).bind(this))(' + context + ',params,alasql)';
-
- return s;
-};
-
-/*
-//
-// JSON for Alasql.js
-// Date: 19.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Json = function(params) {
- return yy.extend(this, params);
-};
-yy.Json.prototype.toString = function() {
- var s = ''; // '@'
- s += JSONtoString(this.value);
- s += '';
- return s;
-};
-
-var JSONtoString = (alasql.utils.JSONtoString = function(obj) {
- var s = '';
- if (typeof obj == 'string') s = '"' + obj + '"';
- else if (typeof obj == 'number') s = obj;
- else if (typeof obj == 'boolean') s = obj;
- else if (typeof obj == 'object') {
- if (Array.isArray(obj)) {
- s +=
- '[' +
- obj
- .map(function(b) {
- return JSONtoString(b);
- })
- .join(',') +
- ']';
- } else if (!obj.toJS || obj instanceof yy.Json) {
- // to prevent recursion
- s = '{';
- var ss = [];
- for (var k in obj) {
- var s1 = '';
- if (typeof k == 'string') s1 += '"' + k + '"';
- else if (typeof k == 'number') s1 += k;
- else if (typeof k == 'boolean') s1 += k;
- else {
- throw new Error('THis is not ES6... no expressions on left side yet');
- }
- s1 += ':' + JSONtoString(obj[k]);
- ss.push(s1);
- }
- s += ss.join(',') + '}';
- } else if (obj.toString) {
- s = obj.toString();
- } else {
- throw new Error('1Can not show JSON object ' + JSON.stringify(obj));
- }
- } else {
- throw new Error('2Can not show JSON object ' + JSON.stringify(obj));
- }
-
- return s;
-});
-
-function JSONtoJS(obj, context, tableid, defcols) {
- var s = '';
- if (typeof obj == 'string') s = '"' + obj + '"';
- else if (typeof obj == 'number') s = '(' + obj + ')';
- else if (typeof obj == 'boolean') s = obj;
- else if (typeof obj == 'object') {
- if (Array.isArray(obj)) {
- s +=
- '[' +
- obj
- .map(function(b) {
- return JSONtoJS(b, context, tableid, defcols);
- })
- .join(',') +
- ']';
- } else if (!obj.toJS || obj instanceof yy.Json) {
- // to prevent recursion
- s = '{';
- var ss = [];
- for (var k in obj) {
- var s1 = '';
- if (typeof k == 'string') s1 += '"' + k + '"';
- else if (typeof k == 'number') s1 += k;
- else if (typeof k == 'boolean') s1 += k;
- else {
- throw new Error('THis is not ES6... no expressions on left side yet');
- }
- s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols);
- ss.push(s1);
- }
- s += ss.join(',') + '}';
- } else if (obj.toJS) {
- s = obj.toJS(context, tableid, defcols);
- } else {
- throw new Error('1Can not parse JSON object ' + JSON.stringify(obj));
- }
- } else {
- throw new Error('2Can not parse JSON object ' + JSON.stringify(obj));
- }
-
- return s;
-}
-
-yy.Json.prototype.toJS = function(context, tableid, defcols) {
- // TODO redo
- return JSONtoJS(this.value, context, tableid, defcols);
-};
-
-/*
-//
-// CAST and CONVERT functions
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Convert = function(params) {
- return yy.extend(this, params);
-};
-yy.Convert.prototype.toString = function() {
- var s = 'CONVERT(';
- s += this.dbtypeid;
- if (typeof this.dbsize != 'undefined') {
- s += '(' + this.dbsize;
- if (this.dbprecision) s += ',' + this.dbprecision;
- s += ')';
- }
- s += ',' + this.expression.toString();
- if (this.style) s += ',' + this.style;
- s += ')';
- return s;
-};
-yy.Convert.prototype.toJS = function(context, tableid, defcols) {
- // if(this.style) {
- return (
- 'alasql.stdfn.CONVERT(' +
- this.expression.toJS(context, tableid, defcols) +
- ',{dbtypeid:"' +
- this.dbtypeid +
- '",dbsize:' +
- this.dbsize +
- ',dbprecision:' +
- this.dbprecision +
- ',style:' +
- this.style +
- '})'
- );
- // }
-
- throw new Error('There is not such type conversion for ' + this.toString());
-};
-
-/**
- Convert one type to another
- */
-alasql.stdfn.CONVERT = function(value, args) {
- var val = value;
-
- if (args.style) {
- // TODO 9,109, 20,120,21,121,126,130,131 conversions
- var t;
- if (/\d{8}/.test(val)) {
- t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));
- } else {
- t = new Date(val);
- }
- switch (args.style) {
- case 1: // mm/dd/yy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 2: // yy.mm.dd
- val =
- ('0' + t.getYear()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 3: // dd/mm/yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 4: // dd.mm.yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 5: // dd-mm-yy
- val =
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 6: // dd mon yy
- val =
- ('0' + t.getDate()).substr(-2) +
- ' ' +
- t
- .toString()
- .substr(4, 3)
- .toLowerCase() +
- ' ' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 7: // Mon dd,yy
- val =
- t.toString().substr(4, 3) +
- ' ' +
- ('0' + t.getDate()).substr(-2) +
- ',' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 8: // hh:mm:ss
- case 108: // hh:mm:ss
- val =
- ('0' + t.getHours()).substr(-2) +
- ':' +
- ('0' + t.getMinutes()).substr(-2) +
- ':' +
- ('0' + t.getSeconds()).substr(-2);
- break;
- case 10: // mm-dd-yy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + t.getYear()).substr(-2);
- break;
- case 11: // yy/mm/dd
- val =
- ('0' + t.getYear()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 12: // yymmdd
- val =
- ('0' + t.getYear()).substr(-2) +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- ('0' + t.getDate()).substr(-2);
- break;
- case 101: // mm/dd/yyyy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2) +
- '/' +
- t.getFullYear();
- break;
- case 102: // yyyy.mm.dd
- val =
- t.getFullYear() +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + t.getDate()).substr(-2);
- break;
- case 103: // dd/mm/yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- t.getFullYear();
- break;
- case 104: // dd.mm.yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '.' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '.' +
- t.getFullYear();
- break;
- case 105: // dd-mm-yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- '-' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- t.getFullYear();
- break;
- case 106: // dd mon yyyy
- val =
- ('0' + t.getDate()).substr(-2) +
- ' ' +
- t
- .toString()
- .substr(4, 3)
- .toLowerCase() +
- ' ' +
- t.getFullYear();
- break;
- case 107: // Mon dd,yyyy
- val =
- t.toString().substr(4, 3) +
- ' ' +
- ('0' + t.getDate()).substr(-2) +
- ',' +
- t.getFullYear();
- break;
- case 110: // mm-dd-yyyy
- val =
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '-' +
- ('0' + t.getDate()).substr(-2) +
- '-' +
- t.getFullYear();
- break;
- case 111: // yyyy/mm/dd
- val =
- t.getFullYear() +
- '/' +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- '/' +
- ('0' + t.getDate()).substr(-2);
- break;
-
- case 112: // yyyymmdd
- val =
- t.getFullYear() +
- ('0' + (t.getMonth() + 1)).substr(-2) +
- ('0' + t.getDate()).substr(-2);
- break;
- default:
- throw new Error('The CONVERT style ' + args.style + ' is not realized yet.');
- }
- }
-
- var udbtypeid = args.dbtypeid.toUpperCase();
-
- if (args.dbtypeid == 'Date') {
- return new Date(val);
- } else if (udbtypeid == 'DATE') {
- var d = new Date(val);
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- return s;
- } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {
- var d = new Date(val);
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- s +=
- ' ' +
- ('0' + d.getHours()).substr(-2) +
- ':' +
- ('0' + d.getMinutes()).substr(-2) +
- ':' +
- ('0' + d.getSeconds()).substr(-2);
- s += '.' + ('00' + d.getMilliseconds()).substr(-3);
- return s;
- } else if (['MONEY'].indexOf(udbtypeid) > -1) {
- var m = +val;
- return (m | 0) + ((m * 100) % 100) / 100;
- } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) {
- return !!val;
- } else if (
- ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(
- args.dbtypeid.toUpperCase()
- ) > -1
- ) {
- return val | 0;
- } else if (
- ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(
- args.dbtypeid.toUpperCase()
- ) > -1
- ) {
- if (args.dbsize) return ('' + val).substr(0, args.dbsize);
- else return '' + val;
- } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) {
- return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize);
- //else return ""+val.substr(0,1);
- } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) {
- var m = +val;
- //toPrecision sets the number of numbers total in the result
- m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m;
- //toFixed sets the number of numbers to the right of the decimal
- m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m;
- return m;
- } else if (['JSON'].indexOf(udbtypeid) > -1) {
- if (typeof val == 'object') return val;
- try {
- return JSON.parse(val);
- } catch (err) {
- throw new Error('Cannot convert string to JSON');
- }
- }
- return val;
-};
-
-/*
-//
-// CREATE TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global alasql, yy, hash */
-
-yy.ColumnDef = function(params) {
- return yy.extend(this, params);
-};
-yy.ColumnDef.prototype.toString = function() {
- var s = this.columnid;
- if (this.dbtypeid) {
- s += ' ' + this.dbtypeid;
- }
-
- if (this.dbsize) {
- s += '(' + this.dbsize;
- if (this.dbprecision) {
- s += ',' + this.dbprecision;
- }
- s += ')';
- }
-
- if (this.primarykey) {
- s += ' PRIMARY KEY';
- }
-
- if (this.notnull) {
- s += ' NOT NULL';
- }
-
- return s;
-};
-
-yy.CreateTable = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateTable.prototype.toString = function() {
- var s = 'CREATE';
- if (this.temporary) {
- s += ' TEMPORARY';
- }
-
- if (this.view) {
- s += ' VIEW';
- } else {
- s += ' ' + (this["class"] ? 'CLASS' : 'TABLE');
- }
- if (this.ifnotexists) {
- s += ' IF NOT EXISTS';
- }
- s += ' ' + this.table.toString();
- if (this.viewcolumns) {
- s +=
- '(' +
- this.viewcolumns
- .map(function(vcol) {
- return vcol.toString();
- })
- .join(',') +
- ')';
- }
- if (this.as) {
- s += ' AS ' + this.as;
- } else {
- var ss = this.columns.map(function(col) {
- return col.toString();
- });
- s += ' (' + ss.join(',') + ')';
- }
-
- if (this.view && this.select) {
- s += ' AS ' + this.select.toString();
- }
-
- return s;
-};
-
-// CREATE TABLE
-//yy.CreateTable.prototype.compile = returnUndefined;
-yy.CreateTable.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[this.table.databaseid || databaseid];
-
- var tableid = this.table.tableid;
- if (!tableid) {
- throw new Error('Table name is not defined');
- }
-
- // var ifnotexists = this.ifnotexists;
- var columns = this.columns;
- // if(false) {
- // if(!columns) {
- // throw new Error('Columns are not defined');
- // }
- // }
- var constraints = this.constraints || [];
-
- // IF NOT EXISTS
- if (this.ifnotexists && db.tables[tableid]) {
- return cb ? cb(0) : 0;
- }
-
- if (db.tables[tableid]) {
- throw new Error(
- "Can not create table '" +
- tableid +
- "', because it already exists in the database '" +
- db.databaseid +
- "'"
- );
- }
-
- var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object?
- // If this is a class
- if (this["class"]) {
- table.isclass = true;
- }
-
- var ss = []; // DEFAULT function components
- var uss = []; // ON UPDATE function components
- if (columns) {
- columns.forEach(function(col) {
- var dbtypeid = col.dbtypeid;
- if (!alasql.fn[dbtypeid]) {
- dbtypeid = dbtypeid.toUpperCase();
- }
-
- // Process SERIAL data type like Postgress
- if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) {
- col.identity = {value: 1, step: 1};
- }
-
- var newcol = {
- columnid: col.columnid,
- dbtypeid: dbtypeid,
- dbsize: col.dbsize, // Fixed issue #150
- dbprecision: col.dbprecision, // Fixed issue #150
- notnull: col.notnull,
- identity: col.identity,
- };
- if (col.identity) {
- table.identities[col.columnid] = {
- value: +col.identity.value,
- step: +col.identity.step,
- };
- // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\''
- // +tableid+'\'].identities[\''+col.columnid+'\'].value)');
- }
- if (col.check) {
- table.checks.push({
- id: col.check.constrantid,
- fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')),
- });
- }
-
- if (col["default"]) {
- ss.push("'" + col.columnid + "':" + col["default"].toJS('r', ''));
- }
-
- // Check for primary key
- if (col.primarykey) {
- var pk = (table.pk = {});
- pk.columns = [col.columnid];
- pk.onrightfns = "r['" + col.columnid + "']";
- pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
- pk.hh = hash(pk.onrightfns);
- table.uniqs[pk.hh] = {};
- }
-
- // UNIQUE clause
- if (col.unique) {
- var uk = {};
- table.uk = table.uk || [];
- table.uk.push(uk);
- uk.columns = [col.columnid];
- uk.onrightfns = "r['" + col.columnid + "']";
- uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
- uk.hh = hash(uk.onrightfns);
- table.uniqs[uk.hh] = {};
- }
-
- // UNIQUE clause
- if (col.foreignkey) {
-
- var fk = col.foreignkey.table;
- var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
- if (typeof fk.columnid === 'undefined') {
- if (fktable.pk.columns && fktable.pk.columns.length > 0) {
- fk.columnid = fktable.pk.columns[0];
- } else {
- throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs');
- }
- }
-
- var fkfn = function(r) {
- var rr = {};
- if (typeof r[col.columnid] === 'undefined') {
- return true;
- }
- rr[fk.columnid] = r[col.columnid];
- var addr = fktable.pk.onrightfn(rr);
-
- if (!fktable.uniqs[fktable.pk.hh][addr]) {
- throw new Error(
- 'Foreign key "' +
- r[col.columnid] +
- '" is not found in table ' +
- fktable.tableid
- );
- }
- return true;
- };
- table.checks.push({fn: fkfn});
-
- }
-
- if (col.onupdate) {
- uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', ''));
- }
-
- table.columns.push(newcol);
- table.xcolumns[newcol.columnid] = newcol;
- });
- }
- table.defaultfns = ss.join(',');
- table.onupdatefns = uss.join(';');
-
- // if(constraints) {
- constraints.forEach(function(con) {
-
- var checkfn;
-
- if (con.type === 'PRIMARY KEY') {
- if (table.pk) {
- throw new Error('Primary key already exists');
- }
- var pk = (table.pk = {});
- pk.columns = con.columns;
- pk.onrightfns = pk.columns
- .map(function(columnid) {
- return "r['" + columnid + "']";
- })
- .join("+'`'+");
- pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
- pk.hh = hash(pk.onrightfns);
- table.uniqs[pk.hh] = {};
- } else if (con.type === 'CHECK') {
-
- checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', ''));
- } else if (con.type === 'UNIQUE') {
-
- var uk = {};
- table.uk = table.uk || [];
- table.uk.push(uk);
- uk.columns = con.columns;
- uk.onrightfns = uk.columns
- .map(function(columnid) {
- return "r['" + columnid + "']";
- })
- .join("+'`'+");
- uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
- uk.hh = hash(uk.onrightfns);
- table.uniqs[uk.hh] = {};
- } else if (con.type === 'FOREIGN KEY') {
-
- var col = table.xcolumns[con.columns[0]];
- var fk = con.fktable;
- if (con.fkcolumns && con.fkcolumns.length > 0) {
- fk.columnid = con.fkcolumns[0];
- }
- var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
- if (typeof fk.columnid === 'undefined') {
- fk.columnid = fktable.pk.columns[0];
- }
-
- checkfn = function(r) {
- var rr = {};
- if (typeof r[col.columnid] === 'undefined') {
- return true;
- }
- rr[fk.columnid] = r[col.columnid];
- var addr = fktable.pk.onrightfn(rr);
-
- if (!fktable.uniqs[fktable.pk.hh][addr]) {
-
- throw new Error(
- 'Foreign key "' +
- r[col.columnid] +
- '" is not found in table ' +
- fktable.tableid
- );
- }
- return true;
- };
- }
- if (checkfn) {
- table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'});
- }
- });
-
- if (this.view && this.viewcolumns) {
- var self = this;
- this.viewcolumns.forEach(function(vcol, idx) {
- self.select.columns[idx].as = vcol.columnid;
- });
- }
-
- //Used in 420from queryfn when table.view = true!
- if (this.view && this.select) {
- table.view = true;
-
- table.select = this.select.compile(this.table.databaseid || databaseid);
- }
-
- if (db.engineid) {
-
- return alasql.engines[db.engineid].createTable(
- this.table.databaseid || databaseid,
- tableid,
- this.ifnotexists,
- cb
- );
-
- // return res1;
- }
-
- // }
- // if(table.pk) {
-
- table.insert = function(r, orreplace) {
- var oldinserted = alasql.inserted;
- alasql.inserted = [r];
-
- var table = this;
-
- var toreplace = false; // For INSERT OR REPLACE
-
- /*
- // IDENTINY or AUTO_INCREMENT
- // if(table.identities && table.identities.length>0) {
- // table.identities.forEach(function(ident){
- // r[ident.columnid] = ident.value;
- // });
- // }
-*/
- // Trigger prevent functionality
- var prevent = false;
- for (var tr in table.beforeinsert) {
- var trigger = table.beforeinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return;
-
- // Trigger prevent functionality
- var escape = false;
- for (tr in table.insteadofinsert) {
- escape = true;
- trigger = table.insteadofinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- for (var columnid in table.identities) {
- var ident = table.identities[columnid];
-
- r[columnid] = ident.value;
-
- }
-
- if (table.checks && table.checks.length > 0) {
- table.checks.forEach(function(check) {
- if (!check.fn(r)) {
- // if(orreplace) toreplace=true; else
- throw new Error('Violation of CHECK constraint ' + (check.id || ''));
- }
- });
- }
-
- table.columns.forEach(function(column) {
- if (column.notnull && typeof r[column.columnid] === 'undefined') {
- throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
- }
- });
- if (table.pk) {
- var pk = table.pk;
- var addr = pk.onrightfn(r);
-
- if (typeof table.uniqs[pk.hh][addr] !== 'undefined') {
-
- if (orreplace) toreplace = table.uniqs[pk.hh][addr];
- else
- throw new Error(
- 'Cannot insert record, because it already exists in primary key index'
- );
- }
- // table.uniqs[pk.hh][addr]=r;
- }
-
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') {
- if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr];
- else
- throw new Error(
- 'Cannot insert record, because it already exists in unique index'
- );
- }
- // table.uniqs[uk.hh][ukaddr]=r;
- });
- }
-
- if (toreplace) {
- // Do UPDATE!!!
-
- table.update(
- function(t) {
- for (var f in r) t[f] = r[f];
- },
- table.data.indexOf(toreplace),
- params
- );
- } else {
- table.data.push(r);
-
- // Final change before insert
-
- // Update indices
-
- for (var columnid in table.identities) {
- var ident = table.identities[columnid];
-
- ident.value += ident.step;
-
- }
-
- if (table.pk) {
- var pk = table.pk;
- var addr = pk.onrightfn(r);
- table.uniqs[pk.hh][addr] = r;
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- table.uniqs[uk.hh][ukaddr] = r;
- });
- }
- }
-
- // Trigger prevent functionality
- for (var tr in table.afterinsert) {
- var trigger = table.afterinsert[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- alasql.inserted = oldinserted;
- };
-
- table["delete"] = function(index) {
- var table = this;
- var r = table.data[index];
-
- // Prevent trigger
- var prevent = false;
- for (var tr in table.beforedelete) {
- var trigger = table.beforedelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return false;
-
- // Trigger prevent functionality
- var escape = false;
- for (var tr in table.insteadofdelete) {
- escape = true;
- var trigger = table.insteadofdelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- if (this.pk) {
- var pk = this.pk;
- var addr = pk.onrightfn(r);
- if (typeof this.uniqs[pk.hh][addr] === 'undefined') {
- throw new Error('Something wrong with primary key index on table');
- } else {
- this.uniqs[pk.hh][addr] = undefined;
- }
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- var ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') {
- throw new Error('Something wrong with unique index on table');
- }
- table.uniqs[uk.hh][ukaddr] = undefined;
- });
- }
- };
-
- table.deleteall = function() {
- this.data.length = 0;
- if (this.pk) {
- // var r = this.data[i];
- this.uniqs[this.pk.hh] = {};
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- table.uniqs[uk.hh] = {};
- });
- }
- };
-
- table.update = function(assignfn, i, params) {
- // TODO: Analyze the speed
- var r = cloneDeep(this.data[i]);
-
- var pk;
- // PART 1 - PRECHECK
- if (this.pk) {
- pk = this.pk;
- pk.pkaddr = pk.onrightfn(r, params);
- if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') {
- throw new Error('Something wrong with index on table');
- }
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- uk.ukaddr = uk.onrightfn(r);
- if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') {
- throw new Error('Something wrong with unique index on table');
- }
- });
- }
-
- assignfn(r, params, alasql);
-
- // Prevent trigger
- var prevent = false;
- for (var tr in table.beforeupdate) {
- var trigger = table.beforeupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- if (alasql.fn[trigger.funcid](this.data[i], r) === false)
- prevent = prevent || true;
- } else if (trigger.statement) {
- if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
- }
- }
- }
- if (prevent) return false;
-
- // Trigger prevent functionality
- var escape = false;
- for (var tr in table.insteadofupdate) {
- escape = true;
- var trigger = table.insteadofupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](this.data[i], r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- if (escape) return;
-
- // PART 2 - POST CHECK
- if (table.checks && table.checks.length > 0) {
- table.checks.forEach(function(check) {
- if (!check.fn(r)) {
- throw new Error('Violation of CHECK constraint ' + (check.id || ''));
- }
- });
- }
-
- table.columns.forEach(function(column) {
- if (column.notnull && typeof r[column.columnid] === 'undefined') {
- throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
- }
- });
- if (this.pk) {
- pk.newpkaddr = pk.onrightfn(r);
- if (
- typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' &&
- pk.newpkaddr !== pk.pkaddr
- ) {
- throw new Error('Record already exists');
- }
- }
-
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- uk.newukaddr = uk.onrightfn(r);
- if (
- typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' &&
- uk.newukaddr !== uk.ukaddr
- ) {
- throw new Error('Record already exists');
- }
- });
- }
-
- // PART 3 UPDATE
- if (this.pk) {
- this.uniqs[pk.hh][pk.pkaddr] = undefined;
- this.uniqs[pk.hh][pk.newpkaddr] = r;
- }
- if (table.uk && table.uk.length) {
- table.uk.forEach(function(uk) {
- table.uniqs[uk.hh][uk.ukaddr] = undefined;
- table.uniqs[uk.hh][uk.newukaddr] = r;
- });
- }
-
- this.data[i] = r;
-
- // Trigger prevent functionality
- for (var tr in table.afterupdate) {
- var trigger = table.afterupdate[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid](this.data[i], r);
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
- };
-
- var res;
-
- if (!alasql.options.nocount) {
- res = 1;
- }
-
- if (cb) res = cb(res);
- return res;
-};
-
-//
-// Date functions
-//
-// (c) 2014, Andrey Gershun
-//
-
-/** Standard JavaScript data types */
-
-alasql.fn.Date = Object;
-alasql.fn.Date = Date;
-alasql.fn.Number = Number;
-alasql.fn.String = String;
-alasql.fn.Boolean = Boolean;
-
-/** Extend Object with properties */
-stdfn.EXTEND = alasql.utils.extend;
-
-stdfn.CHAR = String.fromCharCode.bind(String);
-stdfn.ASCII = function(a) {
- return a.charCodeAt(0);
-};
-
-/**
- Return first non-null argument
- See https://msdn.microsoft.com/en-us/library/ms190349.aspx
-*/
-stdfn.COALESCE = function() {
- for (var i = 0; i < arguments.length; i++) {
- if (typeof arguments[i] == 'undefined') continue;
- if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue;
- return arguments[i];
- }
- return undefined;
-};
-
-stdfn.USER = function() {
- return 'alasql';
-};
-
-stdfn.OBJECT_ID = function(objid) {
- return !!alasql.tables[objid];
-};
-
-stdfn.DATE = function(d) {
- if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));
- return new Date(d);
-};
-
-stdfn.NOW = function() {
- var d = new Date();
- var s =
- d.getFullYear() +
- '.' +
- ('0' + (d.getMonth() + 1)).substr(-2) +
- '.' +
- ('0' + d.getDate()).substr(-2);
- s +=
- ' ' +
- ('0' + d.getHours()).substr(-2) +
- ':' +
- ('0' + d.getMinutes()).substr(-2) +
- ':' +
- ('0' + d.getSeconds()).substr(-2);
- s += '.' + ('00' + d.getMilliseconds()).substr(-3);
- return s;
-};
-
-stdfn.GETDATE = stdfn.NOW;
-stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
-
-stdfn.SECOND = function(d) {
- var d = new Date(d);
- return d.getSeconds();
-};
-
-stdfn.MINUTE = function(d) {
- var d = new Date(d);
- return d.getMinutes();
-};
-
-stdfn.HOUR = function(d) {
- var d = new Date(d);
- return d.getHours();
-};
-
-stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) {
- var d = new Date(d);
- return d.getDay();
-};
-
-stdfn.DAY = stdfn.DAYOFMONTH = function(d) {
- var d = new Date(d);
- return d.getDate();
-};
-
-stdfn.MONTH = function(d) {
- var d = new Date(d);
- return d.getMonth() + 1;
-};
-
-stdfn.YEAR = function(d) {
- var d = new Date(d);
- return d.getFullYear();
-};
-
-var PERIODS = {
- year: 1000 * 3600 * 24 * 365,
- quarter: 1000 * 3600 * 24 * 365 / 4,
- month: 1000 * 3600 * 24 * 30,
- week: 1000 * 3600 * 24 * 7,
- day: 1000 * 3600 * 24,
- dayofyear: 1000 * 3600 * 24,
- weekday: 1000 * 3600 * 24,
- hour: 1000 * 3600,
- minute: 1000 * 60,
- second: 1000,
- millisecond: 1,
- microsecond: 0.001,
-};
-
-alasql.stdfn.DATEDIFF = function(period, d1, d2) {
- var interval = new Date(d2).getTime() - new Date(d1).getTime();
- return interval / PERIODS[period.toLowerCase()];
-};
-
-alasql.stdfn.DATEADD = function(period, interval, d) {
- var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()];
- return new Date(nd);
-};
-
-alasql.stdfn.INTERVAL = function(interval, period) {
- return interval * PERIODS[period.toLowerCase()];
-};
-
-alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) {
- var nd = new Date(d).getTime() + interval;
- return new Date(nd);
-};
-
-alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) {
- var nd = new Date(d).getTime() - interval;
- return new Date(nd);
-};
-
-/*
-//
-// DROP TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.DropTable = function(params) {
- return yy.extend(this, params);
-};
-yy.DropTable.prototype.toString = function() {
- var s = 'DROP' + ' ';
- if (this.view) s += 'VIEW';
- else s += 'TABLE';
- if (this.ifexists) s += ' IF EXISTS';
- s += ' ' + this.tables.toString();
- return s;
-};
-
-// DROP TABLE
-/**
- Drop tables
- @param {string} databaseid Database id
- @param {object} params Parameters
- @param {callback} cb Callback function
- @return Number of dropped tables
- @example
- DROP TABLE one;
- DROP TABLE IF NOT EXISTS two, three;
-*/
-yy.DropTable.prototype.execute = function(databaseid, params, cb) {
- var ifexists = this.ifexists;
- var res = 0; // No tables removed
- var count = 0;
- var tlen = this.tables.length;
-
- // For each table in the list
- this.tables.forEach(function(table) {
- var db = alasql.databases[table.databaseid || databaseid];
- var tableid = table.tableid;
-
- /** @todo Test with AUTOCOMMIT flag is ON */
- /** @todo Test with IndexedDB and multiple tables */
-
- if (!ifexists || (ifexists && db.tables[tableid])) {
- if (!db.tables[tableid]) {
- if (!alasql.options.dropifnotexists) {
- throw new Error(
- "Can not drop table '" +
- table.tableid +
- "', because it does not exist in the database."
- );
- }
- } else {
- if (db.engineid /*&& alasql.options.autocommit*/) {
- alasql.engines[db.engineid].dropTable(
- table.databaseid || databaseid,
- tableid,
- ifexists,
- function(res1) {
- delete db.tables[tableid];
- res += res1;
- count++;
- if (count == tlen && cb) cb(res);
- }
- );
- } else {
- delete db.tables[tableid];
- res++;
- count++;
- if (count == tlen && cb) cb(res);
- }
- }
- } else {
- count++;
- if (count == tlen && cb) cb(res);
- }
- });
- // if(cb) res = cb(res);
- return res;
-};
-
-yy.TruncateTable = function(params) {
- return yy.extend(this, params);
-};
-yy.TruncateTable.prototype.toString = function() {
- var s = 'TRUNCATE TABLE';
- s += ' ' + this.table.toString();
- return s;
-};
-
-yy.TruncateTable.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- var tableid = this.table.tableid;
- if (db.engineid) {
- return alasql.engines[db.engineid].truncateTable(
- this.table.databaseid || databaseid,
- tableid,
- this.ifexists,
- cb
- );
- }
- if (db.tables[tableid]) {
- db.tables[tableid].data = [];
- } else {
- throw new Error('Cannot truncate table becaues it does not exist');
- }
- return cb ? cb(0) : 0;
-};
-
-/*
-//
-// CREATE VERTEX for AlaSQL
-// Date: 21.04.2015
-// (c) 2015, Andrey Gershun
-//
-*/
-
-yy.CreateVertex = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateVertex.prototype.toString = function() {
- var s = 'CREATE VERTEX ';
- if (this["class"]) {
- s += this["class"] + ' ';
- }
- if (this.sharp) {
- s += '#' + this.sharp + ' ';
- }
- if (this.sets) {
- s += this.sets.toString();
- } else if (this.content) {
- s += this.content.toString();
- } else if (this.select) {
- s += this.select.toString();
- }
-
- return s;
-};
-
-yy.CreateVertex.prototype.toJS = function(context) {
-
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
- // var s = '';
- return s;
-};
-
-// CREATE TABLE
-
-yy.CreateVertex.prototype.compile = function(databaseid) {
- var dbid = databaseid;
-
- // CREATE VERTEX #id
- var sharp = this.sharp;
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', s);
- }
-
- // Todo: check for content, select and default
-
- var statement = function(params, cb) {
- var res;
-
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var id;
- if (typeof sharp !== 'undefined') {
- id = sharp;
- } else {
- id = db.counter++;
- }
- var vertex = {$id: id, $node: 'VERTEX'};
- db.objects[vertex.$id] = vertex;
- res = vertex;
- if (namefn) {
- namefn(vertex);
- }
- if (setfn) {
- setfn(vertex, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
- return res;
- };
- return statement;
-};
-
-yy.CreateEdge = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateEdge.prototype.toString = function() {
-
- var s = 'CREATE EDGE' + ' ';
- if (this["class"]) {
- s += this["class"] + ' ';
- }
- // todo: SET
- // todo: CONTENT
- // todo: SELECT
- return s;
-};
-
-yy.CreateEdge.prototype.toJS = function(context) {
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
- return s;
-};
-
-// CREATE TABLE
-
-yy.CreateEdge.prototype.compile = function(databaseid) {
- var dbid = databaseid;
- var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
- var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', 'var y;' + s);
- }
-
- /*
- todo: handle content, select and default
- else if(this.content) {
-
- } else if(this.select) {
-
- } else {
- }
- */
-
- var statement = function(params, cb) {
- var res = 0;
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var edge = {$id: db.counter++, $node: 'EDGE'};
- var v1 = fromfn(params, alasql);
- var v2 = tofn(params, alasql);
- // Set link
- edge.$in = [v1.$id];
- edge.$out = [v2.$id];
- // Set sides
- if (v1.$out === undefined) {
- v1.$out = [];
- }
- v1.$out.push(edge.$id);
-
- if (typeof v2.$in === undefined) {
- v2.$in = [];
- }
- v2.$in.push(edge.$id);
-
- // Save in objects
- db.objects[edge.$id] = edge;
- res = edge;
- if (namefn) {
- namefn(edge);
- }
-
- if (setfn) {
- setfn(edge, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
-
- return res;
- };
- return statement;
-};
-
-yy.CreateGraph = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateGraph.prototype.toString = function() {
- var s = 'CREATE GRAPH' + ' ';
- if (this["class"]) {
- s += this["class"] + ' ';
- }
- return s;
-};
-
-yy.CreateGraph.prototype.execute = function(databaseid, params, cb) {
- var res = [];
- if (this.from) {
- if (alasql.from[this.from.funcid]) {
- this.graph = alasql.from[this.from.funcid.toUpperCase()];
- }
- }
-
- // stop;
- this.graph.forEach(function(g) {
- if (g.source) {
- // GREATE EDGE
- var e = {};
- if (typeof g.as !== 'undefined') {
- alasql.vars[g.as] = e;
- }
-
- if (typeof g.prop !== 'undefined') {
- // e[g.prop] = e;
- // v.$id = g.prop; // We do not create $id for edge automatically
- e.name = g.prop;
- }
- if (typeof g.sharp !== 'undefined') {
- e.$id = g.sharp;
- }
- if (typeof g.name !== 'undefined') {
- e.name = g.name;
- }
- if (typeof g["class"] !== 'undefined') {
- e.$class = g["class"];
- }
-
- var db = alasql.databases[databaseid];
- if (typeof e.$id === 'undefined') {
- e.$id = db.counter++;
- }
- e.$node = 'EDGE';
- if (typeof g.json !== 'undefined') {
- extend(
- e,
- new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
- );
- }
-
- var v1;
- if (g.source.vars) {
- var vo = alasql.vars[g.source.vars];
- if (typeof vo === 'object') {
- v1 = vo;
- } else {
- v1 = db.objects[vo];
- }
- } else {
- var av1 = g.source.sharp;
- if (typeof av1 === 'undefined') {
- av1 = g.source.prop;
- }
- v1 = alasql.databases[databaseid].objects[av1];
- if (
- typeof v1 === 'undefined' &&
- alasql.options.autovertex &&
- (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined')
- ) {
- v1 = findVertex(g.source.prop || g.source.name);
- if (typeof v1 === 'undefined') {
- v1 = createVertex(g.source);
- }
- }
- }
-
- var v2;
- if (g.source.vars) {
- var vo = alasql.vars[g.target.vars];
- if (typeof vo === 'object') {
- v2 = vo;
- } else {
- v2 = db.objects[vo];
- }
- } else {
- var av2 = g.target.sharp;
- if (typeof av2 === 'undefined') {
- av2 = g.target.prop;
- }
- v2 = alasql.databases[databaseid].objects[av2];
- if (
- typeof v2 === 'undefined' &&
- alasql.options.autovertex &&
- (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined')
- ) {
- v2 = findVertex(g.target.prop || g.target.name);
- if (typeof v2 === 'undefined') {
- v2 = createVertex(g.target);
- }
- }
- }
-
- // Set link
- e.$in = [v1.$id];
- e.$out = [v2.$id];
- // Set sides
- if (typeof v1.$out === 'undefined') {
- v1.$out = [];
- }
- v1.$out.push(e.$id);
- if (typeof v2.$in === 'undefined') {
- v2.$in = [];
- }
- v2.$in.push(e.$id);
-
- db.objects[e.$id] = e;
- if (typeof e.$class !== 'undefined') {
- if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') {
- throw new Error('No such class. Pleace use CREATE CLASS');
- } else {
- // TODO - add insert()
- alasql.databases[databaseid].tables[e.$class].data.push(e);
- }
- }
-
- res.push(e.$id);
- } else {
- createVertex(g);
- }
- });
-
- if (cb) {
- res = cb(res);
- }
- return res;
-
- // Find vertex by name
- function findVertex(name) {
- var objects = alasql.databases[alasql.useid].objects;
- for (var k in objects) {
- if (objects[k].name === name) {
- return objects[k];
- }
- }
- return undefined;
- }
-
- function createVertex(g) {
- // GREATE VERTEX
- var v = {};
- if (typeof g.as !== 'undefined') {
- alasql.vars[g.as] = v;
- }
-
- if (typeof g.prop !== 'undefined') {
- // v[g.prop] = true;
- v.$id = g.prop;
- v.name = g.prop;
- }
-
- if (typeof g.sharp !== 'undefined') {
- v.$id = g.sharp;
- }
- if (typeof g.name !== 'undefined') {
- v.name = g.name;
- }
- if (typeof g["class"] !== 'undefined') {
- v.$class = g["class"];
- }
-
- var db = alasql.databases[databaseid];
- if (typeof v.$id === 'undefined') {
- v.$id = db.counter++;
- }
- v.$node = 'VERTEX';
- if (typeof g.json !== 'undefined') {
- extend(
- v,
- new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
- );
- }
- db.objects[v.$id] = v;
- if (typeof v.$class !== 'undefined') {
- if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') {
- throw new Error('No such class. Pleace use CREATE CLASS');
- } else {
- // TODO - add insert()
- alasql.databases[databaseid].tables[v.$class].data.push(v);
- }
- }
-
- res.push(v.$id);
- return v;
- }
-};
-
-yy.CreateGraph.prototype.compile1 = function(databaseid) {
- var dbid = databaseid;
- var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
- var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
-
- // CREATE VERTEX "Name"
- if (typeof this.name !== 'undefined') {
- var s = 'x.name=' + this.name.toJS();
- var namefn = new Function('x', s);
- }
-
- if (this.sets && this.sets.length > 0) {
- var s = this.sets
- .map(function(st) {
- return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
- })
- .join(';');
- var setfn = new Function('x,params,alasql', 'var y;' + s);
- }
-
- // Todo: handle content, select and default
-
- var statement = function(params, cb) {
- var res = 0;
- // CREATE VERTEX without parameters
- var db = alasql.databases[dbid];
- var edge = {$id: db.counter++, $node: 'EDGE'};
- var v1 = fromfn(params, alasql);
- var v2 = tofn(params, alasql);
- // Set link
- edge.$in = [v1.$id];
- edge.$out = [v2.$id];
- // Set sides
- if (typeof v1.$out === 'undefined') {
- v1.$out = [];
- }
- v1.$out.push(edge.$id);
-
- if (typeof v2.$in === 'undefined') {
- v2.$in = [];
- }
- v2.$in.push(edge.$id);
- // Save in objects
- db.objects[edge.$id] = edge;
- res = edge;
- if (namefn) {
- namefn(edge);
- }
- if (setfn) {
- setfn(edge, params, alasql);
- }
-
- if (cb) {
- res = cb(res);
- }
- return res;
- };
- return statement;
-};
-
-/*
-//
-// ALTER TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-/* global alasql yy */
-
-// ALTER TABLE table1 RENAME TO table2
-yy.AlterTable = function(params) {
- return yy.extend(this, params);
-};
-yy.AlterTable.prototype.toString = function() {
- var s = 'ALTER TABLE ' + this.table.toString();
- if (this.renameto) s += ' RENAME TO ' + this.renameto;
- return s;
-};
-
-yy.AlterTable.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[databaseid];
- db.dbversion = Date.now();
-
- if (this.renameto) {
- var oldtableid = this.table.tableid;
- var newtableid = this.renameto;
- var res = 1;
- if (db.tables[newtableid]) {
- throw new Error(
- "Can not rename a table '" +
- oldtableid +
- "' to '" +
- newtableid +
- "', because the table with this name already exists"
- );
- } else if (newtableid === oldtableid) {
- throw new Error("Can not rename a table '" + oldtableid + "' to itself");
- } else {
- db.tables[newtableid] = db.tables[oldtableid];
- delete db.tables[oldtableid];
- res = 1;
- }
- if (cb) cb(res);
- return res;
- } else if (this.addcolumn) {
- db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.addcolumn.columnid;
- if (table.xcolumns[columnid]) {
- throw new Error(
- 'Cannot add column "' +
- columnid +
- '", because it already exists in the table "' +
- tableid +
- '"'
- );
- }
-
- var col = {
- columnid: columnid,
- dbtypeid: this.dbtypeid,
- dbsize: this.dbsize,
- dbprecision: this.dbprecision,
- dbenum: this.dbenum,
- defaultfns: null, // TODO defaultfns!!!
- };
-
- var defaultfn = function() {};
-
- table.columns.push(col);
- table.xcolumns[columnid] = col;
-
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
-
- table.data[i][columnid] = defaultfn();
- }
-
- // TODO
- return cb ? cb(1) : 1;
- } else if (this.modifycolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.modifycolumn.columnid;
-
- if (!table.xcolumns[columnid]) {
- throw new Error(
- 'Cannot modify column "' +
- columnid +
- '", because it was not found in the table "' +
- tableid +
- '"'
- );
- }
-
- col = table.xcolumns[columnid];
- col.dbtypeid = this.dbtypeid;
- col.dbsize = this.dbsize;
- col.dbprecision = this.dbprecision;
- col.dbenum = this.dbenum;
-
- // TODO
- return cb ? cb(1) : 1;
- } else if (this.renamecolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
-
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.renamecolumn;
- var tocolumnid = this.to;
-
- var col;
- if (!table.xcolumns[columnid]) {
- throw new Error(
- 'Column "' + columnid + '" is not found in the table "' + tableid + '"'
- );
- }
- if (table.xcolumns[tocolumnid]) {
- throw new Error(
- 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"'
- );
- }
-
- if (columnid != tocolumnid) {
- for (var j = 0; j < table.columns.length; j++) {
- if (table.columns[j].columnid == columnid) {
- table.columns[j].columnid = tocolumnid;
- }
- }
-
- table.xcolumns[tocolumnid] = table.xcolumns[columnid];
- delete table.xcolumns[columnid];
-
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
-
- table.data[i][tocolumnid] = table.data[i][columnid];
- delete table.data[i][columnid];
- }
- return table.data.length;
- } else {
- return cb ? cb(0) : 0;
- }
- } else if (this.dropcolumn) {
- var db = alasql.databases[this.table.databaseid || databaseid];
- db.dbversion++;
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var columnid = this.dropcolumn;
-
- var found = false;
- for (var j = 0; j < table.columns.length; j++) {
- if (table.columns[j].columnid == columnid) {
- found = true;
- table.columns.splice(j, 1);
- break;
- }
- }
-
- if (!found) {
- throw new Error(
- 'Cannot drop column "' +
- columnid +
- '", because it was not found in the table "' +
- tableid +
- '"'
- );
- }
-
- delete table.xcolumns[columnid];
-
- for (i = 0, ilen = table.data.length; i < ilen; i++) {
- delete table.data[i][columnid];
- }
- return cb ? cb(table.data.length) : table.data.length;
- } else {
- throw Error('Unknown ALTER TABLE method');
- }
-};
-
-/*
-//
-// CREATE TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.CreateIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateIndex.prototype.toString = function() {
- var s = 'CREATE';
- if (this.unique) s += ' UNIQUE';
- s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString();
- s += '(' + this.columns.toString() + ')';
- return s;
-};
-
-// CREATE TABLE
-yy.CreateIndex.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[databaseid];
- var tableid = this.table.tableid;
- var table = db.tables[tableid];
- var indexid = this.indexid;
- db.indices[indexid] = tableid;
-
- var rightfns = this.columns
- .map(function(expr) {
- return expr.expression.toJS('r', '');
- })
- .join("+'`'+");
-
- var rightfn = new Function('r,params,alasql', 'return ' + rightfns);
-
- if (this.unique) {
- table.uniqdefs[indexid] = {
- rightfns: rightfns,
- };
- var ux = (table.uniqs[indexid] = {});
- if (table.data.length > 0) {
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- var addr = rightfns(table.data[i]);
- if (!ux[addr]) {
- ux[addr] = {num: 0};
- }
- ux[addr].num++;
- }
- }
- } else {
- var hh = hash(rightfns);
- table.inddefs[indexid] = {rightfns: rightfns, hh: hh};
- table.indices[hh] = {};
-
- var ix = (table.indices[hh] = {});
- if (table.data.length > 0) {
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- var addr = rightfn(table.data[i], params, alasql);
- if (!ix[addr]) {
- ix[addr] = [];
- }
- ix[addr].push(table.data[i]);
- }
- }
- }
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.Reindex = function(params) {
- return yy.extend(this, params);
-};
-yy.Reindex.prototype.toString = function() {
- var s = 'REINDEX ' + this.indexid;
- return s;
-};
-
-// CREATE TABLE
-yy.Reindex.prototype.execute = function(databaseid, params, cb) {
- // var self = this;
- var db = alasql.databases[databaseid];
- var indexid = this.indexid;
-
- var tableid = db.indices[indexid];
- var table = db.tables[tableid];
- table.indexColumns();
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// DROP TABLE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.DropIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.DropIndex.prototype.toString = function() {
- return 'DROP INDEX' + this.indexid;
-};
-
-// DROP TABLE
-yy.DropIndex.prototype.compile = function(db) {
- var indexid = this.indexid;
- return function() {
- return 1;
- };
-};
-
-/*
-//
-// WITH SELECT for Alasql.js
-// Date: 11.01.2015
-// (c) 2015, Andrey Gershun
-//
-*/
-
-yy.WithSelect = function(params) {
- return yy.extend(this, params);
-};
-yy.WithSelect.prototype.toString = function() {
- var s = 'WITH ';
- s +=
- this.withs
- .map(function(w) {
- return w.name + ' AS (' + w.select.toString() + ')';
- })
- .join(',') + ' ';
- s += this.select.toString();
- return s;
-};
-
-yy.WithSelect.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- // Create temporary tables
- var savedTables = [];
- self.withs.forEach(function(w) {
- savedTables.push(alasql.databases[databaseid].tables[w.name]);
- var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name}));
- tb.data = w.select.execute(databaseid, params);
- });
-
- var res = 1;
- res = this.select.execute(databaseid, params, function(data) {
- // Clear temporary tables
- // setTimeout(function(){
- self.withs.forEach(function(w, idx) {
- if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx];
- else delete alasql.databases[databaseid].tables[w.name];
- });
- // },0);
-
- if (cb) data = cb(data);
- return data;
- });
- return res;
-};
-
-/*
-//
-// IF for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.If = function(params) {
- return yy.extend(this, params);
-};
-yy.If.prototype.toString = function() {
- var s = 'IF' + ' ';
- s += this.expression.toString();
- s += ' ' + this.thenstat.toString();
- if (this.elsestat) s += ' ELSE ' + this.thenstat.toString();
- return s;
-};
-
-// CREATE TABLE
-
-yy.If.prototype.execute = function(databaseid, params, cb) {
- var res;
-
- var fn = new Function(
- 'params,alasql,p',
- 'var y;return ' + this.expression.toJS('({})', '', null)
- ).bind(this);
-
- if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb);
- else {
- if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb);
- else {
- if (cb) res = cb(res);
- }
- }
- // else res = this.elsestat.execute(databaseid,params,cb,scope);
- return res;
-};
-
-/*
-//
-// CREATE VIEW for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.While = function(params) {
- return yy.extend(this, params);
-};
-yy.While.prototype.toString = function() {
- var s = 'WHILE ';
- s += this.expression.toString();
- s += ' ' + this.loopstat.toString();
- return s;
-};
-
-yy.While.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- var res = [];
-
- var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS());
-
- if (cb) {
- var first = false;
- loop();
- function loop(data) {
- if (first) {
- res.push(data);
- } else {
- first = true;
- }
- setTimeout(function() {
- if (fn(params, alasql)) {
- self.loopstat.execute(databaseid, params, loop);
- } else {
- res = cb(res);
- }
- }, 0);
- }
- } else {
- while (fn(params, alasql)) {
- var res1 = self.loopstat.execute(databaseid, params);
- res.push(res1);
- }
- }
- return res;
-};
-
-yy.Break = function(params) {
- return yy.extend(this, params);
-};
-yy.Break.prototype.toString = function() {
- var s = 'BREAK';
- return s;
-};
-
-yy.Break.prototype.execute = function(databaseid, params, cb, scope) {
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.Continue = function(params) {
- return yy.extend(this, params);
-};
-yy.Continue.prototype.toString = function() {
- var s = 'CONTINUE';
- return s;
-};
-
-yy.Continue.prototype.execute = function(databaseid, params, cb, scope) {
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-yy.BeginEnd = function(params) {
- return yy.extend(this, params);
-};
-yy.BeginEnd.prototype.toString = function() {
- var s = 'BEGIN ' + this.statements.toString() + ' END';
- return s;
-};
-
-yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) {
- var self = this;
- var res = [];
-
- var idx = 0;
- runone();
- function runone() {
- self.statements[idx].execute(databaseid, params, function(data) {
- res.push(data);
- idx++;
- if (idx < self.statements.length) return runone();
- if (cb) res = cb(res);
- });
- }
- return res;
-};
-
-/*
-//
-// INSERT for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql*/
-yy.Insert = function(params) {
- return yy.extend(this, params);
-};
-yy.Insert.prototype.toString = function() {
- var s = 'INSERT ';
- if (this.orreplace) s += 'OR REPLACE ';
- if (this.replaceonly) s = 'REPLACE ';
- s += 'INTO ' + this.into.toString();
- if (this.columns) s += '(' + this.columns.toString() + ')';
- if (this.values) s += ' VALUES ' + this.values.toString();
- if (this.select) s += ' ' + this.select.toString();
- return s;
-};
-
-yy.Insert.prototype.toJS = function(context, tableid, defcols) {
-
- // if(this.expression.reduced) return 'true';
- // return this.expression.toJS(context, tableid, defcols);
-
- // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
-
- var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
-
- return s;
-};
-
-yy.Insert.prototype.compile = function(databaseid) {
- var self = this;
- databaseid = self.into.databaseid || databaseid;
- var db = alasql.databases[databaseid];
-
- var tableid = self.into.tableid;
- var table = db.tables[tableid];
-
- if (!table) {
- throw "Table '" + tableid + "' could not be found";
- }
-
- // Check, if this dirty flag is required
- var s = '';
- var sw = '';
- var s = "db.tables['" + tableid + "'].dirty=true;";
- var s3 = 'var a,aa=[],x;';
-
- var s33;
-
- // INSERT INTO table VALUES
- if (this.values) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- self.values.forEach(function(values) {
- var ss = [];
-
- // s += 'db.tables[\''+tableid+'\'].data.push({';
-
- // s += '';
- if (self.columns) {
- self.columns.forEach(function(col, idx) {
-
- // ss.push(col.columnid +':'+ self.values[idx].value.toString());
-
- // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined;
-
- // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0;
- // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value];
- var q = "'" + col.columnid + "':";
- if (table.xcolumns && table.xcolumns[col.columnid]) {
- if (
- ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(
- table.xcolumns[col.columnid].dbtypeid
- ) >= 0
- ) {
- //q += ''
- q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)';
- } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) {
- q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '(';
- q += values[idx].toJS();
- q += '))';
- } else {
- q += values[idx].toJS();
- }
- } else {
- q += values[idx].toJS();
- }
- ss.push(q);
- });
- } else {
- // var table = db.tables[tableid];
-
- if (Array.isArray(values) && table.columns && table.columns.length > 0) {
- table.columns.forEach(function(col, idx) {
- var q = "'" + col.columnid + "':";
- // var val = values[idx].toJS();
-
- if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) {
- q += '+' + values[idx].toJS();
- } else if (alasql.fn[col.dbtypeid]) {
- q += '(new ' + col.dbtypeid + '(';
- q += values[idx].toJS();
- q += '))';
- } else {
- q += values[idx].toJS();
- }
-
- ss.push(q);
-
- });
- } else {
-
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
- sw = JSONtoJS(values);
- }
- }
-
- if (db.tables[tableid].defaultfns) {
- ss.unshift(db.tables[tableid].defaultfns);
- }
- if (sw) {
- s += 'a=' + sw + ';';
- } else {
- s += 'a={' + ss.join(',') + '};';
- }
-
- // If this is a class
- if (db.tables[tableid].isclass) {
- s += "var db=alasql.databases['" + databaseid + "'];";
- s += 'a.$class="' + tableid + '";';
- s += 'a.$id=db.counter++;';
- s += 'db.objects[a.$id]=a;';
- }
- // s += 'db.tables[\''+tableid+'\'].insert(r);';
- if (db.tables[tableid].insert) {
- s += "var db=alasql.databases['" + databaseid + "'];";
- s +=
- "db.tables['" +
- tableid +
- "'].insert(a," +
- (self.orreplace ? 'true' : 'false') +
- ');';
- } else {
- s += 'aa.push(a);';
- }
- });
-
- s33 = s3 + s;
-
- if (db.tables[tableid].insert) {
- // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);';
- } else {
- s +=
- "alasql.databases['" +
- databaseid +
- "'].tables['" +
- tableid +
- "'].data=" +
- "alasql.databases['" +
- databaseid +
- "'].tables['" +
- tableid +
- "'].data.concat(aa);";
- }
-
- if (db.tables[tableid].insert) {
- if (db.tables[tableid].isclass) {
- s += 'return a.$id;';
- } else {
- s += 'return ' + self.values.length;
- }
- } else {
- s += 'return ' + self.values.length;
- }
-
- var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this);
-
- // INSERT INTO table SELECT
- } else if (this.select) {
- this.select.modifier = 'RECORDSET';
- var selectfn = this.select.compile(databaseid);
- if (db.engineid && alasql.engines[db.engineid].intoTable) {
- var statement = function(params, cb) {
- var aa = selectfn(params);
- var res = alasql.engines[db.engineid].intoTable(
- db.databaseid,
- tableid,
- aa.data,
- null,
- cb
- );
- return res;
- };
- return statement;
- } else {
-
- var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})';
- var defaultfn = new Function('r,db,params,alasql', defaultfns);
- var insertfn = function(db, params, alasql) {
- var res = selectfn(params).data;
- if (db.tables[tableid].insert) {
- // If insert() function exists (issue #92)
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- var r = cloneDeep(res[i]);
- defaultfn(r, db, params, alasql);
- db.tables[tableid].insert(r, self.orreplace);
- }
- } else {
- db.tables[tableid].data = db.tables[tableid].data.concat(res);
- }
- if (alasql.options.nocount) return;
- else return res.length;
- };
- }
- } else if (this["default"]) {
- var insertfns =
- "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;';
- var insertfn = new Function('db,params,alasql', insertfns);
- } else {
- throw new Error('Wrong INSERT parameters');
- }
-
- if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) {
- var statement = function(params, cb) {
- var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params);
-
- var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb);
- // if(cb) cb(res);
- return res;
- };
- } else {
- var statement = function(params, cb) {
-
- var db = alasql.databases[databaseid];
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var res = insertfn(db, params, alasql);
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
- // var res = insertfn(db, params);
- if (alasql.options.nocount) res = undefined;
- if (cb) cb(res);
- return res;
- };
- }
-
- return statement;
-};
-
-yy.Insert.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
- // throw new Error('Insert statement is should be compiled')
-};
-
-/*
-//
-// TRIGGER for Alasql.js
-// Date: 29.12.2015
-//
-*/
-
-yy.CreateTrigger = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateTrigger.prototype.toString = function() {
- var s = 'CREATE TRIGGER ' + this.trigger + ' ';
- if (this.when) s += this.when + ' ';
- s += this.action + ' ON ';
- if (this.table.databaseid) s += this.table.databaseid + '.';
- s += this.table.tableid + ' ';
- s += this.statement.toString();
- return s;
-};
-
-yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) {
- var res = 1; // No tables removed
- var triggerid = this.trigger;
- databaseid = this.table.databaseid || databaseid;
- var db = alasql.databases[databaseid];
- var tableid = this.table.tableid;
-
- var trigger = {
- action: this.action,
- when: this.when,
- statement: this.statement,
- funcid: this.funcid,
- };
-
- db.triggers[triggerid] = trigger;
- if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforeinsert[triggerid] = trigger;
- } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') {
- db.tables[tableid].afterinsert[triggerid] = trigger;
- } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofinsert[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforedelete[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') {
- db.tables[tableid].afterdelete[triggerid] = trigger;
- } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofdelete[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') {
- db.tables[tableid].beforeupdate[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') {
- db.tables[tableid].afterupdate[triggerid] = trigger;
- } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') {
- db.tables[tableid].insteadofupdate[triggerid] = trigger;
- }
-
- if (cb) res = cb(res);
- return res;
-};
-
-yy.DropTrigger = function(params) {
- return yy.extend(this, params);
-};
-yy.DropTrigger.prototype.toString = function() {
- var s = 'DROP TRIGGER ' + this.trigger;
- return s;
-};
-
-/**
- Drop trigger
- @param {string} databaseid Database id
- @param {object} params Parameters
- @param {callback} cb Callback function
- @return Number of dropped triggers
- @example
- DROP TRIGGER one;
-*/
-yy.DropTrigger.prototype.execute = function(databaseid, params, cb) {
- var res = 0; // No tables removed
- var db = alasql.databases[databaseid];
- var triggerid = this.trigger;
- // For each table in the list
- var tableid = db.triggers[triggerid];
- if (tableid) {
- res = 1;
- delete db.tables[tableid].beforeinsert[triggerid];
- delete db.tables[tableid].afterinsert[triggerid];
- delete db.tables[tableid].insteadofinsert[triggerid];
- delete db.tables[tableid].beforedelte[triggerid];
- delete db.tables[tableid].afterdelete[triggerid];
- delete db.tables[tableid].insteadofdelete[triggerid];
- delete db.tables[tableid].beforeupdate[triggerid];
- delete db.tables[tableid].afterupdate[triggerid];
- delete db.tables[tableid].insteadofupdate[triggerid];
- delete db.triggers[triggerid];
- } else {
- throw new Error('Trigger not found');
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// DELETE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Delete = function(params) {
- return yy.extend(this, params);
-};
-yy.Delete.prototype.toString = function() {
- var s = 'DELETE FROM ' + this.table.toString();
- if (this.where) s += ' WHERE ' + this.where.toString();
- return s;
-};
-
-yy.Delete.prototype.compile = function(databaseid) {
-
- databaseid = this.table.databaseid || databaseid;
- var tableid = this.table.tableid;
- var statement;
- var db = alasql.databases[databaseid];
-
- if (this.where) {
-
- // this.query = {};
-
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- // try {
-
- // var query = {};
-
- var wherefn = new Function(
- 'r,params,alasql',
- 'var y;return (' + this.where.toJS('r', '') + ')'
- ).bind(this);
-
- statement = function(params, cb) {
- if (db.engineid && alasql.engines[db.engineid].deleteFromTable) {
- return alasql.engines[db.engineid].deleteFromTable(
- databaseid,
- tableid,
- wherefn,
- params,
- cb
- );
- }
-
- if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- // table.dirty = true;
- var orignum = table.data.length;
-
- var newtable = [];
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- if (wherefn(table.data[i], params, alasql)) {
- // Check for transaction - if it is not possible then return all back
- if (table["delete"]) {
- table["delete"](i, params, alasql);
- } else {
- // Simply do not push
- }
- } else newtable.push(table.data[i]);
- }
- // table.data = table.data.filter(function(r){return !;});
- table.data = newtable;
-
- // Trigger prevent functionality
- for (var tr in table.afterdelete) {
- var trigger = table.afterdelete[tr];
- if (trigger) {
- if (trigger.funcid) {
- alasql.fn[trigger.funcid]();
- } else if (trigger.statement) {
- trigger.statement.execute(databaseid);
- }
- }
- }
-
- var res = orignum - table.data.length;
- if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(res);
- return res;
- };
- // .bind(query);
-
- // if(!this.queries) return;
- // query.queriesfn = this.queries.map(function(q) {
- // return q.compile(alasql.useid);
- // });
- } else {
- statement = function(params, cb) {
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- table.dirty = true;
- var orignum = db.tables[tableid].data.length;
- //table.deleteall();
- // Delete all records from the array
- db.tables[tableid].data.length = 0;
-
- // Reset PRIMARY KEY and indexes
- for (var ix in db.tables[tableid].uniqs) {
- db.tables[tableid].uniqs[ix] = {};
- }
-
- for (var ix in db.tables[tableid].indices) {
- db.tables[tableid].indices[ix] = {};
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(orignum);
- return orignum;
- };
- }
-
- return statement;
-};
-
-yy.Delete.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
-};
-
-/*
-//
-// UPDATE for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql */
-
-yy.Update = function(params) {
- return yy.extend(this, params);
-};
-yy.Update.prototype.toString = function() {
- var s = 'UPDATE ' + this.table.toString();
- if (this.columns) s += ' SET ' + this.columns.toString();
- if (this.where) s += ' WHERE ' + this.where.toString();
- return s;
-};
-
-yy.SetColumn = function(params) {
- return yy.extend(this, params);
-};
-yy.SetColumn.prototype.toString = function() {
- return this.column.toString() + '=' + this.expression.toString();
-};
-
-yy.Update.prototype.compile = function(databaseid) {
-
- databaseid = this.table.databaseid || databaseid;
- var tableid = this.table.tableid;
-
- if (this.where) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- nq.query.modifier = 'RECORDSET';
- return nq;
- });
- }
-
- var wherefn = new Function(
- 'r,params,alasql',
- 'var y;return ' + this.where.toJS('r', '')
- ).bind(this);
- }
-
- // Construct update function
- var s = alasql.databases[databaseid].tables[tableid].onupdatefns || '';
- s += ';';
- this.columns.forEach(function(col) {
- s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';';
- });
-
- var assignfn = new Function('r,params,alasql', 'var y;' + s);
-
- var statement = function(params, cb) {
- var db = alasql.databases[databaseid];
-
- if (db.engineid && alasql.engines[db.engineid].updateTable) {
-
- return alasql.engines[db.engineid].updateTable(
- databaseid,
- tableid,
- assignfn,
- wherefn,
- params,
- cb
- );
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].loadTableData(databaseid, tableid);
- }
-
- var table = db.tables[tableid];
- if (!table) {
- throw new Error("Table '" + tableid + "' not exists");
- }
- // table.dirty = true;
- var numrows = 0;
- for (var i = 0, ilen = table.data.length; i < ilen; i++) {
- if (!wherefn || wherefn(table.data[i], params, alasql)) {
- if (table.update) {
- table.update(assignfn, i, params);
- } else {
- assignfn(table.data[i], params, alasql);
- }
- numrows++;
- }
- }
-
- if (alasql.options.autocommit && db.engineid) {
- alasql.engines[db.engineid].saveTableData(databaseid, tableid);
- }
-
- if (cb) cb(numrows);
- return numrows;
- };
- return statement;
-};
-
-yy.Update.prototype.execute = function(databaseid, params, cb) {
- return this.compile(databaseid)(params, cb);
-};
-
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global alasql, yy */
-
-yy.Merge = function(params) {
- return yy.extend(this, params);
-};
-yy.Merge.prototype.toString = function() {
- var s = 'MERGE ';
- s += this.into.tableid + ' ';
- if (this.into.as) s += 'AS ' + this.into.as + ' ';
- s += 'USING ' + this.using.tableid + ' ';
- if (this.using.as) s += 'AS ' + this.using.as + ' ';
- s += 'ON ' + this.on.toString() + ' ';
- this.matches.forEach(function(m) {
- s += 'WHEN ';
- if (!m.matched) s += 'NOT ';
- s += 'MATCHED ';
- if (m.bytarget) s += 'BY TARGET ';
- if (m.bysource) s += 'BY SOURCE ';
- if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' ';
- s += 'THEN ';
- if (m.action["delete"]) s += 'DELETE ';
- if (m.action.insert) {
- s += 'INSERT ';
- if (m.action.columns) s += '(' + m.action.columns.toString() + ') ';
- if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') ';
- if (m.action.defaultvalues) s += 'DEFAULT VALUES ';
- }
- if (m.action.update) {
- s += 'UPDATE ';
- s +=
- m.action.update
- .map(function(u) {
- return u.toString();
- })
- .join(',') + ' ';
- }
- });
-
- return s;
-};
-
-yy.Merge.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
-
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// UPDATE for Alasql.js
-// Date: 03.11.2014
-// Modified: 16.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global yy alasql */
-
-// CREATE DATABASE databaseid
-yy.CreateDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.CreateDatabase.prototype.toString = function() {
- var s = 'CREATE';
- if (this.engineid) s += ' ' + this.engineid;
- s += ' DATABASE';
- if (this.ifnotexists) s += ' IF NOT EXISTS';
- s += ' ' + this.databaseid;
- if (this.args && this.args.length > 0) {
- s +=
- '(' +
- this.args
- .map(function(arg) {
- return arg.toString();
- })
- .join(', ') +
- ')';
- }
- if (this.as) s += ' AS ' + this.as;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) {
- var args;
- if (this.args && this.args.length > 0) {
- args = this.args.map(function(arg) {
-
- return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql);
- });
- }
- if (this.engineid) {
- var res = alasql.engines[this.engineid].createDatabase(
- this.databaseid,
- this.args,
- this.ifnotexists,
- this.as,
- cb
- );
- return res;
- } else {
- var dbid = this.databaseid;
- if (alasql.databases[dbid]) {
- throw new Error("Database '" + dbid + "' already exists");
- }
- var a = new alasql.Database(dbid);
- var res = 1;
- if (cb) return cb(res);
- return res;
- }
-};
-
-// CREATE DATABASE databaseid
-yy.AttachDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.AttachDatabase.prototype.toString = function(args) {
- var s = 'ATTACH';
- if (this.engineid) s += ' ' + this.engineid;
- s += ' DATABASE' + ' ' + this.databaseid;
- // TODO add params
- if (args) {
- s += '(';
- if (args.length > 0) {
- s += args
- .map(function(arg) {
- return arg.toString();
- })
- .join(', ');
- }
- s += ')';
- }
- if (this.as) s += ' AS' + ' ' + this.as;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) {
- if (!alasql.engines[this.engineid]) {
- throw new Error('Engine "' + this.engineid + '" is not defined.');
- }
- var res = alasql.engines[this.engineid].attachDatabase(
- this.databaseid,
- this.as,
- this.args,
- params,
- cb
- );
- return res;
-};
-
-// CREATE DATABASE databaseid
-yy.DetachDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.DetachDatabase.prototype.toString = function() {
- var s = 'DETACH';
- s += ' DATABASE' + ' ' + this.databaseid;
- return s;
-};
-//yy.CreateDatabase.prototype.compile = returnUndefined;
-yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) {
- if (!alasql.databases[this.databaseid].engineid) {
- throw new Error(
- 'Cannot detach database "' + this.engineid + '", because it was not attached.'
- );
- }
- var res;
-
- var dbid = this.databaseid;
-
- if (dbid === alasql.DEFAULTDATABASEID) {
- throw new Error('Drop of default database is prohibited');
- }
-
- if (!alasql.databases[dbid]) {
- if (!this.ifexists) {
- throw new Error("Database '" + dbid + "' does not exist");
- } else {
- res = 0;
- }
- } else {
- delete alasql.databases[dbid];
- if (dbid === alasql.useid) {
- alasql.use();
- }
- res = 1;
- }
- if (cb) cb(res);
- return res;
- // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb);
- // return res;
-};
-
-// USE DATABSE databaseid
-// USE databaseid
-yy.UseDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.UseDatabase.prototype.toString = function() {
- return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid;
-};
-//yy.UseDatabase.prototype.compile = returnUndefined;
-yy.UseDatabase.prototype.execute = function(databaseid, params, cb) {
- var dbid = this.databaseid;
- if (!alasql.databases[dbid]) {
- throw new Error("Database '" + dbid + "' does not exist");
- }
- alasql.use(dbid);
- var res = 1;
- if (cb) cb(res);
- return res;
-};
-
-// DROP DATABASE databaseid
-yy.DropDatabase = function(params) {
- return yy.extend(this, params);
-};
-yy.DropDatabase.prototype.toString = function() {
- var s = 'DROP';
- if (this.ifexists) s += ' IF EXISTS';
- s += ' DATABASE ' + this.databaseid;
- return s;
-};
-//yy.DropDatabase.prototype.compile = returnUndefined;
-yy.DropDatabase.prototype.execute = function(databaseid, params, cb) {
- if (this.engineid) {
- return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb);
- }
- var res;
-
- var dbid = this.databaseid;
-
- if (dbid === alasql.DEFAULTDATABASEID) {
- throw new Error('Drop of default database is prohibited');
- }
- if (!alasql.databases[dbid]) {
- if (!this.ifexists) {
- throw new Error("Database '" + dbid + "' does not exist");
- } else {
- res = 0;
- }
- } else {
- if (alasql.databases[dbid].engineid) {
- throw new Error(
- "Cannot drop database '" + dbid + "', because it is attached. Detach it."
- );
- }
-
- delete alasql.databases[dbid];
- if (dbid === alasql.useid) {
- alasql.use();
- }
- res = 1;
- }
- if (cb) cb(res);
- return res;
-};
-
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Declare = function(params) {
- return yy.extend(this, params);
-};
-yy.Declare.prototype.toString = function() {
- var s = 'DECLARE ';
- if (this.declares && this.declares.length > 0) {
- s = this.declares
- .map(function(declare) {
- var s = '';
- s += '@' + declare.variable + ' ';
- s += declare.dbtypeid;
- if (this.dbsize) {
- s += '(' + this.dbsize;
- if (this.dbprecision) {
- s += ',' + this.dbprecision;
- }
- s += ')';
- }
- if (declare.expression) {
- s += ' = ' + declare.expression.toString();
- }
- return s;
- })
- .join(',');
- }
- return s;
-};
-
-yy.Declare.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (this.declares && this.declares.length > 0) {
- this.declares.map(function(declare) {
- var dbtypeid = declare.dbtypeid;
- if (!alasql.fn[dbtypeid]) {
- dbtypeid = dbtypeid.toUpperCase();
- }
- alasql.declares[declare.variable] = {
- dbtypeid: dbtypeid,
- dbsize: declare.dbsize,
- dbprecision: declare.dbprecision,
- };
-
- // Set value
- if (declare.expression) {
-
- alasql.vars[declare.variable] = new Function(
- 'params,alasql',
- 'return ' + declare.expression.toJS('({})', '', null)
- )(params, alasql);
- if (alasql.declares[declare.variable]) {
- alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
- alasql.vars[declare.variable],
- alasql.declares[declare.variable]
- );
- }
- }
- });
- }
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-/*
-//
-// SHOW for Alasql.js
-// Date: 19.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.ShowDatabases = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowDatabases.prototype.toString = function() {
- var s = 'SHOW DATABASES';
- if (this.like) s += 'LIKE ' + this.like.toString();
- return s;
-};
-yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) {
- if (this.engineid) {
- return alasql.engines[this.engineid].showDatabases(this.like, cb);
- } else {
- var self = this;
- var res = [];
- for (var dbid in alasql.databases) {
- res.push({databaseid: dbid});
- }
- if (self.like && res && res.length > 0) {
- res = res.filter(function(d) {
- // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
- return alasql.utils.like(self.like.value, d.databaseid);
- });
- }
- if (cb) cb(res);
- return res;
- }
-};
-
-yy.ShowTables = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowTables.prototype.toString = function() {
- var s = 'SHOW TABLES';
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- if (this.like) s += ' LIKE ' + this.like.toString();
- return s;
-};
-yy.ShowTables.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
-
- var self = this;
- var res = [];
- for (var tableid in db.tables) {
- res.push({tableid: tableid});
- }
- if (self.like && res && res.length > 0) {
- res = res.filter(function(d) {
- //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
- return alasql.utils.like(self.like.value, d.tableid);
- });
- }
- if (cb) cb(res);
- return res;
-};
-
-yy.ShowColumns = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowColumns.prototype.toString = function() {
- var s = 'SHOW COLUMNS';
- if (this.table.tableid) s += ' FROM ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
-
-yy.ShowColumns.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
-
- if (table && table.columns) {
- var res = table.columns.map(function(col) {
- return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize};
- });
- if (cb) cb(res);
- return res;
- } else {
- if (cb) cb([]);
- return [];
- }
-};
-
-yy.ShowIndex = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowIndex.prototype.toString = function() {
- var s = 'SHOW INDEX';
- if (this.table.tableid) s += ' FROM ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
-yy.ShowIndex.prototype.execute = function(databaseid, params, cb) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
- var res = [];
- if (table && table.indices) {
- for (var ind in table.indices) {
- res.push({hh: ind, len: Object.keys(table.indices[ind]).length});
- }
- }
-
- if (cb) cb(res);
- return res;
-};
-
-yy.ShowCreateTable = function(params) {
- return yy.extend(this, params);
-};
-yy.ShowCreateTable.prototype.toString = function() {
- var s = 'SHOW CREATE TABLE ' + this.table.tableid;
- if (this.databaseid) s += ' FROM ' + this.databaseid;
- return s;
-};
-yy.ShowCreateTable.prototype.execute = function(databaseid) {
- var db = alasql.databases[this.databaseid || databaseid];
- var table = db.tables[this.table.tableid];
- if (table) {
- var s = 'CREATE TABLE ' + this.table.tableid + ' (';
- var ss = [];
- if (table.columns) {
- table.columns.forEach(function(col) {
- var a = col.columnid + ' ' + col.dbtypeid;
- if (col.dbsize) a += '(' + col.dbsize + ')';
- if (col.primarykey) a += ' PRIMARY KEY';
- // TODO extend
- ss.push(a);
- });
- s += ss.join(', ');
- }
- s += ')';
- return s;
- } else {
- throw new Error('There is no such table "' + this.table.tableid + '"');
- }
-};
-
-/*
-//
-// SET for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.SetVariable = function(params) {
- return yy.extend(this, params);
-};
-yy.SetVariable.prototype.toString = function() {
- var s = 'SET ';
- if (typeof this.value != 'undefined')
- s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF');
- if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString();
- return s;
-};
-
-yy.SetVariable.prototype.execute = function(databaseid, params, cb) {
-
- if (typeof this.value != 'undefined') {
- var val = this.value;
- if (val == 'ON') val = true;
- else if (val == 'OFF') val = false;
- // if(this.method == '@') {
- alasql.options[this.variable] = val;
- // } else {
- // params[this.variable] = val;
- // }
- } else if (this.expression) {
- if (this.exists) {
- this.existsfn = this.exists.map(function(ex) {
- var nq = ex.compile(databaseid);
- if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
- return nq;
- // return ex.compile(databaseid);
- // TODO Include modifier
- });
- }
- if (this.queries) {
- this.queriesfn = this.queries.map(function(q) {
- var nq = q.compile(databaseid);
- if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
- return nq;
- // TODO Include modifier
- });
- }
-
- var res = new Function(
- 'params,alasql',
- 'return ' + this.expression.toJS('({})', '', null)
- ).bind(this)(params, alasql);
- if (alasql.declares[this.variable]) {
- res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]);
- }
- if (this.props && this.props.length > 0) {
- if (this.method == '@') {
- var fs = "alasql.vars['" + this.variable + "']";
- } else {
- var fs = "params['" + this.variable + "']";
- }
- fs += this.props
- .map(function(prop) {
- if (typeof prop == 'string') {
- return "['" + prop + "']";
- } else if (typeof prop == 'number') {
- return '[' + prop + ']';
- } else {
-
- return '[' + prop.toJS() + ']';
- // } else {
-
- // throw new Error('Wrong SET property');
- }
- })
- .join();
-
- new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql);
- } else {
- if (this.method == '@') {
- alasql.vars[this.variable] = res;
- } else {
- params[this.variable] = res;
- }
- }
- }
- var res = 1;
- if (cb) res = cb(res);
- return res;
-};
-
-// Console functions
-
-/* global alasql, yy */
-
-alasql.test = function(name, times, fn) {
- if (arguments.length === 0) {
- alasql.log(alasql.con.results);
- return;
- }
-
- var tm = Date.now();
-
- if (arguments.length === 1) {
- fn();
- alasql.con.log(Date.now() - tm);
- return;
- }
-
- if (arguments.length === 2) {
- fn = times;
- times = 1;
- }
-
- for (var i = 0; i < times; i++) {
- fn();
- }
- alasql.con.results[name] = Date.now() - tm;
-};
-
-// Console
-// alasql.log = function(sql, params) {
-
-// };
-
-/* global alasql, yy, utils */
-
-// Console
-alasql.log = function(sql, params) {
- var olduseid = alasql.useid;
- var target = alasql.options.logtarget;
- // For node other
- if (utils.isNode) {
- target = 'console';
- }
-
- var res;
- if (typeof sql === 'string') {
- res = alasql(sql, params);
- } else {
- res = sql;
- }
-
- // For Node and console.output
- if (target === 'console' || utils.isNode) {
- if (typeof sql === 'string' && alasql.options.logprompt) {
- console.log(olduseid + '>', sql);
- }
-
- if (Array.isArray(res)) {
- if (console.table) {
- // For Chrome and other consoles
- console.table(res);
- } else {
- // Add print procedure
- console.log(JSONtoString(res));
- }
- } else {
- console.log(JSONtoString(res));
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
- }
- }
-
- var s = '';
-
- if (typeof sql === 'string' && alasql.options.logprompt) {
- // s += ''+olduseid+'> '+alasql.pretty(sql)+'
';
- s += '' + alasql.pretty(sql) + ' ';
- }
-
- if (Array.isArray(res)) {
- if (res.length === 0) {
- s += '[ ]
';
- } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) {
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- s += '' + loghtml(res[i]) + '
';
- }
- } else {
- s += loghtml(res);
- }
- } else {
- s += loghtml(res);
- }
- el.innerHTML += s;
- }
-};
-
-alasql.clear = function() {
- var target = alasql.options.logtarget;
- // For node other
-
- if (utils.isNode || utils.isMeteorServer) {
- if (console.clear) {
- console.clear();
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
- }
- }
- el.innerHTML = '';
- }
-};
-
-alasql.write = function(s) {
-
- var target = alasql.options.logtarget;
- // For node other
- if (utils.isNode || utils.isMeteorServer) {
- if (console.log) {
- console.log(s);
- }
- } else {
- var el;
- if (target === 'output') {
- el = document.getElementsByTagName('output')[0];
- } else {
- if (typeof target === 'string') {
- el = document.getElementById(target);
- } else {
- // in case of DOM
- el = target;
- }
- }
- el.innerHTML += s;
- }
-};
-
-function loghtml(res) {
-
- var s = '';
- if (res === undefined) {
- s += 'undefined';
- } else if (Array.isArray(res)) {
- s += '';
- s += '';
- var cols = [];
- for (var colid in res[0]) {
- cols.push(colid);
- }
- s += '#';
- cols.forEach(function(colid) {
- s += ' ' + colid;
- });
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- s += ' ' + (i + 1);
- cols.forEach(function(colid) {
- s += ' ';
- if (res[i][colid] == +res[i][colid]) {
- // jshint ignore:line
- s += '';
- if (typeof res[i][colid] === 'undefined') {
- s += 'NULL';
- } else {
- s += res[i][colid];
- }
- s += '
';
- } else {
- if (typeof res[i][colid] === 'undefined') {
- s += 'NULL';
- } else if (typeof res[i][colid] === 'string') {
- s += res[i][colid];
- } else {
- s += JSONtoString(res[i][colid]);
- }
- // s += res[i][colid];
- }
- });
- }
-
- s += '
';
- } else {
- s += '' + JSONtoString(res) + '
';
- }
- // if() {}
-
- // if(typeof res == 'object') {
- // s += ''+JSON.stringify(res)+'
';
- // } else {
- // }
- return s;
-}
-
-function scrollTo(element, to, duration) {
- if (duration <= 0) {
- return;
- }
- var difference = to - element.scrollTop;
- var perTick = difference / duration * 10;
-
- setTimeout(function() {
- if (element.scrollTop === to) {
- return;
- }
- element.scrollTop = element.scrollTop + perTick;
- scrollTo(element, to, duration - 10);
- }, 10);
-}
-
-alasql.prompt = function(el, useidel, firstsql) {
- if (utils.isNode) {
- throw new Error('The prompt not realized for Node.js');
- }
-
- var prompti = 0;
-
- if (typeof el === 'string') {
- el = document.getElementById(el);
- }
-
- if (typeof useidel === 'string') {
- useidel = document.getElementById(useidel);
- }
-
- useidel.textContent = alasql.useid;
-
- if (firstsql) {
- alasql.prompthistory.push(firstsql);
- prompti = alasql.prompthistory.length;
- try {
- var tm = Date.now();
- alasql.log(firstsql);
- alasql.write('' + (Date.now() - tm) + ' ms
');
- } catch (err) {
- alasql.write('' + olduseid + '> ' + sql + '
');
- alasql.write('' + err + '
');
- }
- }
-
- var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
- scrollTo(document.getElementsByTagName('body')[0], y, 500);
-
- el.onkeydown = function(event) {
- if (event.which === 13) {
- var sql = el.value;
- var olduseid = alasql.useid;
- el.value = '';
- alasql.prompthistory.push(sql);
- prompti = alasql.prompthistory.length;
- try {
- var tm = Date.now();
- alasql.log(sql);
- alasql.write('
' + (Date.now() - tm) + ' ms
');
- } catch (err) {
- alasql.write('' + olduseid + '> ' + alasql.pretty(sql, false) + '
');
- alasql.write('' + err + '
');
- }
- el.focus();
-
- useidel.textContent = alasql.useid;
- var y =
- el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
- scrollTo(document.getElementsByTagName('body')[0], y, 500);
- } else if (event.which === 38) {
- prompti--;
- if (prompti < 0) {
- prompti = 0;
- }
- if (alasql.prompthistory[prompti]) {
- el.value = alasql.prompthistory[prompti];
- event.preventDefault();
- }
- } else if (event.which === 40) {
- prompti++;
- if (prompti >= alasql.prompthistory.length) {
- prompti = alasql.prompthistory.length;
- el.value = '';
- } else if (alasql.prompthistory[prompti]) {
- el.value = alasql.prompthistory[prompti];
- event.preventDefault();
- }
- }
- };
-};
-
-/*
-//
-// Commit for Alasql.js
-// Date: 01.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-yy.BeginTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.BeginTransaction.prototype.toString = function() {
- return 'BEGIN TRANSACTION';
-};
-
-yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
-
-yy.CommitTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.CommitTransaction.prototype.toString = function() {
- return 'COMMIT TRANSACTION';
-};
-
-yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
-
-yy.RollbackTransaction = function(params) {
- return yy.extend(this, params);
-};
-yy.RollbackTransaction.prototype.toString = function() {
- return 'ROLLBACK TRANSACTION';
-};
-
-yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid].engineid) {
- return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb);
- } else {
- // alasql commit!!!
- }
- if (cb) cb(res);
- return res;
-};
-
-if (alasql.options.tsql) {
- //
- // Check tables and views
- // IF OBJECT_ID('dbo.Employees') IS NOT NULL
- // DROP TABLE dbo.Employees;
- // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL
- // DROP VIEW dbo.VSortedOrders;
-
- alasql.stdfn.OBJECT_ID = function(name, type) {
- if (typeof type == 'undefined') type = 'T';
- type = type.toUpperCase();
-
- var sname = name.split('.');
- var dbid = alasql.useid;
- var objname = sname[0];
- if (sname.length == 2) {
- dbid = sname[0];
- objname = sname[1];
- }
-
- var tables = alasql.databases[dbid].tables;
- dbid = alasql.databases[dbid].databaseid;
- for (var tableid in tables) {
- if (tableid == objname) {
- // TODO: What OBJECT_ID actually returns
-
- if (tables[tableid].view && type == 'V') return dbid + '.' + tableid;
- if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid;
- return undefined;
- }
- }
-
- return undefined;
- };
-}
-
-if (alasql.options.mysql) {
-}
-
-if (alasql.options.mysql || alasql.options.sqlite) {
- // Pseudo INFORMATION_SCHEMA function
- alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) {
- if (filename == 'VIEWS' || filename == 'TABLES') {
- var res = [];
- for (var databaseid in alasql.databases) {
- var tables = alasql.databases[databaseid].tables;
- for (var tableid in tables) {
- if (
- (tables[tableid].view && filename == 'VIEWS') ||
- (!tables[tableid].view && filename == 'TABLES')
- ) {
- res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid});
- }
- }
- }
- if (cb) res = cb(res, idx, query);
- return res;
- }
- throw new Error('Unknown INFORMATION_SCHEMA table');
- };
-}
-
-if (alasql.options.postgres) {
-}
-
-if (alasql.options.oracle) {
-}
-
-if (alasql.options.sqlite) {
-}
-
-//
-// into functions
-//
-// (c) 2014 Andrey Gershun
-//
-
-alasql.into.SQL = function(filename, opts, data, columns, cb) {
- var res;
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
- var opt = {};
- alasql.utils.extend(opt, opts);
- if (typeof opt.tableid === 'undefined') {
- throw new Error('Table for INSERT TO is not defined.');
- }
-
- var s = '';
- if (columns.length === 0) {
- if (typeof data[0] === 'object') {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- } else {
- // What should I do?
- // columns = [{columnid:"_"}];
- }
- }
-
- for (var i = 0, ilen = data.length; i < ilen; i++) {
- s += 'INSERT INTO ' + opts.tableid + '(';
- s += columns
- .map(function(col) {
- return col.columnid;
- })
- .join(',');
- s += ') VALUES (';
- s += columns.map(function(col) {
- var val = data[i][col.columnid];
- if (col.typeid) {
- if (
- col.typeid === 'STRING' ||
- col.typeid === 'VARCHAR' ||
- col.typeid === 'NVARCHAR' ||
- col.typeid === 'CHAR' ||
- col.typeid === 'NCHAR'
- ) {
- val = "'" + escapeqq(val) + "'";
- }
- } else {
- if (typeof val == 'string') {
- val = "'" + escapeqq(val) + "'";
- }
- }
- return val;
- });
- s += ');\n';
- }
- // if(filename === '') {
- // res = s;
- // } else {
- // res = data.length;
- filename = alasql.utils.autoExtFilename(filename, 'sql', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-alasql.into.HTML = function(selector, opts, data, columns, cb) {
- var res = 1;
- if (typeof exports !== 'object') {
- var opt = {headers: true};
- alasql.utils.extend(opt, opts);
-
- var sel = document.querySelector(selector);
- if (!sel) {
- throw new Error('Selected HTML element is not found');
- }
-
- if (columns.length === 0) {
- if (typeof data[0] === 'object') {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- } else {
- // What should I do?
- // columns = [{columnid:"_"}];
- }
- }
-
- var tbe = document.createElement('table');
- var thead = document.createElement('thead');
- tbe.appendChild(thead);
- if (opt.headers) {
- var tre = document.createElement('tr');
- for (var i = 0; i < columns.length; i++) {
- var the = document.createElement('th');
- the.textContent = columns[i].columnid;
- tre.appendChild(the);
- }
- thead.appendChild(tre);
- }
-
- var tbody = document.createElement('tbody');
- tbe.appendChild(tbody);
- for (var j = 0; j < data.length; j++) {
- var tre = document.createElement('tr');
- for (var i = 0; i < columns.length; i++) {
- var the = document.createElement('td');
- the.textContent = data[j][columns[i].columnid];
- tre.appendChild(the);
- }
- tbody.appendChild(tre);
- }
- alasql.utils.domEmptyChildren(sel);
-
- sel.appendChild(tbe);
- }
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-alasql.into.JSON = function(filename, opts, data, columns, cb) {
- var res = 1;
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
- var s = JSON.stringify(data);
-
- filename = alasql.utils.autoExtFilename(filename, 'json', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-alasql.into.TXT = function(filename, opts, data, columns, cb) {
- // If columns is empty
- if (columns.length === 0 && data.length > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- // If one parameter
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
-
- var res = data.length;
- var s = '';
- if (data.length > 0) {
- var key = columns[0].columnid;
- s += data
- .map(function(d) {
- return d[key];
- })
- .join('\n');
- }
-
- // } else {
- // if(utils.isNode) {
- // process.stdout.write(s);
- // } else {
-
- // };
- // }
- filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
- res = alasql.utils.saveFile(filename, s);
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) {
- var opt = {};
- alasql.utils.extend(opt, opts);
- opt.separator = '\t';
- filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
- opt.autoExt = false;
- return alasql.into.CSV(filename, opt, data, columns, cb);
-};
-
-alasql.into.CSV = function(filename, opts, data, columns, cb) {
- if (columns.length === 0 && data.length > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- if (typeof filename === 'object') {
- opts = filename;
- filename = undefined;
- }
-
- var opt = {headers: true};
- //opt.separator = ',';
- opt.separator = ';';
- opt.quote = '"';
-
- opt.utf8Bom = true;
- if (opts && !opts.headers && typeof opts.headers !== 'undefined') {
- opt.utf8Bom = false;
- }
-
- alasql.utils.extend(opt, opts);
- var res = data.length;
- var s = opt.utf8Bom ? '\ufeff' : '';
- if (opt.headers) {
- s +=
- opt.quote +
- columns
- .map(function(col) {
- return col.columnid.trim();
- })
- .join(opt.quote + opt.separator + opt.quote) +
- opt.quote +
- '\r\n';
- }
-
- data.forEach(function(d) {
- s +=
- columns
- .map(function(col) {
- var s = d[col.columnid];
- // escape the character wherever it appears in the field
- if (opt.quote !== '') {
- s = (s + '').replace(
- new RegExp('\\' + opt.quote, 'g'),
- opt.quote + opt.quote
- );
- }
- // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote;
-
- //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV
- if (+s != s) {
- // jshint ignore:line
- s = opt.quote + s + opt.quote;
- }
-
- return s;
- })
- .join(opt.separator) + '\r\n';
- });
-
- filename = alasql.utils.autoExtFilename(filename, 'csv', opts);
- res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true});
- if (cb) {
- res = cb(res);
- }
- return res;
-};
-
-//
-// 831xl.js - Coloring Excel
-// 18.04.2015
-// Generate XLS file with colors and styles
-// with Excel
-
-alasql.into.XLS = function(filename, opts, data, columns, cb) {
- // If filename is not defined then output to the result
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
- }
-
- // Set sheets
- var sheets = {};
- if (opts && opts.sheets) {
- sheets = opts.sheets;
- }
-
- // Default sheet
- var sheet = {headers: true};
- if (typeof sheets['Sheet1'] != 'undefined') {
- sheet = sheets[0];
- } else {
- if (typeof opts != 'undefined') {
- sheet = opts;
- }
- }
-
- // Set sheet name and default is 'Sheet1'
- if (typeof sheet.sheetid == 'undefined') {
- sheet.sheetid = 'Sheet1';
- }
-
- var s = toHTML();
-
- // File is ready to save
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- var res = alasql.utils.saveFile(filename, s);
- if (cb) res = cb(res);
- return res;
-
- function toHTML() {
- // Generate prologue
- var s =
- '
\
- \
- ';
-
- // Generate body
- s += '';
- s += '';
- if (typeof sheet.caption != 'undefined') {
- var caption = sheet.caption;
- if (typeof caption == 'string') {
- caption = {title: caption};
- }
- s += '';
- s += caption.title;
- s += ' ';
- }
-
- // Columns
-
- // var columns = [];
-
- // If columns defined in sheet, then take them
- if (typeof sheet.columns != 'undefined') {
- columns = sheet.columns;
- } else {
- // Autogenerate columns if they are passed as parameters
- if (columns.length == 0 && data.length > 0) {
- if (typeof data[0] == 'object') {
- if (Array.isArray(data[0])) {
- columns = data[0].map(function(d, columnidx) {
- return {columnid: columnidx};
- });
- } else {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- }
- }
- }
-
- // Prepare columns
- columns.forEach(function(column, columnidx) {
- if (typeof sheet.column != 'undefined') {
- extend(column, sheet.column);
- }
-
- if (typeof column.width == 'undefined') {
- if (sheet.column && sheet.column.width != 'undefined') {
- column.width = sheet.column.width;
- } else {
- column.width = '120px';
- }
- }
- if (typeof column.width == 'number') column.width = column.width + 'px';
- if (typeof column.columnid == 'undefined') column.columnid = columnidx;
- if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
- if (sheet.headers && Array.isArray(sheet.headers))
- column.title = sheet.headers[columnidx];
- });
-
- // Set columns widths
- s += '';
- columns.forEach(function(column) {
- s += ' ';
- });
- s += ' ';
-
- // Headers
- if (sheet.headers) {
- s += '';
- s += '';
-
- // TODO: Skip columns to body
-
- // Headers
- columns.forEach(function(column, columnidx) {
- s += '';
-
- // Column title
- if (typeof column.title != 'undefined') {
- if (typeof column.title == 'function') {
- s += column.title(sheet, column, columnidx);
- } else {
- s += column.title;
- }
- }
- s += ' ';
- });
-
- s += ' ';
- s += ' ';
- }
-
- s += '';
-
- // TODO: Skip lines between header and body
-
- if (data && data.length > 0) {
- // TODO: Skip columns to body
-
- // Loop over data rows
- data.forEach(function(row, rowidx) {
- // Limit number of rows on the sheet
- if (rowidx > sheet.limit) return;
- // Create row
- s += '';
- // Loop over columns
- columns.forEach(function(column, columnidx) {
- // Parameters
- var cell = {};
- extend(cell, sheet.cell);
- extend(cell, srow.cell);
- if (typeof sheet.column != 'undefined') {
- extend(cell, sheet.column.cell);
- }
- extend(cell, column.cell);
- if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
- extend(cell, sheet.cells[rowidx][columnidx]);
- }
-
- // Create value
- var value = row[column.columnid];
- if (typeof cell.value == 'function') {
- value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
- }
-
- // Define cell type
- var typeid = cell.typeid;
- if (typeof typeid == 'function') {
- typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
- }
-
- if (typeof typeid == 'undefined') {
- if (typeof value == 'number') typeid = 'number';
- else if (typeof value == 'string') typeid = 'string';
- else if (typeof value == 'boolean') typeid = 'boolean';
- else if (typeof value == 'object') {
- if (value instanceof Date) typeid = 'date';
- }
- }
-
- var typestyle = '';
-
- if (typeid == 'money') {
- typestyle =
- 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
- } else if (typeid == 'number') {
- typestyle = ' ';
- } else if (typeid == 'date') {
- typestyle = 'mso-number-format:"Short Date";';
- } else {
- // FOr other types is saved
- if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
- typestyle = opts.types[typeid].typestyle;
- }
- }
-
- // TODO Replace with extend...
- typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
-
- s += "';
-
- // TODO Replace with extend...
- var format = cell.format;
- if (typeof value == 'undefined') {
- s += '';
- } else if (typeof format != 'undefined') {
- if (typeof format == 'function') {
- s += format(value);
- } else if (typeof format == 'string') {
- s += value; // TODO - add string format
- } else {
- throw new Error('Unknown format type. Should be function or string');
- }
- } else {
- if (typeid == 'number' || typeid == 'date') {
- s += value.toString();
- } else if (typeid == 'money') {
- s += (+value).toFixed(2);
- } else {
- s += value;
- }
- }
- s += ' ';
- });
-
- s += ' ';
- });
- }
-
- s += ' ';
-
- // Generate epilogue
- s += '
';
- s += '';
- s += '';
-
- return s;
- }
-
- // Style function
- function style(a) {
- var s = ' style="';
- if (a && typeof a.style != 'undefined') {
- s += a.style + ';';
- }
- s += '" ';
- return s;
- }
-};
-
-alasql.into.XLSXML = function(filename, opts, data, columns, cb) {
- opts = opts || {};
-
- // If filename is not defined then output to the result
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
- }
-
- // Set sheets
- var sheets = {};
- var sheetsdata;
- var sheetscolumns;
- if (opts && opts.sheets) {
- sheets = opts.sheets;
- // data and columns are already an array for the sheets
- sheetsdata = data;
- sheetscolumns = columns;
- } else {
- sheets.Sheet1 = opts;
- // wrapd ata and columns array for single sheet
- sheetsdata = [data];
- sheetscolumns = [columns];
- }
-
- // File is ready to save
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- var res = alasql.utils.saveFile(filename, toXML());
- if (cb) res = cb(res);
- return res;
-
- function toXML() {
- var s1 =
- ' \
- \
- \
- \
- \
- \
- \
- \
- 0 \
- \
- \
- ';
-
- var s2 = ''; // for styles
-
- var s3 = ' ';
-
- var styles = {}; // hash based storage for styles
- var stylesn = 62; // First style
-
- // Generate style
- function hstyle(st) {
- // Prepare string
- var s = '';
- for (var key in st) {
- s += '<' + key;
- for (var attr in st[key]) {
- s += ' ';
- if (attr.substr(0, 2) == 'x:') {
- s += attr;
- } else {
- s += 'ss:';
- }
- s += attr + '="' + st[key][attr] + '"';
- }
- s += '/>';
- }
-
- var hh = hash(s);
- // Store in hash
- if (styles[hh]) {
- } else {
- styles[hh] = {styleid: stylesn};
- s2 += '';
- stylesn++;
- }
- return 's' + styles[hh].styleid;
- }
-
- function values(obj) {
- try {
- return Object.values(obj);
- } catch (e) {
- // support for older runtimes
- return Object.keys(obj).map(function(e) {
- return obj[e];
- });
- }
- }
-
- var sheetidx = 0;
- for (var sheetid in sheets) {
- var sheet = sheets[sheetid];
- var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++;
- var data = values(sheetsdata[idx]);
- // If columns defined in sheet, then take them
- var columns = undefined;
- if (typeof sheet.columns != 'undefined') {
- columns = sheet.columns;
- } else {
- // Autogenerate columns if they are passed as parameters
- columns = sheetscolumns[idx];
- if (columns === undefined || (columns.length == 0 && data.length > 0)) {
- if (typeof data[0] == 'object') {
- if (Array.isArray(data[0])) {
- columns = data[0].map(function(d, columnidx) {
- return {columnid: columnidx};
- });
- } else {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
- }
- }
- }
-
- // Prepare columns
- columns.forEach(function(column, columnidx) {
- if (typeof sheet.column != 'undefined') {
- extend(column, sheet.column);
- }
-
- if (typeof column.width == 'undefined') {
- if (sheet.column && typeof sheet.column.width != 'undefined') {
- column.width = sheet.column.width;
- } else {
- column.width = 120;
- }
- }
- if (typeof column.width == 'number') column.width = column.width;
- if (typeof column.columnid == 'undefined') column.columnid = columnidx;
- if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
- if (sheet.headers && Array.isArray(sheet.headers))
- column.title = sheet.headers[columnidx];
- });
-
- // Header
- s3 +=
- ' \
- ';
-
- columns.forEach(function(column, columnidx) {
- s3 +=
- ' ';
- });
-
- // Headers
- if (sheet.headers) {
- s3 += '';
-
- // TODO: Skip columns to body
-
- // Headers
- columns.forEach(function(column, columnidx) {
- s3 += '';
-
- // Column title
- if (typeof column.title != 'undefined') {
- if (typeof column.title == 'function') {
- s3 += column.title(sheet, column, columnidx);
- } else {
- s3 += column.title;
- }
- }
- s3 += ' | ';
- });
-
- s3 += '
';
- }
-
- // Data
- if (data && data.length > 0) {
- // Loop over data rows
- data.forEach(function(row, rowidx) {
- // Limit number of rows on the sheet
- if (rowidx > sheet.limit) return;
-
- // Extend row properties
- var srow = {};
- extend(srow, sheet.row);
- if (sheet.rows && sheet.rows[rowidx]) {
- extend(srow, sheet.rows[rowidx]);
- }
-
- s3 += ''; //'ss:AutoFitHeight="0">'
-
- // Data
- columns.forEach(function(column, columnidx) {
- // Parameters
- var cell = {};
- extend(cell, sheet.cell);
- extend(cell, srow.cell);
- if (typeof sheet.column != 'undefined') {
- extend(cell, sheet.column.cell);
- }
- extend(cell, column.cell);
- if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
- extend(cell, sheet.cells[rowidx][columnidx]);
- }
-
- // Create value
- var value = row[column.columnid];
- if (typeof cell.value == 'function') {
- value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
- }
-
- // Define cell type
- var typeid = cell.typeid;
- if (typeof typeid == 'function') {
- typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
- }
-
- if (typeof typeid == 'undefined') {
- if (typeof value == 'number') typeid = 'number';
- else if (typeof value == 'string') typeid = 'string';
- else if (typeof value == 'boolean') typeid = 'boolean';
- else if (typeof value == 'object') {
- if (value instanceof Date) typeid = 'date';
- }
- }
-
- var Type = 'String';
- if (typeid == 'number') Type = 'Number';
- else if (typeid == 'date') Type = 'Date';
- // TODO: What else?
-
- // Prepare Data types styles
- var typestyle = '';
-
- if (typeid == 'money') {
- typestyle =
- 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
- } else if (typeid == 'number') {
- typestyle = ' ';
- } else if (typeid == 'date') {
- typestyle = 'mso-number-format:"Short Date";';
- } else {
- // For other types is saved
- if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
- typestyle = opts.types[typeid].typestyle;
- }
- }
-
- // TODO Replace with extend...
- typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
-
- s3 += '';
-
- s3 += '';
-
- // TODO Replace with extend...
- var format = cell.format;
- if (typeof value == 'undefined') {
- s3 += '';
- } else if (typeof format != 'undefined') {
- if (typeof format == 'function') {
- s3 += format(value);
- } else if (typeof format == 'string') {
- s3 += value; // TODO - add string format
- } else {
- throw new Error(
- 'Unknown format type. Should be function or string'
- );
- }
- } else {
- if (typeid == 'number' || typeid == 'date') {
- s3 += value.toString();
- } else if (typeid == 'money') {
- s3 += (+value).toFixed(2);
- } else {
- s3 += value;
- }
- }
-
- // s3 += row[column.columnid];
- s3 += ' | ';
- });
-
- s3 += '
';
- });
- }
- // Finish
- s3 += '
';
- }
-
- s3 += ' ';
-
- return s1 + s2 + s3;
- }
-};
-
-/**
- Export to XLSX function
- @function
- @param {string|object} filename Filename or options
- @param {object|undefined} opts Options or undefined
- @param {array} data Data
- @param {array} columns Columns
- @parab {callback} cb Callback function
- @return {number} Number of files processed
-*/
-
-alasql.into.XLSX = function(filename, opts, data, columns, cb) {
- /** @type {number} result */
- var res = 1;
-
- if (deepEqual(columns, [{columnid: '_'}])) {
- data = data.map(function(dat) {
- return dat._;
- });
- columns = undefined;
- // res = [{_:1}];
- } else {
- // data = data1;
- }
-
- filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
-
- var XLSX = getXLSX();
-
- /* If called without filename, use opts */
- if (typeof filename == 'object') {
- opts = filename;
- filename = undefined;
- }
-
- /** @type {object} Workbook */
- var wb = {SheetNames: [], Sheets: {}};
-
- // ToDo: check if cb must be treated differently here
- if (opts.sourcefilename) {
- alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) {
- wb = XLSX.read(data, {type: 'binary'});
- doExport();
- });
- } else {
- doExport();
- }
-
- /* Return result */
- if (cb) res = cb(res);
- return res;
-
- /**
- Export workbook
- @function
- */
- function doExport() {
- /*
- If opts is array of arrays then this is a
- multisheet workboook, else it is a singlesheet
- */
- if (typeof opts == 'object' && Array.isArray(opts)) {
- if (data && data.length > 0) {
- data.forEach(function(dat, idx) {
- prepareSheet(opts[idx], dat, undefined, idx + 1);
- });
- }
- } else {
- prepareSheet(opts, data, columns, 1);
- }
-
- saveWorkbook(cb);
- }
-
- /**
- Prepare sheet
- @params {object} opts
- @params {array|object} data
- @params {array} columns Columns
- */
- function prepareSheet(opts, data, columns, idx) {
- /** Default options for sheet */
- var opt = {sheetid: 'Sheet ' + idx, headers: true};
- alasql.utils.extend(opt, opts);
-
- var dataLength = Object.keys(data).length;
-
- // Generate columns if they are not defined
- if ((!columns || columns.length == 0) && dataLength > 0) {
- columns = Object.keys(data[0]).map(function(columnid) {
- return {columnid: columnid};
- });
- }
-
- var cells = {};
-
- if (wb.SheetNames.indexOf(opt.sheetid) > -1) {
- cells = wb.Sheets[opt.sheetid];
- } else {
- wb.SheetNames.push(opt.sheetid);
- wb.Sheets[opt.sheetid] = {};
- cells = wb.Sheets[opt.sheetid];
- }
-
- var range = 'A1';
- if (opt.range) range = opt.range;
-
- var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);
- var row0 = +range.match(/[0-9]+/)[0] - 1;
-
- if (wb.Sheets[opt.sheetid]['!ref']) {
- var rangem = wb.Sheets[opt.sheetid]['!ref'];
- var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);
- var rowm = +rangem.match(/[0-9]+/)[0] - 1;
- } else {
- var colm = 1,
- rowm = 1;
- }
- var colmax = Math.max(col0 + columns.length, colm);
- var rowmax = Math.max(row0 + dataLength + 2, rowm);
-
- var i = row0 + 1;
-
- wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax;
- // var i = 1;
-
- if (opt.headers) {
- columns.forEach(function(col, idx) {
- cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()};
- });
- i++;
- }
-
- for (var j = 0; j < dataLength; j++) {
- columns.forEach(function(col, idx) {
- var cell = {v: data[j][col.columnid]};
- if (typeof data[j][col.columnid] == 'number') {
- cell.t = 'n';
- } else if (typeof data[j][col.columnid] == 'string') {
- cell.t = 's';
- } else if (typeof data[j][col.columnid] == 'boolean') {
- cell.t = 'b';
- } else if (typeof data[j][col.columnid] == 'object') {
- if (data[j][col.columnid] instanceof Date) {
- cell.t = 'd';
- }
- }
- cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell;
- });
- i++;
- }
- }
-
- /**
- Save Workbook
- @params {array} wb Workbook
- @params {callback} cb Callback
- */
- function saveWorkbook(cb) {
-
- var XLSX;
-
- if (typeof filename == 'undefined') {
- res = wb;
- } else {
- XLSX = getXLSX();
-
- if (utils.isNode || utils.isMeteorServer) {
- XLSX.writeFile(wb, filename);
- } else {
- var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
- var wbout = XLSX.write(wb, wopts);
-
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
- return buf;
- }
-
- /* the saveAs call downloads a file on the local machine */
- // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"')
- // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename)
- // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"');
- if (isIE() == 9) {
- throw new Error(
- 'Cannot save XLSX files in IE9. Please use XLS() export function'
- );
- // var URI = 'data:text/plain;charset=utf-8,';
-
- /** @todo Check if this code is required */
-
- // alert('ie9');
- } else {
- saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);
- }
- }
- }
-
- }
-};
-
-/*
-//
-// FROM functions Alasql.js
-// Date: 11.12.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/**
- Meteor
- */
-
-/* global alasql Tabletop document Event */
-
-alasql.from.METEOR = function(filename, opts, cb, idx, query) {
- var res = filename.find(opts).fetch();
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
-
-/**
- Google Spreadsheet reader
- */
-alasql.from.TABLETOP = function(key, opts, cb, idx, query) {
- var res = [];
-
- var opt = {headers: true, simpleSheet: true, key: key};
- alasql.utils.extend(opt, opts);
- opt.callback = function(data) {
- res = data;
- if (cb) {
- res = cb(res, idx, query);
- }
- };
-
- Tabletop.init(opt);
- return null;
-};
-
-alasql.from.HTML = function(selector, opts, cb, idx, query) {
- var opt = {};
- alasql.utils.extend(opt, opts);
-
- var sel = document.querySelector(selector);
- if (!sel && sel.tagName !== 'TABLE') {
- throw new Error('Selected HTML element is not a TABLE');
- }
-
- var res = [];
- var headers = opt.headers;
-
- if (headers && !Array.isArray(headers)) {
- headers = [];
- var ths = sel.querySelector('thead tr').children;
- for (var i = 0; i < ths.length; i++) {
- if (
- !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)
- ) {
- headers.push(ths.item(i).textContent);
- } else {
- headers.push(undefined);
- }
- }
- }
-
- var trs = sel.querySelectorAll('tbody tr');
-
- for (var j = 0; j < trs.length; j++) {
- var tds = trs.item(j).children;
- var r = {};
- for (i = 0; i < tds.length; i++) {
- if (
- !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)
- ) {
- if (headers) {
- r[headers[i]] = tds.item(i).textContent;
- } else {
- r[i] = tds.item(i).textContent;
-
- }
- }
- }
- res.push(r);
- }
-
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
-
-alasql.from.RANGE = function(start, finish, cb, idx, query) {
- var res = [];
- for (var i = start; i <= finish; i++) {
- res.push(i);
- }
- // res = new alasql.Recordset({data:res,columns:{columnid:'_'}});
- if (cb) {
- res = cb(res, idx, query);
- }
- return res;
-};
-
-// Read data from any file
-alasql.from.FILE = function(filename, opts, cb, idx, query) {
- var fname;
- if (typeof filename === 'string') {
- fname = filename;
- } else if (filename instanceof Event) {
- fname = filename.target.files[0].name;
- } else {
- throw new Error('Wrong usage of FILE() function');
- }
-
- var parts = fname.split('.');
-
- var ext = parts[parts.length - 1].toUpperCase();
-
- if (alasql.from[ext]) {
-
- return alasql.from[ext](filename, opts, cb, idx, query);
- } else {
- throw new Error('Cannot recognize file type for loading');
- }
-};
-
-// Read JSON file
-
-alasql.from.JSON = function(filename, opts, cb, idx, query) {
- var res;
-
- filename = alasql.utils.autoExtFilename(filename, 'json', opts);
- alasql.utils.loadFile(filename, !!cb, function(data) {
-
- // res = [{a:1}];
- res = JSON.parse(data);
- if (cb) {
- res = cb(res, idx, query);
- }
- });
- return res;
-};
-
-alasql.from.TXT = function(filename, opts, cb, idx, query) {
- var res;
- filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
- alasql.utils.loadFile(filename, !!cb, function(data) {
- res = data.split(/\r?\n/);
-
- // Remove last line if empty
- if (res[res.length - 1] === '') {
- res.pop();
- }
- for (var i = 0, ilen = res.length; i < ilen; i++) {
- // Please avoid '===' here
- if (res[i] == +res[i]) {
- // eslint:ignore
- // jshint ignore:line
- res[i] = +res[i];
- }
- res[i] = [res[i]];
- }
- if (cb) {
- res = cb(res, idx, query);
- }
- });
- return res;
-};
-
-alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- opts.separator = '\t';
- filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
- opts.autoext = false;
- return alasql.from.CSV(filename, opts, cb, idx, query);
-};
-
-alasql.from.CSV = function(contents, opts, cb, idx, query) {
- var opt = {
- separator: ',',
- quote: '"',
- headers: true,
- };
- alasql.utils.extend(opt, opts);
- var res;
- var hs = [];
- function parseText(text) {
- var delimiterCode = opt.separator.charCodeAt(0);
- var quoteCode = opt.quote.charCodeAt(0);
-
- var EOL = {},
- EOF = {},
- rows = [],
- N = text.length,
- I = 0,
- n = 0,
- t,
- eol;
- function token() {
- if (I >= N) {
- return EOF;
- }
- if (eol) {
- return (eol = false, EOL);
- }
- var j = I;
- if (text.charCodeAt(j) === quoteCode) {
- var i = j;
- while (i++ < N) {
- if (text.charCodeAt(i) === quoteCode) {
- if (text.charCodeAt(i + 1) !== quoteCode) {
- break;
- }
- ++i;
- }
- }
- I = i + 2;
- var c = text.charCodeAt(i + 1);
- if (c === 13) {
- eol = true;
- if (text.charCodeAt(i + 2) === 10) {
- ++I;
- }
- } else if (c === 10) {
- eol = true;
- }
- return text.substring(j + 1, i).replace(/""/g, '"');
- }
- while (I < N) {
- var c = text.charCodeAt(I++),
- k = 1;
- if (c === 10) {
- eol = true;
- } else if (c === 13) {
- eol = true;
- if (text.charCodeAt(I) === 10) {
- ++I;
- ++k;
- }
- } else if (c !== delimiterCode) {
- continue;
- }
- return text.substring(j, I - k);
- }
- return text.substring(j);
- }
-
- while ((t = token()) !== EOF) {
- var a = [];
- while (t !== EOL && t !== EOF) {
- a.push(t.trim());
- t = token();
- }
-
- if (opt.headers) {
- if (n === 0) {
- if (typeof opt.headers === 'boolean') {
- hs = a;
- } else if (Array.isArray(opt.headers)) {
- hs = opt.headers;
- var r = {};
- hs.forEach(function(h, idx) {
- r[h] = a[idx];
- // Please avoid === here
- if (
- typeof r[h] !== 'undefined' &&
- r[h].length !== 0 &&
- r[h].trim() == +r[h]
- ) {
- // jshint ignore:line
- r[h] = +r[h];
- }
- });
- rows.push(r);
- }
- } else {
- var r = {};
- hs.forEach(function(h, idx) {
- r[h] = a[idx];
- if (
- typeof r[h] !== 'undefined' &&
- r[h].length !== 0 &&
- r[h].trim() == +r[h]
- ) {
- // jshint ignore:line
- r[h] = +r[h];
- }
- });
- rows.push(r);
- }
- n++;
- } else {
- rows.push(a);
- }
- }
-
- res = rows;
-
- if (opt.headers) {
- if (query && query.sources && query.sources[idx]) {
- var columns = (query.sources[idx].columns = []);
- hs.forEach(function(h) {
- columns.push({columnid: h});
- });
- }
- }
-
- if (cb) {
- res = cb(res, idx, query);
- }
- }
- if (new RegExp('\n').test(contents)) {
- parseText(contents);
- } else {
- contents = alasql.utils.autoExtFilename(contents, 'csv', opts);
- alasql.utils.loadFile(contents, !!cb, parseText, query.cb);
- }
- return res;
-};
-
-function XLSXLSX(X, filename, opts, cb, idx, query) {
- var opt = {};
- opts = opts || {};
- alasql.utils.extend(opt, opts);
- if (typeof opt.headers === 'undefined') {
- opt.headers = true;
- }
- var res;
-
- /**
- * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md
- * for example of using readAsArrayBuffer under `Parsing Workbooks`
- */
- function fixdata(data) {
- var o = '',
- l = 0,
- w = 10240;
- for (; l < data.byteLength / w; ++l)
- o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
- o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
- return o;
- }
- function getHeaderText(text) {
- // if casesensitive option is set to false and there is a text value return lowercase value of text
- if (text && alasql.options.casesensitive === false) {
- return text.toLowerCase();
- } else {
- return text;
- }
- }
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- alasql.utils.loadBinaryFile(
- filename,
- !!cb,
- function(data) {
- // function processData(data) {
- if (data instanceof ArrayBuffer) {
- var arr = fixdata(data);
- var workbook = X.read(btoa(arr), {type: 'base64'});
- } else {
- var workbook = X.read(data, {type: 'binary'});
- }
-
- var sheetid;
- if (typeof opt.sheetid === 'undefined') {
- sheetid = workbook.SheetNames[0];
- } else if (typeof opt.sheetid === 'number') {
- sheetid = workbook.SheetNames[opt.sheetid];
- } else {
- sheetid = opt.sheetid;
- }
- var range;
- var res = [];
- if (typeof opt.range === 'undefined') {
- range = workbook.Sheets[sheetid]['!ref'];
- } else {
- range = opt.range;
- if (workbook.Sheets[sheetid][range]) {
- range = workbook.Sheets[sheetid][range];
- }
- }
- // if range has some value then data is present in the current sheet
- // else current sheet is empty
- if (range) {
- var rg = range.split(':');
- var col0 = rg[0].match(/[A-Z]+/)[0];
- var row0 = +rg[0].match(/[0-9]+/)[0];
- var col1 = rg[1].match(/[A-Z]+/)[0];
- var row1 = +rg[1].match(/[0-9]+/)[0];
-
- var hh = {};
- var xlscnCol0 = alasql.utils.xlscn(col0);
- var xlscnCol1 = alasql.utils.xlscn(col1);
- for (var j = xlscnCol0; j <= xlscnCol1; j++) {
- var col = alasql.utils.xlsnc(j);
- if (opt.headers) {
- if (workbook.Sheets[sheetid][col + '' + row0]) {
- hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v);
- } else {
- hh[col] = getHeaderText(col);
- }
- } else {
- hh[col] = col;
- }
- }
- if (opt.headers) {
- row0++;
- }
- for (var i = row0; i <= row1; i++) {
- var row = {};
- for (var j = xlscnCol0; j <= xlscnCol1; j++) {
- var col = alasql.utils.xlsnc(j);
- if (workbook.Sheets[sheetid][col + '' + i]) {
- row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v;
- }
- }
- res.push(row);
- }
- } else {
- res.push([]);
- }
-
- // Remove last empty line (issue #548)
- if (
- res.length > 0 &&
- res[res.length - 1] &&
- Object.keys(res[res.length - 1]).length == 0
- ) {
- res.pop();
- }
-
- if (cb) {
- res = cb(res, idx, query);
- }
- },
- function(err) {
- throw err;
- }
- );
-
- return res;
-}
-
-alasql.from.XLS = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
-};
-
-alasql.from.XLSX = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
-};
-
-alasql.from.ODS = function(filename, opts, cb, idx, query) {
- opts = opts || {};
- filename = alasql.utils.autoExtFilename(filename, 'ods', opts);
- opts.autoExt = false;
- return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
-};
-
-alasql.from.XML = function(filename, opts, cb, idx, query) {
- var res;
-
- alasql.utils.loadFile(filename, !!cb, function(data) {
-
- // res = [{a:1}];
-
- res = xmlparse(data).root;
-
- if (cb) res = cb(res, idx, query);
- });
- return res;
-};
-
-/**
- * Parse the given string of `xml`.
- *
- * @param {String} xml
- * @return {Object}
- * @api public
- */
-
-function xmlparse(xml) {
- xml = xml.trim();
-
- // strip comments
- xml = xml.replace(//g, '');
-
- return document();
-
- /**
- * XML document.
- */
-
- function document() {
- return {
- declaration: declaration(),
- root: tag(),
- };
- }
-
- /**
- * Declaration.
- */
-
- function declaration() {
- var m = match(/^<\?xml\s*/);
- if (!m) return;
-
- // tag
- var node = {
- attributes: {},
- };
-
- // attributes
- while (!(eos() || is('?>'))) {
- var attr = attribute();
- if (!attr) return node;
- node.attributes[attr.name] = attr.value;
- }
-
- match(/\?>\s*/);
-
- return node;
- }
-
- /**
- * Tag.
- */
-
- function tag() {
- var m = match(/^<([\w-:.]+)\s*/);
- if (!m) return;
-
- // name
- var node = {
- name: m[1],
- attributes: {},
- children: [],
- };
-
- // attributes
- while (!(eos() || is('>') || is('?>') || is('/>'))) {
- var attr = attribute();
- if (!attr) return node;
- node.attributes[attr.name] = attr.value;
- }
-
- // self closing tag
- if (match(/^\s*\/>\s*/)) {
- return node;
- }
-
- match(/\??>\s*/);
-
- // content
- node.content = content();
-
- // children
- var child;
- while ((child = tag())) {
- node.children.push(child);
- }
-
- // closing
- match(/^<\/[\w-:.]+>\s*/);
-
- return node;
- }
-
- /**
- * Text content.
- */
-
- function content() {
- var m = match(/^([^<]*)/);
- if (m) return m[1];
- return '';
- }
-
- /**
- * Attribute.
- */
-
- function attribute() {
- var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);
- if (!m) return;
- return {name: m[1], value: strip(m[2])};
- }
-
- /**
- * Strip quotes from `val`.
- */
-
- function strip(val) {
- return val.replace(/^['"]|['"]$/g, '');
- }
-
- /**
- * Match `re` and advance the string.
- */
-
- function match(re) {
- var m = xml.match(re);
- if (!m) return;
- xml = xml.slice(m[0].length);
- return m;
- }
-
- /**
- * End-of-source.
- */
-
- function eos() {
- return 0 == xml.length;
- }
-
- /**
- * Check for `prefix`.
- */
-
- function is(prefix) {
- return 0 == xml.indexOf(prefix);
- }
-}
-
-alasql.from.GEXF = function(filename, opts, cb, idx, query) {
- var res;
- alasql('SEARCH FROM XML(' + filename + ')', [], function(data) {
- res = data;
-
- if (cb) res = cb(res);
- });
- return res;
-};
-
-/*
-//
-// HELP for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* globals: alasql, yy */
-
-/**
- Print statement
- @class
- @param {object} params Initial setup properties
-*/
-
-/* global alasql, yy */
-
-yy.Print = function(params) {
- return yy.extend(this, params);
-};
-
-/**
- Generate SQL string
- @this Print statement object
-*/
-yy.Print.prototype.toString = function() {
- var s = 'PRINT';
- if (this.statement) s += ' ' + this.statement.toString();
- return s;
-};
-
-/**
- Print result of select statement or expression
- @param {string} databaseid Database identificator
- @param {object} params Query parameters
- @param {statement-callback} cb Callback function
- @this Print statement object
-*/
-yy.Print.prototype.execute = function(databaseid, params, cb) {
-
- var self = this;
- var res = 1;
-
- alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */
-
- if (this.exprs && this.exprs.length > 0) {
- var rs = this.exprs.map(function(expr) {
-
- var exprfn = new Function(
- 'params,alasql,p',
- 'var y;return ' + expr.toJS('({})', '', null)
- ).bind(self);
- var r = exprfn(params, alasql);
- return JSONtoString(r);
- });
- console.log.apply(console, rs);
- } else if (this.select) {
- var r = this.select.execute(databaseid, params);
- console.log(JSONtoString(r));
- } else {
- console.log();
- }
-
- if (cb) res = cb(res);
- return res;
-};
-
-/*
-//
-// HELP for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Source = function(params) {
- return yy.extend(this, params);
-};
-yy.Source.prototype.toString = function() {
- var s = 'SOURCE';
- if (this.url) s += " '" + this.url + " '";
- return s;
-};
-
-// SOURCE FILE
-yy.Source.prototype.execute = function(databaseid, params, cb) {
-
- var res;
- loadFile(
- this.url,
- !!cb,
- function(data) {
-
- // res = 1;
- res = alasql(data);
- if (cb) res = cb(res);
- return res;
- },
- function(err) {
- throw err;
- }
- );
- return res;
-};
-
-/*
-//
-// HELP for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-/* global alasql, yy */
-
-yy.Require = function(params) {
- return yy.extend(this, params);
-};
-yy.Require.prototype.toString = function() {
- var s = 'REQUIRE';
- if (this.paths && this.paths.length > 0) {
- s += this.paths
- .map(function(path) {
- return path.toString();
- })
- .join(',');
- }
- if (this.plugins && this.plugins.length > 0) {
- s += this.plugins
- .map(function(plugin) {
- return plugin.toUpperCase();
- })
- .join(',');
- }
- return s;
-};
-
-/**
- Attach plug-in for Alasql
- */
-yy.Require.prototype.execute = function(databaseid, params, cb) {
- var self = this;
- var res = 0;
- var ss = '';
-
- if (this.paths && this.paths.length > 0) {
- this.paths.forEach(function(path) {
- loadFile(path.value, !!cb, function(data) {
- res++;
-
- ss += data;
- if (res < self.paths.length) return;
-
- new Function('params,alasql', ss)(params, alasql);
- if (cb) res = cb(res);
- });
- });
- } else if (this.plugins && this.plugins.length > 0) {
- this.plugins.forEach(function(plugin) {
- // If plugin is not loaded already
- if (!alasql.plugins[plugin]) {
- loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function(
- data
- ) {
- // Execute all plugins at the same time
- res++;
- ss += data;
- if (res < self.plugins.length) return;
-
- new Function('params,alasql', ss)(params, alasql);
- alasql.plugins[plugin] = true; // Plugin is loaded
- if (cb) res = cb(res);
- });
- }
- });
- } else {
- if (cb) res = cb(res);
- }
- return res;
-};
-
-/*
-//
-// HELP for Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-yy.Assert = function(params) {
- return yy.extend(this, params);
-};
-yy.Source.prototype.toString = function() {
- var s = 'ASSERT';
- if (this.value) s += ' ' + JSON.stringify(this.value);
- return s;
-};
-
-// SOURCE FILE
-yy.Assert.prototype.execute = function(databaseid) {
-
- if (!deepEqual(alasql.res, this.value)) {
- // if(this.message) {
- // throw this.
- // } else {
- throw new Error(
- (this.message || 'Assert wrong') +
- ': ' +
- JSON.stringify(alasql.res) +
- ' == ' +
- JSON.stringify(this.value)
- );
- // }
- }
- return 1;
-};
-
-//
-// 91websql.js
-// WebSQL database support
-// (c) 2014, Andrey Gershun
-//
-
-var WEBSQL = (alasql.engines.WEBSQL = function() {});
-
-WEBSQL.createDatabase = function(wdbid, args, dbid, cb) {
- var res = 1;
- var wdb = openDatabase(wdbid, args[0], args[1], args[2]);
- if (this.dbid) {
- var db = alasql.createDatabase(this.dbid);
- db.engineid = 'WEBSQL';
- db.wdbid = wdbid;
- sb.wdb = db;
- }
- if (!wdb) {
- throw new Error('Cannot create WebSQL database "' + databaseid + '"');
- }
- if (cb) cb(res);
- return res;
-};
-
-WEBSQL.dropDatabase = function(databaseid) {
- throw new Error('This is impossible to drop WebSQL database.');
-};
-
-WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) {
- var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
- }
- alasqlopenDatabase(databaseid, args[0], args[1], args[2]);
- return res;
-};
-
-//
-// 91indexeddb.js
-// AlaSQL IndexedDB module
-// Date: 18.04.2015
-// (c) Andrey Gershun
-//
-
-/* global alasql, yy, utils*/
-
-var IDB = (alasql.engines.INDEXEDDB = function() {
- '';
-});
-
-if (utils.hasIndexedDB) {
- // For Chrome it work normally, for Firefox - simple shim
- if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') {
- IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind(
- utils.global.indexedDB
- );
- } else {
- IDB.getDatabaseNames = function() {
- var request = {};
- var result = {
- contains: function(name) {
- return true; // Always return true
- },
- notsupported: true,
- };
- setTimeout(function() {
- var event = {target: {result: result}};
- request.onsuccess(event);
- }, 0);
- return request;
- };
- IDB.getDatabaseNamesNotSupported = true;
- }
-}
-
-//
-// SHOW DATABASES
-// work only in chrome
-//
-IDB.showDatabases = function(like, cb) {
-
- var request = IDB.getDatabaseNames();
- request.onsuccess = function(event) {
- var dblist = event.target.result;
- if (IDB.getDatabaseNamesNotSupported) {
- throw new Error('SHOW DATABASE is not supported in this browser');
- }
- var res = [];
- if (like) {
- var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g');
- }
- for (var i = 0; i < dblist.length; i++) {
- if (!like || dblist[i].match(relike)) {
- res.push({databaseid: dblist[i]});
- }
- }
- cb(res);
- };
-};
-
-IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
-
- var indexedDB = utils.global.indexedDB;
- if (ifnotexists) {
- var request2 = indexedDB.open(ixdbid, 1);
- request2.onsuccess = function(event) {
- event.target.result.close();
- if (cb) cb(1);
- };
- } else {
- var request1 = indexedDB.open(ixdbid, 1);
- request1.onupgradeneeded = function(e) {
-
- e.target.transaction.abort();
- };
- request1.onsuccess = function(e) {
-
- if (ifnotexists) {
- if (cb) cb(0);
- } else {
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- }
- };
- }
-
-};
-
-IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
- var indexedDB = utils.global.indexedDB;
- if (IDB.getDatabaseNamesNotSupported) {
- // Hack for Firefox
- if (ifnotexists) {
-
- var dbExists = true;
- var request2 = indexedDB.open(ixdbid);
-
- request2.onupgradeneeded = function(e) {
-
- dbExists = false;
- // e.target.transaction.abort();
- // cb(0);
- };
- request2.onsuccess = function(event) {
-
- event.target.result.close();
- if (dbExists) {
- if (cb) cb(0);
- } else {
- if (cb) cb(1);
- }
- };
- } else {
-
- var request1 = indexedDB.open(ixdbid);
- request1.onupgradeneeded = function(e) {
- e.target.transaction.abort();
- };
- request1.onabort = function(event) {
- if (cb) cb(1);
- };
- request1.onsuccess = function(event) {
- event.target.result.close();
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- // cb(0);
- };
- }
- } else {
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (dblist.contains(ixdbid)) {
- if (ifnotexists) {
- if (cb) cb(0);
- return;
- } else {
- throw new Error(
- 'IndexedDB: Cannot create new database "' +
- ixdbid +
- '" because it already exists'
- );
- }
- }
-
- var request2 = indexedDB.open(ixdbid, 1);
- request2.onsuccess = function(event) {
- event.target.result.close();
- if (cb) cb(1);
- };
- };
- }
-};
-
-IDB.dropDatabase = function(ixdbid, ifexists, cb) {
- var indexedDB = utils.global.indexedDB;
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (!dblist.contains(ixdbid)) {
- if (ifexists) {
- if (cb) cb(0);
- return;
- } else {
- throw new Error(
- 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist'
- );
- }
- }
- var request2 = indexedDB.deleteDatabase(ixdbid);
- request2.onsuccess = function(event) {
-
- if (cb) cb(1);
- };
- };
-};
-
-IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
- if (!utils.hasIndexedDB) {
- throw new Error('The current browser does not support IndexedDB');
- }
- var indexedDB = utils.global.indexedDB;
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
- if (!dblist.contains(ixdbid)) {
- throw new Error(
- 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist'
- );
- }
- var request2 = indexedDB.open(ixdbid);
- request2.onsuccess = function(event) {
- var ixdb = event.target.result;
- var db = new alasql.Database(dbid || ixdbid);
- db.engineid = 'INDEXEDDB';
- db.ixdbid = ixdbid;
- db.tables = [];
- var tblist = ixdb.objectStoreNames;
- for (var i = 0; i < tblist.length; i++) {
- db.tables[tblist[i]] = {};
- }
-
- event.target.result.close();
- if (cb) cb(1);
- };
- };
-};
-
-IDB.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var indexedDB = utils.global.indexedDB;
-
- var ixdbid = alasql.databases[databaseid].ixdbid;
-
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event__) {
- var dblist = event__.target.result;
- if (!dblist.contains(ixdbid)) {
- throw new Error(
- 'IndexedDB: Cannot create table in database "' +
- ixdbid +
- '" because it does not exist'
- );
- }
- var request2 = indexedDB.open(ixdbid);
- request2.onversionchange = function(event_) {
-
- event_.target.result.close();
- };
- request2.onsuccess = function(event_) {
- var version = event_.target.result.version;
- event_.target.result.close();
-
- var request3 = indexedDB.open(ixdbid, version + 1);
- request3.onupgradeneeded = function(event) {
- var ixdb = event.target.result;
-
- var store = ixdb.createObjectStore(tableid, {autoIncrement: true});
-
- };
- request3.onsuccess = function(event) {
-
- event.target.result.close();
- if (cb) cb(1);
- };
- request3.onerror = function(event) {
- throw event;
-
- };
- request3.onblocked = function(event) {
- throw new Error(
- 'Cannot create table "' +
- tableid +
- '" because database "' +
- databaseid +
- '" is blocked'
- );
-
- };
- };
- };
-};
-
-IDB.dropTable = function(databaseid, tableid, ifexists, cb) {
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
-
- var request1 = IDB.getDatabaseNames();
- request1.onsuccess = function(event) {
- var dblist = event.target.result;
-
- if (!dblist.contains(ixdbid)) {
- throw new Error(
- 'IndexedDB: Cannot drop table in database "' +
- ixdbid +
- '" because it does not exist'
- );
- }
-
- var request2 = indexedDB.open(ixdbid);
- request2.onversionchange = function(event) {
- event.target.result.close();
- };
-
- request2.onsuccess = function(event) {
- var version = event.target.result.version;
- event.target.result.close();
-
- var request3 = indexedDB.open(ixdbid, version + 1);
- request3.onupgradeneeded = function(event) {
- var ixdb = event.target.result;
- if (ixdb.objectStoreNames.contains(tableid)) {
- ixdb.deleteObjectStore(tableid);
- delete alasql.databases[databaseid].tables[tableid];
- } else {
- if (!ifexists) {
- throw new Error(
- 'IndexedDB: Cannot drop table "' +
- tableid +
- '" because it does not exist'
- );
- }
- }
- // var store = ixdb.createObjectStore(tableid);
-
- };
- request3.onsuccess = function(event) {
-
- event.target.result.close();
- if (cb) cb(1);
- };
- request3.onerror = function(event) {
-
- throw event;
- };
- request3.onblocked = function(event) {
- throw new Error(
- 'Cannot drop table "' +
- tableid +
- '" because database "' +
- databaseid +
- '" is blocked'
- );
-
- };
- };
- };
-};
-
-IDB.intoTable = function(databaseid, tableid, value, columns, cb) {
-
- // console.trace();
-
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request1 = indexedDB.open(ixdbid);
- request1.onsuccess = function(event) {
- var ixdb = event.target.result;
- var tx = ixdb.transaction([tableid], 'readwrite');
- var tb = tx.objectStore(tableid);
-
- for (var i = 0, ilen = value.length; i < ilen; i++) {
- tb.add(value[i]);
- }
- tx.oncomplete = function() {
- ixdb.close();
-
- if (cb) cb(ilen);
- };
- };
-
-};
-
-IDB.fromTable = function(databaseid, tableid, cb, idx, query) {
-
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
- var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid]);
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
-
- if (cursor) {
- res.push(cursor.value);
- cursor["continue"]();
- } else {
-
- ixdb.close();
- if (cb) cb(res, idx, query);
- }
- };
- };
-};
-
-IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) {
-
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
- var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid], 'readwrite');
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
- var num = 0;
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
-
- if (cursor) {
- if (!wherefn || wherefn(cursor.value, params)) {
-
- cursor["delete"]();
- num++;
- }
- cursor["continue"]();
- } else {
-
- ixdb.close();
- if (cb) cb(num);
- }
- };
- };
-};
-
-IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) {
-
- // console.trace();
- var indexedDB = utils.global.indexedDB;
- var ixdbid = alasql.databases[databaseid].ixdbid;
- var request = indexedDB.open(ixdbid);
- request.onsuccess = function(event) {
- var res = [];
- var ixdb = event.target.result;
-
- var tx = ixdb.transaction([tableid], 'readwrite');
- var store = tx.objectStore(tableid);
- var cur = store.openCursor();
- var num = 0;
-
- cur.onblocked = function(event) {
-
- };
- cur.onerror = function(event) {
-
- };
- cur.onsuccess = function(event) {
-
- var cursor = event.target.result;
-
- if (cursor) {
- if (!wherefn || wherefn(cursor.value, params)) {
-
- var r = cursor.value;
- assignfn(r, params);
-
- cursor.update(r);
- num++;
- }
- cursor["continue"]();
- } else {
-
- ixdb.close();
- if (cb) cb(num);
- }
- };
- };
-};
-
-//
-// 91localstorage.js
-// localStorage and DOM-Storage engine
-// Date: 09.12.2014
-// (c) Andrey Gershun
-//
-
-/* global alasql, yy, localStorage*/
-
-var LS = (alasql.engines.LOCALSTORAGE = function() {});
-
-/**
- Read data from localStorage with security breaks
- @param key {string} Address in localStorage
- @return {object} JSON object
-*/
-LS.get = function(key) {
- var s = localStorage.getItem(key);
- if (typeof s === 'undefined') return;
- var v;
- try {
- v = JSON.parse(s);
- } catch (err) {
- throw new Error('Cannot parse JSON object from localStorage' + s);
- }
- return v;
-};
-
-/**
- Store data into localStorage with security breaks
- @param key {string} Address in localStorage
- @return {object} JSON object
-*/
-LS.set = function(key, value) {
- if (typeof value === 'undefined') localStorage.removeItem(key);
- else localStorage.setItem(key, JSON.stringify(value));
-};
-
-/**
- Store table structure and data into localStorage
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @return Nothing
-*/
-LS.storeTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var table = db.tables[tableid];
- // Create empty structure for table
- var tbl = {};
- tbl.columns = table.columns;
- tbl.data = table.data;
- tbl.identities = table.identities;
- // TODO: May be add indexes, objects and other fields?
- LS.set(db.lsdbid + '.' + tableid, tbl);
-};
-
-/**
- Restore table structure and data
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @return Nothing
-*/
-LS.restoreTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var tbl = LS.get(db.lsdbid + '.' + tableid);
- var table = new alasql.Table();
- for (var f in tbl) {
- table[f] = tbl[f];
- }
- db.tables[tableid] = table;
- table.indexColumns();
- // We need to add other things here
- return table;
-};
-
-/**
- Remove table from localStorage
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
-*/
-
-LS.removeTable = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- localStorage.removeItem(db.lsdbid + '.' + tableid);
-};
-
-/**
- Create database in localStorage
- @param lsdbid {string} localStorage database id
- @param args {array} List of parameters (not used in localStorage)
- @param ifnotexists {boolean} Check if database does not exist
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param cb {function} Callback
-*/
-
-LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) {
- var res = 1;
- var ls = LS.get('alasql'); // Read list of all databases
- if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) {
- if (!ls) ls = {databases: {}}; // Empty record
- if (ls.databases && ls.databases[lsdbid]) {
- throw new Error(
- 'localStorage: Cannot create new database "' +
- lsdbid +
- '" because it already exists'
- );
- }
- ls.databases[lsdbid] = true;
- LS.set('alasql', ls);
- LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record
- } else {
- res = 0;
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Drop external database
- @param lsdbid {string} localStorage database id
- @param ifexists {boolean} Check if database exists
- @param cb {function} Callback
-*/
-LS.dropDatabase = function(lsdbid, ifexists, cb) {
- var res = 1;
- var ls = LS.get('alasql');
- if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) {
- // 1. Remove record from 'alasql' record
- if (!ls) {
- if (!ifexists) {
- throw new Error('There is no any AlaSQL databases in localStorage');
- } else {
- return cb ? cb(0) : 0;
- }
- }
-
- if (ls.databases && !ls.databases[lsdbid]) {
- throw new Error(
- 'localStorage: Cannot drop database "' +
- lsdbid +
- '" because there is no such database'
- );
- }
- delete ls.databases[lsdbid];
- LS.set('alasql', ls);
-
- // 2. Remove tables definitions
- var db = LS.get(lsdbid);
- for (var tableid in db.tables) {
- localStorage.removeItem(lsdbid + '.' + tableid);
- }
-
- // 3. Remove database definition
- localStorage.removeItem(lsdbid);
- } else {
- res = 0;
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Attach existing localStorage database to AlaSQL database
- @param lsdibid {string} localStorage database id
- @param
-*/
-
-LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) {
- var res = 1;
- if (alasql.databases[databaseid]) {
- throw new Error(
- 'Unable to attach database as "' + databaseid + '" because it already exists'
- );
- }
- if (!databaseid) databaseid = lsdbid;
- var db = new alasql.Database(databaseid);
- db.engineid = 'LOCALSTORAGE';
- db.lsdbid = lsdbid;
- db.tables = LS.get(lsdbid).tables;
- // IF AUTOABORT IS OFF then copy data to memory
- if (!alasql.options.autocommit) {
- if (db.tables) {
- for (var tbid in db.tables) {
- LS.restoreTable(databaseid, tbid);
- // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
- }
- }
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Show list of databases from localStorage
- @param like {string} Mathing pattern
- @param cb {function} Callback
-*/
-LS.showDatabases = function(like, cb) {
- var res = [];
- var ls = LS.get('alasql');
- if (like) {
- // TODO: If we have a special function for LIKE patterns?
- var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g');
- }
- if (ls && ls.databases) {
- for (var dbid in ls.databases) {
- res.push({databaseid: dbid});
- }
- if (like && res && res.length > 0) {
- res = res.filter(function(d) {
- return d.databaseid.match(relike);
- });
- }
- }
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Create table in localStorage database
- @param databaseid {string} AlaSQL database id
- @param tableid {string} Table id
- @param ifnotexists {boolean} If not exists flag
- @param cb {function} Callback
-*/
-
-LS.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var tb = LS.get(lsdbid + '.' + tableid);
- // Check if such record exists
- if (tb && !ifnotexists) {
- throw new Error(
- 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"'
- );
- }
- var lsdb = LS.get(lsdbid);
- var table = alasql.databases[databaseid].tables[tableid];
-
- // TODO: Check if required
- lsdb.tables[tableid] = true;
-
- LS.set(lsdbid, lsdb);
- LS.storeTable(databaseid, tableid);
-
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Empty table and reset identities
- @param databaseid {string} AlaSQL database id (not external localStorage)
- @param tableid {string} Table name
- @param ifexists {boolean} If exists flag
- @param cb {function} Callback
- @return 1 on success
-*/
-LS.truncateTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb;
- if (alasql.options.autocommit) {
- lsdb = LS.get(lsdbid);
- } else {
- lsdb = alasql.databases[databaseid];
- }
-
- if (!ifexists && !lsdb.tables[tableid]) {
- throw new Error(
- 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist'
- );
- }
-
- //load table
- var tbl = LS.restoreTable(databaseid, tableid);
-
- //clear data from table
- tbl.data = [];
- //TODO reset all identities
- //but identities are not working on LOCALSTORAGE
- //See test 607 for details
-
- //store table
- LS.storeTable(databaseid, tableid);
-
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Create table in localStorage database
- @param databaseid {string} AlaSQL database id
- @param tableid {string} Table id
- @param ifexists {boolean} If exists flag
- @param cb {function} Callback
-*/
-
-LS.dropTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb;
-
- if (alasql.options.autocommit) {
- lsdb = LS.get(lsdbid);
- } else {
- lsdb = alasql.databases[databaseid];
- }
- if (!ifexists && !lsdb.tables[tableid]) {
- throw new Error(
- 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist'
- );
- }
- delete lsdb.tables[tableid];
- LS.set(lsdbid, lsdb);
- // localStorage.removeItem(lsdbid+'.'+tableid);
- LS.removeTable(databaseid, tableid);
- if (cb) res = cb(res);
- return res;
-};
-
-/**
- Read all data from table
-*/
-
-LS.fromTable = function(databaseid, tableid, cb, idx, query) {
-
- var lsdbid = alasql.databases[databaseid].lsdbid;
- // var res = LS.get(lsdbid+'.'+tableid);
-
- var res = LS.restoreTable(databaseid, tableid).data;
-
- if (cb) res = cb(res, idx, query);
- return res;
-};
-
-/**
- Insert data into the table
- @param databaseid {string} Database id
- @param tableid {string} Table id
- @param value {array} Array of values
- @param columns {array} Columns (not used)
- @param cb {function} Callback
-*/
-
-LS.intoTable = function(databaseid, tableid, value, columns, cb) {
-
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var res = value.length;
- // var tb = LS.get(lsdbid+'.'+tableid);
- var tb = LS.restoreTable(databaseid, tableid);
- for (var columnid in tb.identities) {
- var ident = tb.identities[columnid];
-
- for (var index in value) {
- value[index][columnid] = ident.value;
- ident.value += ident.step;
- }
- }
- if (!tb.data) tb.data = [];
- tb.data = tb.data.concat(value);
- // LS.set(lsdbid+'.'+tableid, tb);
- LS.storeTable(databaseid, tableid);
-
- if (cb) res = cb(res);
-
- return res;
-};
-
-/**
- Laad data from table
-*/
-LS.loadTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- LS.restoreTable(databaseid, tableid);
- // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid);
-};
-
-/**
- Save data to the table
-*/
-
-LS.saveTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- LS.storeTable(lsdbid, tableid);
- // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data);
- db.tables[tableid].data = undefined;
-};
-
-/**
- Commit
-*/
-
-LS.commit = function(databaseid, cb) {
-
- var db = alasql.databases[databaseid];
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb = {databaseid: lsdbid, tables: {}};
- if (db.tables) {
- for (var tbid in db.tables) {
- // TODO: Question - do we need this line
- lsdb.tables[tbid] = true;
- LS.storeTable(databaseid, tbid);
- // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data);
- }
- }
- LS.set(lsdbid, lsdb);
- return cb ? cb(1) : 1;
-};
-
-/**
- Alias BEGIN = COMMIT
-*/
-LS.begin = LS.commit;
-
-/**
- ROLLBACK
-*/
-
-LS.rollback = function(databaseid, cb) {
- // This does not work and should be fixed
- // Plus test 151 and 231
-
- return;
-
- var db = alasql.databases[databaseid];
- db.dbversion++;
-
- var lsdbid = alasql.databases[databaseid].lsdbid;
- var lsdb = LS.get(lsdbid);
- // if(!alasql.options.autocommit) {
-
- delete alasql.databases[databaseid];
- alasql.databases[databaseid] = new alasql.Database(databaseid);
- extend(alasql.databases[databaseid], lsdb);
- alasql.databases[databaseid].databaseid = databaseid;
- alasql.databases[databaseid].engineid = 'LOCALSTORAGE';
-
- if (lsdb.tables) {
- for (var tbid in lsdb.tables) {
- // var tb = new alasql.Table({columns: db.tables[tbid].columns});
- // extend(tb,lsdb.tables[tbid]);
- // lsdb.tables[tbid] = true;
-
- // if(!alasql.options.autocommit) {
-
- // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
- LS.restoreTable(databaseid, tbid);
- // }
- // lsdb.tables[tbid].indexColumns();
-
- // index columns
- // convert types
- }
- }
- // }
-
-};
-
-//
-// 91websql.js
-// WebSQL database support
-// (c) 2014, Andrey Gershun
-//
-
-var SQLITE = (alasql.engines.SQLITE = function() {});
-
-SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) {
- throw new Error('Connot create SQLITE database in memory. Attach it.');
-};
-
-SQLITE.dropDatabase = function(databaseid) {
- throw new Error('This is impossible to drop SQLite database. Detach it.');
-};
-
-SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) {
- var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
- }
-
- if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) {
- if (args[0] instanceof yy.StringValue) {
- var value = args[0].value;
- } else if (args[0] instanceof yy.ParamValue) {
- var value = params[args[0].param];
- }
- alasql.utils.loadBinaryFile(
- value,
- true,
- function(data) {
- var db = new alasql.Database(dbid || sqldbid);
- db.engineid = 'SQLITE';
- db.sqldbid = sqldbid;
- var sqldb = (db.sqldb = new SQL.Database(data));
- db.tables = [];
- var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;
-
- tables.forEach(function(tbl) {
- db.tables[tbl[1]] = {};
- var columns = (db.tables[tbl[1]].columns = []);
- var ast = alasql.parse(tbl[4]);
-
- var coldefs = ast.statements[0].columns;
- if (coldefs && coldefs.length > 0) {
- coldefs.forEach(function(cd) {
- columns.push(cd);
- });
- }
- });
-
- cb(1);
- },
- function(err) {
- throw new Error('Cannot open SQLite database file "' + args[0].value + '"');
- }
- );
- return res;
- } else {
- throw new Error('Cannot attach SQLite database without a file');
- }
-
- return res;
-};
-
-SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) {
- var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid);
- var columns = (query.sources[idx].columns = []);
- if (data[0].columns.length > 0) {
- data[0].columns.forEach(function(columnid) {
- columns.push({columnid: columnid});
- });
- }
-
- var res = [];
- if (data[0].values.length > 0) {
- data[0].values.forEach(function(d) {
- var r = {};
- columns.forEach(function(col, idx) {
- r[col.columnid] = d[idx];
- });
- res.push(r);
- });
- }
- if (cb) cb(res, idx, query);
-};
-
-SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) {
- var sqldb = alasql.databases[databaseid].sqldb;
- for (var i = 0, ilen = value.length; i < ilen; i++) {
- var s = 'INSERT INTO ' + tableid + ' (';
- var d = value[i];
- var keys = Object.keys(d);
- s += keys.join(',');
- s += ') VALUES (';
- s += keys
- .map(function(k) {
- v = d[k];
- if (typeof v == 'string') v = "'" + v + "'";
- return v;
- })
- .join(',');
- s += ')';
- sqldb.exec(s);
- }
- var res = ilen;
- if (cb) cb(res);
- return res;
-};
-
-//
-// 91localstorage.js
-// localStorage and DOM-Storage engine
-// Date: 09.12.2014
-// (c) Andrey Gershun
-//
-
-var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {});
-
-FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) {
-
- var res = 1;
- var filename = args[0].value;
-
- alasql.utils.fileExists(filename, function(fex) {
-
- if (fex) {
- if (ifnotexists) {
- res = 0;
- if (cb) res = cb(res);
- return res;
- } else {
- throw new Error('Cannot create new database file, because it already exists');
- }
- } else {
- var data = {tables: {}};
- alasql.utils.saveFile(filename, JSON.stringify(data), function(data) {
- if (cb) res = cb(res);
- });
- }
- });
- return res;
-};
-
-FS.dropDatabase = function(fsdbid, ifexists, cb) {
- var res;
- var filename = fsdbid.value;
-
- alasql.utils.fileExists(filename, function(fex) {
- if (fex) {
- res = 1;
- alasql.utils.deleteFile(filename, function() {
- res = 1;
- if (cb) res = cb(res);
- });
- } else {
- if (!ifexists) {
- throw new Error('Cannot drop database file, because it does not exist');
- }
- res = 0;
- if (cb) res = cb(res);
- }
- });
- return res;
-};
-
-FS.attachDatabase = function(fsdbid, dbid, args, params, cb) {
-
- var res = 1;
- if (alasql.databases[dbid]) {
- throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
- }
- var db = new alasql.Database(dbid || fsdbid);
- db.engineid = 'FILESTORAGE';
- // db.fsdbid = fsdbid;
- db.filename = args[0].value;
- loadFile(db.filename, !!cb, function(s) {
- try {
- db.data = JSON.parse(s);
- } catch (err) {
- throw new Error('Data in FileStorage database are corrupted');
- }
- db.tables = db.data.tables;
- // IF AUTOCOMMIT IS OFF then copy data to memory
- if (!alasql.options.autocommit) {
- if (db.tables) {
- for (var tbid in db.tables) {
- db.tables[tbid].data = db.data[tbid];
- }
- }
- }
- if (cb) res = cb(res);
- });
- return res;
-};
-
-FS.createTable = function(databaseid, tableid, ifnotexists, cb) {
- var db = alasql.databases[databaseid];
- var tb = db.data[tableid];
- var res = 1;
-
- if (tb && !ifnotexists) {
- throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"');
- }
- var table = alasql.databases[databaseid].tables[tableid];
- db.data.tables[tableid] = {columns: table.columns};
- db.data[tableid] = [];
-
- FS.updateFile(databaseid);
-
- if (cb) cb(res);
- return res;
-};
-
-FS.updateFile = function(databaseid) {
-
- var db = alasql.databases[databaseid];
- if (db.issaving) {
- db.postsave = true;
- return;
- }
- db.issaving = true;
- db.postsave = false;
- alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() {
- db.issaving = false;
-
- if (db.postsave) {
- setTimeout(function() {
- FS.updateFile(databaseid);
- }, 50); // TODO Test with different timeout parameters
- }
- });
-};
-
-FS.dropTable = function(databaseid, tableid, ifexists, cb) {
- var res = 1;
- var db = alasql.databases[databaseid];
- if (!ifexists && !db.tables[tableid]) {
- throw new Error(
- 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist'
- );
- }
- delete db.tables[tableid];
- delete db.data.tables[tableid];
- delete db.data[tableid];
- FS.updateFile(databaseid);
- if (cb) cb(res);
- return res;
-};
-
-FS.fromTable = function(databaseid, tableid, cb, idx, query) {
-
- var db = alasql.databases[databaseid];
- var res = db.data[tableid];
- if (cb) res = cb(res, idx, query);
- return res;
-};
-
-FS.intoTable = function(databaseid, tableid, value, columns, cb) {
- var db = alasql.databases[databaseid];
- var res = value.length;
- var tb = db.data[tableid];
- if (!tb) tb = [];
- db.data[tableid] = tb.concat(value);
- FS.updateFile(databaseid);
- if (cb) cb(res);
- return res;
-};
-
-FS.loadTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- db.tables[tableid].data = db.data[tableid];
-};
-
-FS.saveTableData = function(databaseid, tableid) {
- var db = alasql.databases[databaseid];
- db.data[tableid] = db.tables[tableid].data;
- db.tables[tableid].data = null;
- FS.updateFile(databaseid);
-};
-
-FS.commit = function(databaseid, cb) {
-
- var db = alasql.databases[databaseid];
- var fsdb = {tables: {}};
- if (db.tables) {
- for (var tbid in db.tables) {
- db.data.tables[tbid] = {columns: db.tables[tbid].columns};
- db.data[tbid] = db.tables[tbid].data;
- }
- }
- FS.updateFile(databaseid);
- return cb ? cb(1) : 1;
-};
-
-FS.begin = FS.commit;
-
-FS.rollback = function(databaseid, cb) {
- var res = 1;
- var db = alasql.databases[databaseid];
- db.dbversion++;
-
- // var lsdbid = alasql.databases[databaseid].lsdbid;
- // lsdb = LS.get(lsdbid);
- wait();
- function wait() {
- setTimeout(function() {
- if (db.issaving) {
- return wait();
- } else {
- alasql.loadFile(db.filename, !!cb, function(data) {
- db.data = data;
- db.tables = {};
- for (var tbid in db.data.tables) {
- var tb = new alasql.Table({columns: db.data.tables[tbid].columns});
- extend(tb, db.data.tables[tbid]);
- db.tables[tbid] = tb;
- if (!alasql.options.autocommit) {
- db.tables[tbid].data = db.data[tbid];
- }
- db.tables[tbid].indexColumns();
-
- // index columns
- // convert types
- }
-
- delete alasql.databases[databaseid];
- alasql.databases[databaseid] = new alasql.Database(databaseid);
- extend(alasql.databases[databaseid], db);
- alasql.databases[databaseid].engineid = 'FILESTORAGE';
- alasql.databases[databaseid].filename = db.filename;
-
- if (cb) res = cb(res);
- // Todo: check why no return
- });
- }
- }, 100);
- }
-
- // if(!alasql.options.autocommit) {
-
-};
-
-if(utils.isBrowser && !utils.isWebWorker) {
-
-alasql = alasql || false;
-
-if (!alasql) {
- throw new Error('alasql was not found');
-}
-
-alasql.worker = function() {
- throw new Error('Can find webworker in this enviroment');
-};
-
-if (typeof Worker !== 'undefined') {
- alasql.worker = function(path, paths, cb) {
- // var path;
- if (path === true) {
- path = undefined;
- }
-
- if (typeof path === 'undefined') {
- var sc = document.getElementsByTagName('script');
- for (var i = 0; i < sc.length; i++) {
- if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js';
- break;
- } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js';
- break;
- } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
- path = sc[i].src;
- break;
- } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
- path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js';
- break;
- }
- }
- }
-
- if (typeof path === 'undefined') {
- throw new Error('Path to alasql.js is not specified');
- } else if (path !== false) {
- var js = "importScripts('";
- js += path;
- js +=
- "');self.onmessage = function(event) {" +
- 'alasql(event.data.sql,event.data.params, function(data){' +
- 'postMessage({id:event.data.id, data:data});});}';
-
- var blob = new Blob([js], {type: 'text/plain'});
- alasql.webworker = new Worker(URL.createObjectURL(blob));
-
- alasql.webworker.onmessage = function(event) {
- var id = event.data.id;
-
- alasql.buffer[id](event.data.data);
- delete alasql.buffer[id];
- };
-
- alasql.webworker.onerror = function(e) {
- throw e;
- };
-
- if (arguments.length > 1) {
- var sql =
- 'REQUIRE ' +
- paths
- .map(function(p) {
- return '"' + p + '"';
- })
- .join(',');
- alasql(sql, [], cb);
- }
- } else if (path === false) {
- delete alasql.webworker;
- return;
- }
- };
-}
-
-/* FileSaver.js
- * A saveAs() FileSaver implementation.
- * 1.3.2
- * 2016-06-16 18:25:19
- *
- * By Eli Grey, http://eligrey.com
- * License: MIT
- * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
- */
-
-/*global self */
-/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
-
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-
-var saveAs =
- saveAs ||
- (function(view) {
- 'use strict';
- // IE <10 is explicitly unsupported
- if (
- typeof view === 'undefined' ||
- (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent))
- ) {
- return;
- }
- var doc = view.document,
- // only get URL when necessary in case Blob.js hasn't overridden it yet
- get_URL = function() {
- return view.URL || view.webkitURL || view;
- },
- save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'),
- can_use_save_link = 'download' in save_link,
- click = function(node) {
- var event = new MouseEvent('click');
- node.dispatchEvent(event);
- },
- is_safari = /constructor/i.test(view.HTMLElement) || view.safari,
- is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent),
- throw_outside = function(ex) {
- (view.setImmediate || view.setTimeout)(function() {
- throw ex;
- }, 0);
- },
- force_saveable_type = 'application/octet-stream',
- // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
- arbitrary_revoke_timeout = 1000 * 40, // in ms
- revoke = function(file) {
- var revoker = function() {
- if (typeof file === 'string') {
- // file is an object URL
- get_URL().revokeObjectURL(file);
- } else {
- // file is a File
- file.remove();
- }
- };
- setTimeout(revoker, arbitrary_revoke_timeout);
- },
- dispatch = function(filesaver, event_types, event) {
- event_types = [].concat(event_types);
- var i = event_types.length;
- while (i--) {
- var listener = filesaver['on' + event_types[i]];
- if (typeof listener === 'function') {
- try {
- listener.call(filesaver, event || filesaver);
- } catch (ex) {
- throw_outside(ex);
- }
- }
- }
- },
- auto_bom = function(blob) {
- // prepend BOM for UTF-8 XML and text/* types (including HTML)
- // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
- if (
- /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(
- blob.type
- )
- ) {
- return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type});
- }
- return blob;
- },
- FileSaver = function(blob, name, no_auto_bom) {
- if (!no_auto_bom) {
- blob = auto_bom(blob);
- }
- // First try a.download, then web filesystem, then object URLs
- var filesaver = this,
- type = blob.type,
- force = type === force_saveable_type,
- object_url,
- dispatch_all = function() {
- dispatch(filesaver, 'writestart progress write writeend'.split(' '));
- },
- // on any filesys errors revert to saving with object URLs
- fs_error = function() {
- if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
- // Safari doesn't allow downloading of blob urls
- var reader = new FileReader();
- reader.onloadend = function() {
- var url = is_chrome_ios
- ? reader.result
- : reader.result.replace(
- /^data:[^;]*;/,
- 'data:attachment/file;'
- );
- var popup = view.open(url, '_blank');
- if (!popup) view.location.href = url;
- url = undefined; // release reference before dispatching
- filesaver.readyState = filesaver.DONE;
- dispatch_all();
- };
- reader.readAsDataURL(blob);
- filesaver.readyState = filesaver.INIT;
- return;
- }
- // don't create more object URLs than needed
- if (!object_url) {
- object_url = get_URL().createObjectURL(blob);
- }
- if (force) {
- view.location.href = object_url;
- } else {
- var opened = view.open(object_url, '_blank');
- if (!opened) {
- // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
- view.location.href = object_url;
- }
- }
- filesaver.readyState = filesaver.DONE;
- dispatch_all();
- revoke(object_url);
- };
- filesaver.readyState = filesaver.INIT;
-
- if (can_use_save_link) {
- object_url = get_URL().createObjectURL(blob);
- setTimeout(function() {
- save_link.href = object_url;
- save_link.download = name;
- click(save_link);
- dispatch_all();
- revoke(object_url);
- filesaver.readyState = filesaver.DONE;
- });
- return;
- }
-
- fs_error();
- },
- FS_proto = FileSaver.prototype,
- saveAs = function(blob, name, no_auto_bom) {
- return new FileSaver(blob, name || blob.name || 'download', no_auto_bom);
- };
- // IE 10+ (native saveAs)
- if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
- return function(blob, name, no_auto_bom) {
- name = name || blob.name || 'download';
-
- if (!no_auto_bom) {
- blob = auto_bom(blob);
- }
- return navigator.msSaveOrOpenBlob(blob, name);
- };
- }
-
- FS_proto.abort = function() {};
- FS_proto.readyState = FS_proto.INIT = 0;
- FS_proto.WRITING = 1;
- FS_proto.DONE = 2;
-
- FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null;
-
- return saveAs;
- })(
- (typeof self !== 'undefined' && self) ||
- (typeof window !== 'undefined' && window) ||
- this.content
- );
-// `self` is undefined in Firefox for Android content script context
-// while `this` is nsIContentFrameMessageManager
-// with an attribute `content` that corresponds to the window
-
-if (typeof module !== 'undefined' && module.exports) {
- module.exports.saveAs = saveAs;
-} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) {
- define('FileSaver.js', function() {
- return saveAs;
- });
-}
-
-/* eslint-disable */
-
-/*
-//
-// Last part of Alasql.js
-// Date: 03.11.2014
-// (c) 2014, Andrey Gershun
-//
-*/
-
-// This is a final part of Alasql
-
-//*only-for-browser/*
-if(utils.isCordova || utils.isMeteorServer || utils.isNode ){
- console.warn('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.')
-}
-//*/
-
-// FileSaveAs
-alasql.utils.saveAs = saveAs;
-
-};
-
-// Create default database
-new Database("alasql");
-
-// Set default database
-alasql.use("alasql");
-
-return alasql;
-}));
-
+//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
+/*
+@module alasql
+@version 0.4.11-update-dependencies-ac1eccc0undefined
+
+AlaSQL - JavaScript SQL database
+© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
+
+@license
+The MIT License (MIT)
+
+Copyright 2014-2016 Andrey Gershun (agershun@gmail.com) & Mathias Rangel Wulff (m@rawu.dk)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+/* eslint-disable */
+
+"use strict";
+
+/**
+ @fileoverview AlaSQL JavaScript SQL library
+ @see http://github.com/agershun/alasql
+*/
+
+/**
+ Callback from statement
+ @callback statement-callback
+ @param {object} data Result data
+*/
+
+/**
+ UMD envelope for AlaSQL
+*/
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define([], factory);
+ } else if (typeof exports === 'object') {
+ /** alasql main function */
+ module.exports = factory();
+ } else {
+ root.alasql = factory();
+ }
+}(this, function () {
+
+/**
+ AlaSQL - Main Alasql class
+ @function
+ @param {string|function|object} sql - SQL-statement or data object for fuent interface
+ @param {object} params - SQL parameters
+ @param {function} cb - callback function
+ @param {object} scope - Scope for nested queries
+ @return {any} - Result data object
+
+ @example
+ Standard sync call:
+ alasql('CREATE TABLE one');
+ Query:
+ var res = alasql('SELECT * FROM one');
+ Call with parameters:
+ var res = alasql('SELECT * FROM ?',[data]);
+ Standard async call with callback function:
+ alasql('SELECT * FROM ?',[data],function(res){
+ console.log(data);
+ });
+ Call with scope for subquery (to pass common values):
+ var scope = {one:{a:2,b;20}}
+ alasql('SELECT * FROM ? two WHERE two.a = one.a',[data],null,scope);
+ Call for fluent interface with data object:
+ alasql(data).Where(function(x){return x.a == 10}).exec();
+ Call for fluent interface without data object:
+ alasql().From(data).Where(function(x){return x.a == 10}).exec();
+ */
+
+var alasql = function(sql, params, cb, scope) {
+
+ params = params||[];
+
+ if(typeof importScripts !== 'function' && alasql.webworker) {
+ var id = alasql.lastid++;
+ alasql.buffer[id] = cb;
+ alasql.webworker.postMessage({id:id,sql:sql,params:params});
+ return;
+ }
+
+ if(arguments.length === 0) {
+ // Without arguments - Fluent interface
+ return new yy.Select({
+ columns:[new yy.Column({columnid:'*'})],
+ from: [new yy.ParamValue({param:0})]
+ });
+ } else if(arguments.length === 1){
+ // Access promise notation without using `.promise(...)`
+ if(sql.constructor === Array){
+ return alasql.promise(sql);
+ }
+ }
+ // Avoid setting params if not needed even with callback
+ if(typeof params === 'function'){
+ scope = cb;
+ cb = params;
+ params = [];
+ }
+
+ if(typeof params !== 'object'){
+ params = [params];
+ }
+
+ // Standard interface
+ // alasql('#sql');
+ if(typeof sql === 'string' && sql[0]==='#' && typeof document === "object") {
+ sql = document.querySelector(sql).textContent;
+ } else if(typeof sql === 'object' && sql instanceof HTMLElement) {
+ sql = sql.textContent;
+ } else if(typeof sql === 'function') {
+ // to run multiline functions
+ sql = sql.toString();
+ sql = (/\/\*([\S\s]+)\*\//m.exec(sql) || ['','Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.'])[1];
+ }
+ // Run SQL
+ return alasql.exec(sql, params, cb, scope);
+};
+
+/**
+ Current version of alasql
+ @constant {string}
+*/
+alasql.version = '0.4.11-update-dependencies-ac1eccc0undefined';
+
+/**
+ Debug flag
+ @type {boolean}
+*/
+alasql.debug = undefined; // Initial debug variable
+
+//*only-for-browser/*
+var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to
+var __dirname = '';
+//*/
+
+/* parser generated by jison 0.4.18 */
+/*
+ Returns a Parser object of the following structure:
+
+ Parser: {
+ yy: {}
+ }
+
+ Parser.prototype: {
+ yy: {},
+ trace: function(),
+ symbols_: {associative list: name ==> number},
+ terminals_: {associative list: number ==> name},
+ productions_: [...],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
+ table: [...],
+ defaultActions: {...},
+ parseError: function(str, hash),
+ parse: function(input),
+
+ lexer: {
+ EOF: 1,
+ parseError: function(str, hash),
+ setInput: function(input),
+ input: function(),
+ unput: function(str),
+ more: function(),
+ less: function(n),
+ pastInput: function(),
+ upcomingInput: function(),
+ showPosition: function(),
+ test_match: function(regex_match_array, rule_index),
+ next: function(),
+ lex: function(),
+ begin: function(condition),
+ popState: function(),
+ _currentRules: function(),
+ topState: function(),
+ pushState: function(condition),
+
+ options: {
+ ranges: boolean (optional: true ==> token location info will include a .range[] member)
+ flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
+ backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
+ },
+
+ performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
+ rules: [...],
+ conditions: {associative list: name ==> set},
+ }
+ }
+
+ token location info (@$, _$, etc.): {
+ first_line: n,
+ last_line: n,
+ first_column: n,
+ last_column: n,
+ range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
+ }
+
+ the parseError function receives a 'hash' object with these members for lexer and parser errors: {
+ text: (matched text)
+ token: (the produced terminal token, if any)
+ line: (yylineno)
+ }
+ while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
+ loc: (yylloc)
+ expected: (string describing the set of expected tokens)
+ recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
+ }
+*/
+var alasqlparser = (function(){
+var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13],$V1=[1,104],$V2=[1,102],$V3=[1,103],$V4=[1,6],$V5=[1,42],$V6=[1,79],$V7=[1,76],$V8=[1,94],$V9=[1,93],$Va=[1,69],$Vb=[1,101],$Vc=[1,85],$Vd=[1,64],$Ve=[1,71],$Vf=[1,84],$Vg=[1,66],$Vh=[1,70],$Vi=[1,68],$Vj=[1,61],$Vk=[1,74],$Vl=[1,62],$Vm=[1,67],$Vn=[1,83],$Vo=[1,77],$Vp=[1,86],$Vq=[1,87],$Vr=[1,81],$Vs=[1,82],$Vt=[1,80],$Vu=[1,88],$Vv=[1,89],$Vw=[1,90],$Vx=[1,91],$Vy=[1,92],$Vz=[1,98],$VA=[1,65],$VB=[1,78],$VC=[1,72],$VD=[1,96],$VE=[1,97],$VF=[1,63],$VG=[1,73],$VH=[1,108],$VI=[1,107],$VJ=[10,306,602,764],$VK=[10,306,310,602,764],$VL=[1,115],$VM=[1,116],$VN=[1,117],$VO=[1,118],$VP=[1,119],$VQ=[130,353,410],$VR=[1,127],$VS=[1,126],$VT=[1,134],$VU=[1,164],$VV=[1,175],$VW=[1,178],$VX=[1,173],$VY=[1,181],$VZ=[1,185],$V_=[1,160],$V$=[1,182],$V01=[1,169],$V11=[1,171],$V21=[1,174],$V31=[1,183],$V41=[1,166],$V51=[1,193],$V61=[1,188],$V71=[1,189],$V81=[1,194],$V91=[1,195],$Va1=[1,196],$Vb1=[1,197],$Vc1=[1,198],$Vd1=[1,199],$Ve1=[1,200],$Vf1=[1,201],$Vg1=[1,202],$Vh1=[1,176],$Vi1=[1,177],$Vj1=[1,179],$Vk1=[1,180],$Vl1=[1,186],$Vm1=[1,192],$Vn1=[1,184],$Vo1=[1,187],$Vp1=[1,172],$Vq1=[1,170],$Vr1=[1,191],$Vs1=[1,203],$Vt1=[2,4,5],$Vu1=[2,471],$Vv1=[1,206],$Vw1=[1,211],$Vx1=[1,220],$Vy1=[1,216],$Vz1=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VA1=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$VB1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC1=[1,249],$VD1=[1,256],$VE1=[1,265],$VF1=[1,270],$VG1=[1,269],$VH1=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VI1=[2,162],$VJ1=[1,281],$VK1=[10,74,78,306,310,505,602,764],$VL1=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],$VM1=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VN1=[1,562],$VO1=[1,564],$VP1=[2,503],$VQ1=[1,569],$VR1=[1,580],$VS1=[1,583],$VT1=[1,584],$VU1=[10,78,89,132,137,146,189,296,306,310,470,602,764],$VV1=[10,74,306,310,602,764],$VW1=[2,567],$VX1=[1,602],$VY1=[2,4,5,156],$VZ1=[1,640],$V_1=[1,612],$V$1=[1,646],$V02=[1,647],$V12=[1,620],$V22=[1,631],$V32=[1,618],$V42=[1,626],$V52=[1,619],$V62=[1,627],$V72=[1,629],$V82=[1,621],$V92=[1,622],$Va2=[1,641],$Vb2=[1,638],$Vc2=[1,639],$Vd2=[1,615],$Ve2=[1,617],$Vf2=[1,609],$Vg2=[1,610],$Vh2=[1,611],$Vi2=[1,613],$Vj2=[1,614],$Vk2=[1,616],$Vl2=[1,623],$Vm2=[1,624],$Vn2=[1,628],$Vo2=[1,630],$Vp2=[1,632],$Vq2=[1,633],$Vr2=[1,634],$Vs2=[1,635],$Vt2=[1,636],$Vu2=[1,642],$Vv2=[1,643],$Vw2=[1,644],$Vx2=[1,645],$Vy2=[2,287],$Vz2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA2=[2,359],$VB2=[1,668],$VC2=[1,678],$VD2=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE2=[1,694],$VF2=[1,703],$VG2=[1,702],$VH2=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VI2=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2=[2,202],$VK2=[1,725],$VL2=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],$VM2=[2,163],$VN2=[1,728],$VO2=[2,4,5,112],$VP2=[1,741],$VQ2=[1,760],$VR2=[1,740],$VS2=[1,739],$VT2=[1,734],$VU2=[1,735],$VV2=[1,737],$VW2=[1,738],$VX2=[1,742],$VY2=[1,743],$VZ2=[1,744],$V_2=[1,745],$V$2=[1,746],$V03=[1,747],$V13=[1,748],$V23=[1,749],$V33=[1,750],$V43=[1,751],$V53=[1,752],$V63=[1,753],$V73=[1,754],$V83=[1,755],$V93=[1,756],$Va3=[1,757],$Vb3=[1,759],$Vc3=[1,761],$Vd3=[1,762],$Ve3=[1,763],$Vf3=[1,764],$Vg3=[1,765],$Vh3=[1,766],$Vi3=[1,767],$Vj3=[1,770],$Vk3=[1,771],$Vl3=[1,772],$Vm3=[1,773],$Vn3=[1,774],$Vo3=[1,775],$Vp3=[1,776],$Vq3=[1,777],$Vr3=[1,778],$Vs3=[1,779],$Vt3=[1,780],$Vu3=[1,781],$Vv3=[74,89,189],$Vw3=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],$Vx3=[1,798],$Vy3=[10,74,78,300,306,310,602,764],$Vz3=[1,799],$VA3=[1,805],$VB3=[1,806],$VC3=[1,810],$VD3=[10,74,78,306,310,602,764],$VE3=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],$VF3=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VG3=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],$VH3=[2,4,5,132,296],$VI3=[1,844],$VJ3=[10,74,76,78,306,310,602,764],$VK3=[2,738],$VL3=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],$VM3=[2,1161],$VN3=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],$VO3=[10,74,76,78,139,141,145,306,310,420,424,602,764],$VP3=[10,74,78,139,141,306,310,602,764],$VQ3=[10,78,89,132,146,189,296,306,310,470,602,764],$VR3=[335,338,339],$VS3=[2,764],$VT3=[1,869],$VU3=[1,870],$VV3=[1,871],$VW3=[1,872],$VX3=[1,881],$VY3=[1,880],$VZ3=[164,166,334],$V_3=[2,444],$V$3=[1,936],$V04=[2,4,5,77,131,156,290,291,292,293],$V14=[1,951],$V24=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V34=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$V44=[2,375],$V54=[1,958],$V64=[306,308,310],$V74=[74,300],$V84=[74,300,426],$V94=[1,965],$Va4=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vb4=[74,426],$Vc4=[1,978],$Vd4=[1,977],$Ve4=[1,984],$Vf4=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],$Vg4=[1,1010],$Vh4=[10,72,78,306,310,602,764],$Vi4=[1,1016],$Vj4=[1,1017],$Vk4=[1,1018],$Vl4=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],$Vm4=[1,1068],$Vn4=[1,1067],$Vo4=[1,1081],$Vp4=[1,1080],$Vq4=[1,1088],$Vr4=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$Vs4=[1,1119],$Vt4=[10,78,89,146,189,306,310,470,602,764],$Vu4=[1,1139],$Vv4=[1,1138],$Vw4=[1,1137],$Vx4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy4=[1,1153],$Vz4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VA4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VB4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VC4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VD4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VE4=[2,406],$VF4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VG4=[2,285],$VH4=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$VI4=[10,78,306,310,602,764],$VJ4=[1,1189],$VK4=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],$VL4=[10,74,78,306,308,310,464,602,764],$VM4=[1,1200],$VN4=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],$VO4=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],$VP4=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VQ4=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VR4=[2,1085],$VS4=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],$VT4=[1,1252],$VU4=[10,74,78,128,306,308,310,464,602,764],$VV4=[115,116,124],$VW4=[2,584],$VX4=[1,1280],$VY4=[76,139],$VZ4=[2,724],$V_4=[1,1297],$V$4=[1,1298],$V05=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$V15=[2,330],$V25=[1,1322],$V35=[1,1336],$V45=[1,1338],$V55=[2,487],$V65=[74,78],$V75=[10,306,308,310,464,602,764],$V85=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],$V95=[1,1354],$Va5=[1,1358],$Vb5=[1,1359],$Vc5=[1,1361],$Vd5=[1,1362],$Ve5=[1,1363],$Vf5=[1,1364],$Vg5=[1,1365],$Vh5=[1,1366],$Vi5=[1,1367],$Vj5=[1,1368],$Vk5=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vl5=[1,1393],$Vm5=[10,72,78,118,162,168,169,245,247,306,310,602,764],$Vn5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vo5=[1,1490],$Vp5=[1,1492],$Vq5=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],$Vr5=[1,1506],$Vs5=[10,72,74,78,162,168,169,245,247,306,310,602,764],$Vt5=[1,1524],$Vu5=[1,1526],$Vv5=[1,1527],$Vw5=[1,1523],$Vx5=[1,1522],$Vy5=[1,1521],$Vz5=[1,1528],$VA5=[1,1518],$VB5=[1,1519],$VC5=[1,1520],$VD5=[1,1545],$VE5=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VF5=[1,1556],$VG5=[1,1564],$VH5=[1,1563],$VI5=[10,72,78,162,168,169,245,247,306,310,602,764],$VJ5=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VK5=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VL5=[1,1621],$VM5=[1,1623],$VN5=[1,1620],$VO5=[1,1622],$VP5=[187,193,368,369,370,373],$VQ5=[2,515],$VR5=[1,1628],$VS5=[1,1647],$VT5=[10,72,78,162,168,169,306,310,602,764],$VU5=[1,1657],$VV5=[1,1658],$VW5=[1,1659],$VX5=[1,1678],$VY5=[4,10,243,306,310,343,356,602,764],$VZ5=[1,1726],$V_5=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],$V$5=[2,4,5,77],$V06=[1,1820],$V16=[1,1832],$V26=[1,1851],$V36=[10,72,78,162,168,169,306,310,415,602,764],$V46=[10,74,78,230,306,310,602,764];
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"Literal":3,"LITERAL":4,"BRALITERAL":5,"NonReserved":6,"LiteralWithSpaces":7,"main":8,"Statements":9,"EOF":10,"Statements_group0":11,"AStatement":12,"ExplainStatement":13,"EXPLAIN":14,"QUERY":15,"PLAN":16,"Statement":17,"AlterTable":18,"AttachDatabase":19,"Call":20,"CreateDatabase":21,"CreateIndex":22,"CreateGraph":23,"CreateTable":24,"CreateView":25,"CreateEdge":26,"CreateVertex":27,"Declare":28,"Delete":29,"DetachDatabase":30,"DropDatabase":31,"DropIndex":32,"DropTable":33,"DropView":34,"If":35,"Insert":36,"Merge":37,"Reindex":38,"RenameTable":39,"Select":40,"ShowCreateTable":41,"ShowColumns":42,"ShowDatabases":43,"ShowIndex":44,"ShowTables":45,"TruncateTable":46,"WithSelect":47,"CreateTrigger":48,"DropTrigger":49,"BeginTransaction":50,"CommitTransaction":51,"RollbackTransaction":52,"EndTransaction":53,"UseDatabase":54,"Update":55,"JavaScript":56,"Source":57,"Assert":58,"While":59,"Continue":60,"Break":61,"BeginEnd":62,"Print":63,"Require":64,"SetVariable":65,"ExpressionStatement":66,"AddRule":67,"Query":68,"Echo":69,"CreateFunction":70,"CreateAggregate":71,"WITH":72,"WithTablesList":73,"COMMA":74,"WithTable":75,"AS":76,"LPAR":77,"RPAR":78,"SelectClause":79,"Select_option0":80,"IntoClause":81,"FromClause":82,"Select_option1":83,"WhereClause":84,"GroupClause":85,"OrderClause":86,"LimitClause":87,"UnionClause":88,"SEARCH":89,"Select_repetition0":90,"Select_option2":91,"PivotClause":92,"PIVOT":93,"Expression":94,"FOR":95,"PivotClause_option0":96,"PivotClause_option1":97,"UNPIVOT":98,"IN":99,"ColumnsList":100,"PivotClause_option2":101,"PivotClause2":102,"AsList":103,"AsLiteral":104,"AsPart":105,"RemoveClause":106,"REMOVE":107,"RemoveClause_option0":108,"RemoveColumnsList":109,"RemoveColumn":110,"Column":111,"LIKE":112,"StringValue":113,"ArrowDot":114,"ARROW":115,"DOT":116,"SearchSelector":117,"ORDER":118,"BY":119,"OrderExpressionsList":120,"SearchSelector_option0":121,"DOTDOT":122,"CARET":123,"EQ":124,"SearchSelector_repetition_plus0":125,"SearchSelector_repetition_plus1":126,"SearchSelector_option1":127,"WHERE":128,"OF":129,"CLASS":130,"NUMBER":131,"STRING":132,"SLASH":133,"VERTEX":134,"EDGE":135,"EXCLAMATION":136,"SHARP":137,"MODULO":138,"GT":139,"LT":140,"GTGT":141,"LTLT":142,"DOLLAR":143,"Json":144,"AT":145,"SET":146,"SetColumnsList":147,"TO":148,"VALUE":149,"ROW":150,"ExprList":151,"COLON":152,"PlusStar":153,"NOT":154,"SearchSelector_repetition2":155,"IF":156,"SearchSelector_repetition3":157,"Aggregator":158,"SearchSelector_repetition4":159,"SearchSelector_group0":160,"SearchSelector_repetition5":161,"UNION":162,"SearchSelectorList":163,"ALL":164,"SearchSelector_repetition6":165,"ANY":166,"SearchSelector_repetition7":167,"INTERSECT":168,"EXCEPT":169,"AND":170,"OR":171,"PATH":172,"RETURN":173,"ResultColumns":174,"REPEAT":175,"SearchSelector_repetition8":176,"SearchSelectorList_repetition0":177,"SearchSelectorList_repetition1":178,"PLUS":179,"STAR":180,"QUESTION":181,"SearchFrom":182,"FROM":183,"SelectModifier":184,"DISTINCT":185,"TopClause":186,"UNIQUE":187,"SelectClause_option0":188,"SELECT":189,"COLUMN":190,"MATRIX":191,"TEXTSTRING":192,"INDEX":193,"RECORDSET":194,"TOP":195,"NumValue":196,"TopClause_option0":197,"INTO":198,"Table":199,"FuncValue":200,"ParamValue":201,"VarValue":202,"FromTablesList":203,"JoinTablesList":204,"ApplyClause":205,"CROSS":206,"APPLY":207,"OUTER":208,"FromTable":209,"FromTable_option0":210,"FromTable_option1":211,"INDEXED":212,"INSERTED":213,"FromString":214,"JoinTable":215,"JoinMode":216,"JoinTableAs":217,"OnClause":218,"JoinTableAs_option0":219,"JoinTableAs_option1":220,"JoinModeMode":221,"NATURAL":222,"JOIN":223,"INNER":224,"LEFT":225,"RIGHT":226,"FULL":227,"SEMI":228,"ANTI":229,"ON":230,"USING":231,"GROUP":232,"GroupExpressionsList":233,"HavingClause":234,"GroupExpression":235,"GROUPING":236,"ROLLUP":237,"CUBE":238,"HAVING":239,"CORRESPONDING":240,"OrderExpression":241,"DIRECTION":242,"COLLATE":243,"NOCASE":244,"LIMIT":245,"OffsetClause":246,"OFFSET":247,"LimitClause_option0":248,"FETCH":249,"LimitClause_option1":250,"LimitClause_option2":251,"LimitClause_option3":252,"ResultColumn":253,"Star":254,"AggrValue":255,"Op":256,"LogicValue":257,"NullValue":258,"ExistsValue":259,"CaseValue":260,"CastClause":261,"ArrayValue":262,"NewClause":263,"Expression_group0":264,"CURRENT_TIMESTAMP":265,"JAVASCRIPT":266,"CREATE":267,"FUNCTION":268,"AGGREGATE":269,"NEW":270,"CAST":271,"ColumnType":272,"CONVERT":273,"PrimitiveValue":274,"OverClause":275,"OVER":276,"OverPartitionClause":277,"OverOrderByClause":278,"PARTITION":279,"SUM":280,"COUNT":281,"MIN":282,"MAX":283,"AVG":284,"FIRST":285,"LAST":286,"AGGR":287,"ARRAY":288,"FuncValue_option0":289,"REPLACE":290,"DATEADD":291,"DATEDIFF":292,"INTERVAL":293,"TRUE":294,"FALSE":295,"NSTRING":296,"NULL":297,"EXISTS":298,"ARRAYLBRA":299,"RBRA":300,"ParamValue_group0":301,"BRAQUESTION":302,"CASE":303,"WhensList":304,"ElseClause":305,"END":306,"When":307,"WHEN":308,"THEN":309,"ELSE":310,"REGEXP":311,"TILDA":312,"GLOB":313,"ESCAPE":314,"NOT_LIKE":315,"BARBAR":316,"MINUS":317,"AMPERSAND":318,"BAR":319,"GE":320,"LE":321,"EQEQ":322,"EQEQEQ":323,"NE":324,"NEEQEQ":325,"NEEQEQEQ":326,"CondOp":327,"AllSome":328,"ColFunc":329,"BETWEEN":330,"NOT_BETWEEN":331,"IS":332,"DOUBLECOLON":333,"SOME":334,"UPDATE":335,"SetColumn":336,"SetColumn_group0":337,"DELETE":338,"INSERT":339,"Into":340,"Values":341,"ValuesListsList":342,"DEFAULT":343,"VALUES":344,"ValuesList":345,"Value":346,"DateValue":347,"TemporaryClause":348,"TableClass":349,"IfNotExists":350,"CreateTableDefClause":351,"CreateTableOptionsClause":352,"TABLE":353,"CreateTableOptions":354,"CreateTableOption":355,"IDENTITY":356,"TEMP":357,"ColumnDefsList":358,"ConstraintsList":359,"Constraint":360,"ConstraintName":361,"PrimaryKey":362,"ForeignKey":363,"UniqueKey":364,"IndexKey":365,"Check":366,"CONSTRAINT":367,"CHECK":368,"PRIMARY":369,"KEY":370,"PrimaryKey_option0":371,"ColsList":372,"FOREIGN":373,"REFERENCES":374,"ForeignKey_option0":375,"OnForeignKeyClause":376,"ParColsList":377,"OnDeleteClause":378,"OnUpdateClause":379,"NO":380,"ACTION":381,"UniqueKey_option0":382,"UniqueKey_option1":383,"ColumnDef":384,"ColumnConstraintsClause":385,"ColumnConstraints":386,"SingularColumnType":387,"NumberMax":388,"ENUM":389,"MAXNUM":390,"ColumnConstraintsList":391,"ColumnConstraint":392,"ParLiteral":393,"ColumnConstraint_option0":394,"ColumnConstraint_option1":395,"DROP":396,"DropTable_group0":397,"IfExists":398,"TablesList":399,"ALTER":400,"RENAME":401,"ADD":402,"MODIFY":403,"ATTACH":404,"DATABASE":405,"DETACH":406,"AsClause":407,"USE":408,"SHOW":409,"VIEW":410,"CreateView_option0":411,"CreateView_option1":412,"SubqueryRestriction":413,"READ":414,"ONLY":415,"OPTION":416,"SOURCE":417,"ASSERT":418,"JsonObject":419,"ATLBRA":420,"JsonArray":421,"JsonValue":422,"JsonPrimitiveValue":423,"LCUR":424,"JsonPropertiesList":425,"RCUR":426,"JsonElementsList":427,"JsonProperty":428,"OnOff":429,"SetPropsList":430,"AtDollar":431,"SetProp":432,"OFF":433,"COMMIT":434,"TRANSACTION":435,"ROLLBACK":436,"BEGIN":437,"ElseStatement":438,"WHILE":439,"CONTINUE":440,"BREAK":441,"PRINT":442,"REQUIRE":443,"StringValuesList":444,"PluginsList":445,"Plugin":446,"ECHO":447,"DECLARE":448,"DeclaresList":449,"DeclareItem":450,"TRUNCATE":451,"MERGE":452,"MergeInto":453,"MergeUsing":454,"MergeOn":455,"MergeMatchedList":456,"OutputClause":457,"MergeMatched":458,"MergeNotMatched":459,"MATCHED":460,"MergeMatchedAction":461,"MergeNotMatchedAction":462,"TARGET":463,"OUTPUT":464,"CreateVertex_option0":465,"CreateVertex_option1":466,"CreateVertex_option2":467,"CreateVertexSet":468,"SharpValue":469,"CONTENT":470,"CreateEdge_option0":471,"GRAPH":472,"GraphList":473,"GraphVertexEdge":474,"GraphElement":475,"GraphVertexEdge_option0":476,"GraphVertexEdge_option1":477,"GraphElementVar":478,"GraphVertexEdge_option2":479,"GraphVertexEdge_option3":480,"GraphVertexEdge_option4":481,"GraphVar":482,"GraphAsClause":483,"GraphAtClause":484,"GraphElement2":485,"GraphElement2_option0":486,"GraphElement2_option1":487,"GraphElement2_option2":488,"GraphElement2_option3":489,"GraphElement_option0":490,"GraphElement_option1":491,"GraphElement_option2":492,"SharpLiteral":493,"GraphElement_option3":494,"GraphElement_option4":495,"GraphElement_option5":496,"ColonLiteral":497,"DeleteVertex":498,"DeleteVertex_option0":499,"DeleteEdge":500,"DeleteEdge_option0":501,"DeleteEdge_option1":502,"DeleteEdge_option2":503,"Term":504,"COLONDASH":505,"TermsList":506,"QUESTIONDASH":507,"CALL":508,"TRIGGER":509,"BeforeAfter":510,"InsertDeleteUpdate":511,"CreateTrigger_option0":512,"CreateTrigger_option1":513,"BEFORE":514,"AFTER":515,"INSTEAD":516,"REINDEX":517,"A":518,"ABSENT":519,"ABSOLUTE":520,"ACCORDING":521,"ADA":522,"ADMIN":523,"ALWAYS":524,"ASC":525,"ASSERTION":526,"ASSIGNMENT":527,"ATTRIBUTE":528,"ATTRIBUTES":529,"BASE64":530,"BERNOULLI":531,"BLOCKED":532,"BOM":533,"BREADTH":534,"C":535,"CASCADE":536,"CATALOG":537,"CATALOG_NAME":538,"CHAIN":539,"CHARACTERISTICS":540,"CHARACTERS":541,"CHARACTER_SET_CATALOG":542,"CHARACTER_SET_NAME":543,"CHARACTER_SET_SCHEMA":544,"CLASS_ORIGIN":545,"COBOL":546,"COLLATION":547,"COLLATION_CATALOG":548,"COLLATION_NAME":549,"COLLATION_SCHEMA":550,"COLUMNS":551,"COLUMN_NAME":552,"COMMAND_FUNCTION":553,"COMMAND_FUNCTION_CODE":554,"COMMITTED":555,"CONDITION_NUMBER":556,"CONNECTION":557,"CONNECTION_NAME":558,"CONSTRAINTS":559,"CONSTRAINT_CATALOG":560,"CONSTRAINT_NAME":561,"CONSTRAINT_SCHEMA":562,"CONSTRUCTOR":563,"CONTROL":564,"CURSOR_NAME":565,"DATA":566,"DATETIME_INTERVAL_CODE":567,"DATETIME_INTERVAL_PRECISION":568,"DB":569,"DEFAULTS":570,"DEFERRABLE":571,"DEFERRED":572,"DEFINED":573,"DEFINER":574,"DEGREE":575,"DEPTH":576,"DERIVED":577,"DESC":578,"DESCRIPTOR":579,"DIAGNOSTICS":580,"DISPATCH":581,"DOCUMENT":582,"DOMAIN":583,"DYNAMIC_FUNCTION":584,"DYNAMIC_FUNCTION_CODE":585,"EMPTY":586,"ENCODING":587,"ENFORCED":588,"EXCLUDE":589,"EXCLUDING":590,"EXPRESSION":591,"FILE":592,"FINAL":593,"FLAG":594,"FOLLOWING":595,"FORTRAN":596,"FOUND":597,"FS":598,"G":599,"GENERAL":600,"GENERATED":601,"GO":602,"GOTO":603,"GRANTED":604,"HEX":605,"HIERARCHY":606,"ID":607,"IGNORE":608,"IMMEDIATE":609,"IMMEDIATELY":610,"IMPLEMENTATION":611,"INCLUDING":612,"INCREMENT":613,"INDENT":614,"INITIALLY":615,"INPUT":616,"INSTANCE":617,"INSTANTIABLE":618,"INTEGRITY":619,"INVOKER":620,"ISOLATION":621,"K":622,"KEY_MEMBER":623,"KEY_TYPE":624,"LENGTH":625,"LEVEL":626,"LIBRARY":627,"LINK":628,"LOCATION":629,"LOCATOR":630,"M":631,"MAP":632,"MAPPING":633,"MAXVALUE":634,"MESSAGE_LENGTH":635,"MESSAGE_OCTET_LENGTH":636,"MESSAGE_TEXT":637,"MINVALUE":638,"MORE":639,"MUMPS":640,"NAME":641,"NAMES":642,"NAMESPACE":643,"NESTING":644,"NEXT":645,"NFC":646,"NFD":647,"NFKC":648,"NFKD":649,"NIL":650,"NORMALIZED":651,"NULLABLE":652,"NULLS":653,"OBJECT":654,"OCTETS":655,"OPTIONS":656,"ORDERING":657,"ORDINALITY":658,"OTHERS":659,"OVERRIDING":660,"P":661,"PAD":662,"PARAMETER_MODE":663,"PARAMETER_NAME":664,"PARAMETER_ORDINAL_POSITION":665,"PARAMETER_SPECIFIC_CATALOG":666,"PARAMETER_SPECIFIC_NAME":667,"PARAMETER_SPECIFIC_SCHEMA":668,"PARTIAL":669,"PASCAL":670,"PASSING":671,"PASSTHROUGH":672,"PERMISSION":673,"PLACING":674,"PLI":675,"PRECEDING":676,"PRESERVE":677,"PRIOR":678,"PRIVILEGES":679,"PUBLIC":680,"RECOVERY":681,"RELATIVE":682,"REPEATABLE":683,"REQUIRING":684,"RESPECT":685,"RESTART":686,"RESTORE":687,"RESTRICT":688,"RETURNED_CARDINALITY":689,"RETURNED_LENGTH":690,"RETURNED_OCTET_LENGTH":691,"RETURNED_SQLSTATE":692,"RETURNING":693,"ROLE":694,"ROUTINE":695,"ROUTINE_CATALOG":696,"ROUTINE_NAME":697,"ROUTINE_SCHEMA":698,"ROW_COUNT":699,"SCALE":700,"SCHEMA":701,"SCHEMA_NAME":702,"SCOPE_CATALOG":703,"SCOPE_NAME":704,"SCOPE_SCHEMA":705,"SECTION":706,"SECURITY":707,"SELECTIVE":708,"SELF":709,"SEQUENCE":710,"SERIALIZABLE":711,"SERVER":712,"SERVER_NAME":713,"SESSION":714,"SETS":715,"SIMPLE":716,"SIZE":717,"SPACE":718,"SPECIFIC_NAME":719,"STANDALONE":720,"STATE":721,"STATEMENT":722,"STRIP":723,"STRUCTURE":724,"STYLE":725,"SUBCLASS_ORIGIN":726,"T":727,"TABLE_NAME":728,"TEMPORARY":729,"TIES":730,"TOKEN":731,"TOP_LEVEL_COUNT":732,"TRANSACTIONS_COMMITTED":733,"TRANSACTIONS_ROLLED_BACK":734,"TRANSACTION_ACTIVE":735,"TRANSFORM":736,"TRANSFORMS":737,"TRIGGER_CATALOG":738,"TRIGGER_NAME":739,"TRIGGER_SCHEMA":740,"TYPE":741,"UNBOUNDED":742,"UNCOMMITTED":743,"UNDER":744,"UNLINK":745,"UNNAMED":746,"UNTYPED":747,"URI":748,"USAGE":749,"USER_DEFINED_TYPE_CATALOG":750,"USER_DEFINED_TYPE_CODE":751,"USER_DEFINED_TYPE_NAME":752,"USER_DEFINED_TYPE_SCHEMA":753,"VALID":754,"VERSION":755,"WHITESPACE":756,"WORK":757,"WRAPPER":758,"WRITE":759,"XMLDECLARATION":760,"XMLSCHEMA":761,"YES":762,"ZONE":763,"SEMICOLON":764,"PERCENT":765,"ROWS":766,"FuncValue_option0_group0":767,"$accept":0,"$end":1},
+terminals_: {2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},
+productions_: [0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],
+performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
+/* this == yyval */
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1:
+
+ if (alasql.options.casesensitive) this.$ = $$[$0];
+ else this.$ = $$[$0].toLowerCase();
+
+break;
+case 2:
+ this.$ = doubleq($$[$0].substr(1,$$[$0].length-2));
+break;
+case 3:
+ this.$ = $$[$0].toLowerCase()
+break;
+case 4:
+ this.$ = $$[$0]
+break;
+case 5:
+ this.$ = $$[$0] ? $$[$0-1] + ' ' + $$[$0] : $$[$0-1]
+break;
+case 6:
+ return new yy.Statements({statements:$$[$0-1]});
+break;
+case 7:
+ this.$ = $$[$0-2]; if($$[$0]) $$[$0-2].push($$[$0]);
+break;
+case 8: case 9: case 70: case 80: case 85: case 143: case 177: case 205: case 206: case 242: case 261: case 273: case 354: case 372: case 451: case 474: case 475: case 479: case 487: case 528: case 529: case 566: case 649: case 659: case 683: case 685: case 687: case 701: case 702: case 732: case 756:
+ this.$ = [$$[$0]];
+break;
+case 10:
+ this.$ = $$[$0]; $$[$0].explain = true;
+break;
+case 11:
+ this.$ = $$[$0]; $$[$0].explain = true;
+break;
+case 12:
+
+ this.$ = $$[$0];
+
+ // TODO combine exists and queries
+ if(yy.exists) this.$.exists = yy.exists;
+ delete yy.exists;
+ if(yy.queries) this.$.queries = yy.queries;
+ delete yy.queries;
+
+break;
+case 13: case 162: case 172: case 237: case 238: case 240: case 248: case 250: case 259: case 267: case 270: case 375: case 491: case 501: case 503: case 515: case 521: case 522: case 567:
+ this.$ = undefined;
+break;
+case 68:
+ this.$ = new yy.WithSelect({withs: $$[$0-1], select:$$[$0]});
+break;
+case 69: case 565:
+ $$[$0-2].push($$[$0]); this.$=$$[$0-2];
+break;
+case 71:
+ this.$ = {name:$$[$0-4], select:$$[$0-1]};
+break;
+case 72:
+
+ yy.extend(this.$,$$[$0-9]); yy.extend(this.$,$$[$0-8]); yy.extend(this.$,$$[$0-7]); yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-5]); yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
+ this.$ = $$[$0-9];
+/* if(yy.exists) this.$.exists = yy.exists;
+ delete yy.exists;
+ if(yy.queries) this.$.queries = yy.queries;
+ delete yy.queries;
+*/
+break;
+case 73:
+
+ this.$ = new yy.Search({selectors:$$[$0-2], from:$$[$0]});
+ yy.extend(this.$,$$[$0-1]);
+
+break;
+case 74:
+ this.$ = {pivot:{expr:$$[$0-5], columnid:$$[$0-3], inlist:$$[$0-2], as:$$[$0]}};
+break;
+case 75:
+ this.$ = {unpivot:{tocolumnid:$$[$0-8], forcolumnid:$$[$0-6], inlist:$$[$0-3], as:$$[$0]}};
+break;
+case 76: case 520: case 549: case 585: case 619: case 636: case 637: case 640: case 662:
+ this.$ = $$[$0-1];
+break;
+case 77: case 78: case 86: case 147: case 185: case 247: case 280: case 288: case 289: case 290: case 291: case 292: case 293: case 294: case 295: case 296: case 297: case 298: case 299: case 300: case 301: case 304: case 305: case 320: case 321: case 322: case 323: case 324: case 325: case 374: case 440: case 441: case 442: case 443: case 444: case 445: case 516: case 542: case 546: case 548: case 623: case 624: case 625: case 626: case 627: case 628: case 632: case 634: case 635: case 644: case 660: case 661: case 723: case 738: case 739: case 741: case 742: case 748: case 749:
+ this.$ = $$[$0];
+break;
+case 79: case 84: case 731: case 755:
+ this.$ = $$[$0-2]; this.$.push($$[$0]);
+break;
+case 81:
+ this.$ = {expr:$$[$0]};
+break;
+case 82:
+ this.$ = {expr:$$[$0-2],as:$$[$0]};
+break;
+case 83:
+ this.$ = {removecolumns:$$[$0]};
+break;
+case 87:
+ this.$ = {like:$$[$0]};
+break;
+case 90: case 104:
+ this.$ = {srchid:"PROP", args: [$$[$0]]};
+break;
+case 91:
+ this.$ = {srchid:"ORDERBY", args: $$[$0-1]};
+break;
+case 92:
+
+ var dir = $$[$0-1];
+ if(!dir) dir = 'ASC';
+ this.$ = {srchid:"ORDERBY", args: [{expression: new yy.Column({columnid:'_'}), direction:dir}]};
+
+break;
+case 93:
+ this.$ = {srchid:"PARENT"};
+break;
+case 94:
+ this.$ = {srchid:"APROP", args: [$$[$0]]};
+break;
+case 95:
+ this.$ = {selid:"ROOT"};
+break;
+case 96:
+ this.$ = {srchid:"EQ", args: [$$[$0]]};
+break;
+case 97:
+ this.$ = {srchid:"LIKE", args: [$$[$0]]};
+break;
+case 98: case 99:
+ this.$ = {selid:"WITH", args: $$[$0-1]};
+break;
+case 100:
+ this.$ = {srchid:$$[$0-3].toUpperCase(), args:$$[$0-1]};
+break;
+case 101:
+ this.$ = {srchid:"WHERE", args:[$$[$0-1]]};
+break;
+case 102:
+ this.$ = {selid:"OF", args:[$$[$0-1]]};
+break;
+case 103:
+ this.$ = {srchid:"CLASS", args:[$$[$0-1]]};
+break;
+case 105:
+ this.$ = {srchid:"NAME", args: [$$[$0].substr(1,$$[$0].length-2)]};
+break;
+case 106:
+ this.$ = {srchid:"CHILD"};
+break;
+case 107:
+ this.$ = {srchid:"VERTEX"};
+break;
+case 108:
+ this.$ = {srchid:"EDGE"};
+break;
+case 109:
+ this.$ = {srchid:"REF"};
+break;
+case 110:
+ this.$ = {srchid:"SHARP", args:[$$[$0]]};
+break;
+case 111:
+ this.$ = {srchid:"ATTR", args:((typeof $$[$0] == 'undefined')?undefined:[$$[$0]])};
+break;
+case 112:
+ this.$ = {srchid:"ATTR"};
+break;
+case 113:
+ this.$ = {srchid:"OUT"};
+break;
+case 114:
+ this.$ = {srchid:"IN"};
+break;
+case 115:
+ this.$ = {srchid:"OUTOUT"};
+break;
+case 116:
+ this.$ = {srchid:"ININ"};
+break;
+case 117:
+ this.$ = {srchid:"CONTENT"};
+break;
+case 118:
+ this.$ = {srchid:"EX",args:[new yy.Json({value:$$[$0]})]};
+break;
+case 119:
+ this.$ = {srchid:"AT", args:[$$[$0]]};
+break;
+case 120:
+ this.$ = {srchid:"AS", args:[$$[$0]]};
+break;
+case 121:
+ this.$ = {srchid:"SET", args:$$[$0-1]};
+break;
+case 122:
+ this.$ = {selid:"TO", args:[$$[$0]]};
+break;
+case 123:
+ this.$ = {srchid:"VALUE"};
+break;
+case 124:
+ this.$ = {srchid:"ROW", args:$$[$0-1]};
+break;
+case 125:
+ this.$ = {srchid:"CLASS", args:[$$[$0]]};
+break;
+case 126:
+ this.$ = {selid:$$[$0],args:[$$[$0-1]] };
+break;
+case 127:
+ this.$ = {selid:"NOT",args:$$[$0-1] };
+break;
+case 128:
+ this.$ = {selid:"IF",args:$$[$0-1] };
+break;
+case 129:
+ this.$ = {selid:$$[$0-3],args:$$[$0-1] };
+break;
+case 130:
+ this.$ = {selid:'DISTINCT',args:$$[$0-1] };
+break;
+case 131:
+ this.$ = {selid:'UNION',args:$$[$0-1] };
+break;
+case 132:
+ this.$ = {selid:'UNIONALL',args:$$[$0-1] };
+break;
+case 133:
+ this.$ = {selid:'ALL',args:[$$[$0-1]] };
+break;
+case 134:
+ this.$ = {selid:'ANY',args:[$$[$0-1]] };
+break;
+case 135:
+ this.$ = {selid:'INTERSECT',args:$$[$0-1] };
+break;
+case 136:
+ this.$ = {selid:'EXCEPT',args:$$[$0-1] };
+break;
+case 137:
+ this.$ = {selid:'AND',args:$$[$0-1] };
+break;
+case 138:
+ this.$ = {selid:'OR',args:$$[$0-1] };
+break;
+case 139:
+ this.$ = {selid:'PATH',args:[$$[$0-1]] };
+break;
+case 140:
+ this.$ = {srchid:'RETURN',args:$$[$0-1] };
+break;
+case 141:
+ this.$ = {selid:'REPEAT',sels:$$[$0-3], args:$$[$0-1] };
+break;
+case 142:
+ this.$ = $$[$0-2]; this.$.push($$[$0]);
+break;
+case 144:
+ this.$ = "PLUS";
+break;
+case 145:
+ this.$ = "STAR";
+break;
+case 146:
+ this.$ = "QUESTION";
+break;
+case 148:
+ this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]); yy.extend(this.$, $$[$0-1]);
+break;
+case 149:
+ this.$ = new yy.Select({ columns:$$[$0], distinct: true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
+break;
+case 150:
+ this.$ = new yy.Select({ columns:$$[$0], all:true }); yy.extend(this.$, $$[$0-3]);yy.extend(this.$, $$[$0-1]);
+break;
+case 151:
+
+ if(!$$[$0]) {
+ this.$ = new yy.Select({columns:[new yy.Column({columnid:'_',})], modifier:'COLUMN'});
+ } else {
+ this.$ = new yy.Select({ columns:$$[$0] }); yy.extend(this.$, $$[$0-2]);yy.extend(this.$, $$[$0-1]);
+ }
+
+break;
+case 152:
+ if($$[$0]=='SELECT') this.$ = undefined; else this.$ = {modifier: $$[$0]};
+break;
+case 153:
+ this.$ = {modifier:'VALUE'}
+break;
+case 154:
+ this.$ = {modifier:'ROW'}
+break;
+case 155:
+ this.$ = {modifier:'COLUMN'}
+break;
+case 156:
+ this.$ = {modifier:'MATRIX'}
+break;
+case 157:
+ this.$ = {modifier:'TEXTSTRING'}
+break;
+case 158:
+ this.$ = {modifier:'INDEX'}
+break;
+case 159:
+ this.$ = {modifier:'RECORDSET'}
+break;
+case 160:
+ this.$ = {top: $$[$0-1], percent:(typeof $$[$0] != 'undefined'?true:undefined)};
+break;
+case 161:
+ this.$ = {top: $$[$0-1]};
+break;
+case 163: case 330: case 523: case 524: case 724:
+this.$ = undefined;
+break;
+case 164: case 165: case 166: case 167:
+this.$ = {into: $$[$0]}
+break;
+case 168:
+
+ var s = $$[$0];
+ s = s.substr(1,s.length-2);
+ var x3 = s.substr(-3).toUpperCase();
+ var x4 = s.substr(-4).toUpperCase();
+ if(s[0] == '#') {
+ this.$ = {into: new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
+ this.$ = {into: new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ } else if(x4=='XLSX' || x4 == 'JSON') {
+ this.$ = {into: new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]})};
+ }
+
+break;
+case 169:
+ this.$ = { from: $$[$0] };
+break;
+case 170:
+ this.$ = { from: $$[$0-1], joins: $$[$0] };
+break;
+case 171:
+ this.$ = { from: $$[$0-2], joins: $$[$0-1] };
+break;
+case 173:
+ this.$ = new yy.Apply({select: $$[$0-2], applymode:'CROSS', as:$$[$0]});
+break;
+case 174:
+ this.$ = new yy.Apply({select: $$[$0-3], applymode:'CROSS', as:$$[$0]});
+break;
+case 175:
+ this.$ = new yy.Apply({select: $$[$0-2], applymode:'OUTER', as:$$[$0]});
+break;
+case 176:
+ this.$ = new yy.Apply({select: $$[$0-3], applymode:'OUTER', as:$$[$0]});
+break;
+case 178: case 243: case 452: case 530: case 531:
+ this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
+break;
+case 179:
+ this.$ = $$[$0-2]; this.$.as = $$[$0]
+break;
+case 180:
+ this.$ = $$[$0-3]; this.$.as = $$[$0]
+break;
+case 181:
+ this.$ = $$[$0-1]; this.$.as = 'default'
+break;
+case 182:
+ this.$ = new yy.Json({value:$$[$0-2]}); $$[$0-2].as = $$[$0]
+break;
+case 183:
+ this.$ = $$[$0-1]; $$[$0-1].as = $$[$0]
+break;
+case 184:
+ this.$ = $$[$0-2]; $$[$0-2].as = $$[$0]
+break;
+case 186: case 638: case 641:
+ this.$ = $$[$0-2];
+break;
+case 187: case 191: case 195: case 198:
+ this.$ = $$[$0-1]; $$[$0-1].as = $$[$0];
+break;
+case 188: case 192: case 196: case 199:
+ this.$ = $$[$0-2]; $$[$0-2].as = $$[$0];
+break;
+case 189: case 190: case 194: case 197:
+ this.$ = $$[$0]; $$[$0].as = 'default';
+break;
+case 193:
+ this.$ = {inserted:true}; /*$$[$0].as = 'default'*/;
+break;
+case 200:
+
+ var s = $$[$0];
+ s = s.substr(1,s.length-2);
+ var x3 = s.substr(-3).toUpperCase();
+ var x4 = s.substr(-4).toUpperCase();
+ var r;
+ if(s[0] == '#') {
+ r = new yy.FuncValue({funcid: 'HTML', args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else if(x3=='XLS' || x3 == 'CSV' || x3=='TAB') {
+ r = new yy.FuncValue({funcid: x3, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else if(x4=='XLSX' || x4 == 'JSON') {
+ r = new yy.FuncValue({funcid: x4, args:[new yy.StringValue({value: s}), new yy.Json({value:{headers:true}})]});
+ } else {
+ throw new Error('Unknown string in FROM clause');
+ };
+ this.$ = r;
+
+break;
+case 201:
+
+ if($$[$0-2] == 'INFORMATION_SCHEMA') {
+ this.$ = new yy.FuncValue({funcid: $$[$0-2], args:[new yy.StringValue({value:$$[$0]})]});
+ } else {
+ this.$ = new yy.Table({databaseid: $$[$0-2], tableid:$$[$0]});
+ }
+
+break;
+case 202:
+ this.$ = new yy.Table({tableid: $$[$0]});
+break;
+case 203: case 204:
+ this.$ = $$[$0-1]; $$[$0-1].push($$[$0]);
+break;
+case 207:
+ this.$ = new yy.Join($$[$0-2]); yy.extend(this.$, $$[$0-1]); yy.extend(this.$, $$[$0]);
+break;
+case 208:
+ this.$ = {table: $$[$0]};
+break;
+case 209:
+ this.$ = {table: $$[$0-1], as: $$[$0] } ;
+break;
+case 210:
+ this.$ = {table: $$[$0-2], as: $$[$0] } ;
+break;
+case 211:
+ this.$ = {json:new yy.Json({value:$$[$0-2],as:$$[$0]})};
+break;
+case 212:
+ this.$ = {param: $$[$0-1], as: $$[$0] } ;
+break;
+case 213:
+ this.$ = {param: $$[$0-2], as: $$[$0] } ;
+break;
+case 214:
+ this.$ = {select: $$[$0-2], as: $$[$0]} ;
+break;
+case 215:
+ this.$ = {select: $$[$0-3], as: $$[$0] } ;
+break;
+case 216:
+ this.$ = {func:$$[$0], as:'default'};
+break;
+case 217:
+ this.$ = {func:$$[$0-1], as: $$[$0]};
+break;
+case 218:
+ this.$ = {func:$$[$0-2], as: $$[$0]};
+break;
+case 219:
+ this.$ = {variable:$$[$0],as:'default'};
+break;
+case 220:
+ this.$ = {variable:$$[$0-1],as:$$[$0]};
+break;
+case 221:
+ this.$ = {variable:$$[$0-2],as:$$[$0]}
+break;
+case 222:
+ this.$ = { joinmode: $$[$0] } ;
+break;
+case 223:
+ this.$ = {joinmode: $$[$0-1], natural:true} ;
+break;
+case 224: case 225:
+ this.$ = "INNER";
+break;
+case 226: case 227:
+ this.$ = "LEFT";
+break;
+case 228: case 229:
+ this.$ = "RIGHT";
+break;
+case 230: case 231:
+ this.$ = "OUTER";
+break;
+case 232:
+ this.$ = "SEMI";
+break;
+case 233:
+ this.$ = "ANTI";
+break;
+case 234:
+ this.$ = "CROSS";
+break;
+case 235:
+ this.$ = {on: $$[$0]};
+break;
+case 236: case 697:
+ this.$ = {using: $$[$0]};
+break;
+case 239:
+ this.$ = {where: new yy.Expression({expression:$$[$0]})};
+break;
+case 241:
+ this.$ = {group:$$[$0-1]}; yy.extend(this.$,$$[$0]);
+break;
+case 244:
+ this.$ = new yy.GroupExpression({type:'GROUPING SETS', group: $$[$0-1]});
+break;
+case 245:
+ this.$ = new yy.GroupExpression({type:'ROLLUP', group: $$[$0-1]});
+break;
+case 246:
+ this.$ = new yy.GroupExpression({type:'CUBE', group: $$[$0-1]});
+break;
+case 249:
+ this.$ = {having:$$[$0]}
+break;
+case 251:
+ this.$ = {union: $$[$0]} ;
+break;
+case 252:
+ this.$ = {unionall: $$[$0]} ;
+break;
+case 253:
+ this.$ = {except: $$[$0]} ;
+break;
+case 254:
+ this.$ = {intersect: $$[$0]} ;
+break;
+case 255:
+ this.$ = {union: $$[$0], corresponding:true} ;
+break;
+case 256:
+ this.$ = {unionall: $$[$0], corresponding:true} ;
+break;
+case 257:
+ this.$ = {except: $$[$0], corresponding:true} ;
+break;
+case 258:
+ this.$ = {intersect: $$[$0], corresponding:true} ;
+break;
+case 260:
+ this.$ = {order:$$[$0]}
+break;
+case 262:
+ this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
+break;
+case 263:
+ this.$ = new yy.Expression({expression: $$[$0], direction:'ASC'})
+break;
+case 264:
+ this.$ = new yy.Expression({expression: $$[$0-1], direction:$$[$0].toUpperCase()})
+break;
+case 265:
+ this.$ = new yy.Expression({expression: $$[$0-2], direction:'ASC', nocase:true})
+break;
+case 266:
+ this.$ = new yy.Expression({expression: $$[$0-3], direction:$$[$0].toUpperCase(), nocase:true})
+break;
+case 268:
+ this.$ = {limit:$$[$0-1]}; yy.extend(this.$, $$[$0]);
+break;
+case 269:
+ this.$ = {limit:$$[$0-2],offset:$$[$0-6]};
+break;
+case 271:
+ this.$ = {offset:$$[$0]};
+break;
+case 272: case 509: case 533: case 648: case 658: case 682: case 684: case 688:
+ $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
+break;
+case 274: case 276: case 278:
+ $$[$0-2].as = $$[$0]; this.$ = $$[$0-2];
+break;
+case 275: case 277: case 279:
+ $$[$0-1].as = $$[$0]; this.$ = $$[$0-1];
+break;
+case 281:
+ this.$ = new yy.Column({columid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
+break;
+case 282:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
+break;
+case 283:
+ this.$ = new yy.Column({columnid:$$[$0]});
+break;
+case 284:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2], databaseid:$$[$0-4]});
+break;
+case 285: case 286:
+ this.$ = new yy.Column({columnid: $$[$0], tableid: $$[$0-2]});
+break;
+case 287:
+ this.$ = new yy.Column({columnid: $$[$0]});
+break;
+case 302:
+ this.$ = new yy.DomainValueValue();
+break;
+case 303:
+ this.$ = new yy.Json({value:$$[$0]});
+break;
+case 306: case 307: case 308:
+
+ if(!yy.queries) yy.queries = [];
+ yy.queries.push($$[$0-1]);
+ $$[$0-1].queriesidx = yy.queries.length;
+ this.$ = $$[$0-1];
+
+break;
+case 309:
+this.$ = $$[$0]
+break;
+case 310:
+ this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
+break;
+case 311:
+ this.$ = new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 312:
+ this.$ = new yy.JavaScript({value:'alasql.fn["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 313:
+ this.$ = new yy.JavaScript({value:'alasql.aggr["'+$$[$0-2]+'"] = '+$$[$0].substr(2,$$[$0].length-4)});
+break;
+case 314:
+ this.$ = new yy.FuncValue({funcid:$$[$0], newid:true});
+break;
+case 315:
+ this.$ = $$[$0]; yy.extend(this.$,{newid:true});
+break;
+case 316:
+ this.$ = new yy.Convert({expression:$$[$0-3]}) ; yy.extend(this.$,$$[$0-1]) ;
+break;
+case 317:
+ this.$ = new yy.Convert({expression:$$[$0-5], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
+break;
+case 318:
+ this.$ = new yy.Convert({expression:$$[$0-1]}) ; yy.extend(this.$,$$[$0-3]) ;
+break;
+case 319:
+ this.$ = new yy.Convert({expression:$$[$0-3], style:$$[$0-1]}) ; yy.extend(this.$,$$[$0-5]) ;
+break;
+case 326:
+ this.$ = new yy.FuncValue({funcid:'CURRENT_TIMESTAMP'});
+break;
+case 327:
+
+ if($$[$0-2].length > 1 && ($$[$0-4].toUpperCase() == 'MAX' || $$[$0-4].toUpperCase() == 'MIN')) {
+ this.$ = new yy.FuncValue({funcid:$$[$0-4],args:$$[$0-2]});
+ } else {
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-4].toUpperCase(), expression: $$[$0-2].pop(), over:$$[$0]});
+ }
+
+break;
+case 328:
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2], distinct:true, over:$$[$0]});
+break;
+case 329:
+ this.$ = new yy.AggrValue({aggregatorid: $$[$0-5].toUpperCase(), expression: $$[$0-2],
+ over:$$[$0]});
+break;
+case 331: case 332:
+ this.$ = new yy.Over(); yy.extend(this.$,$$[$0-1]);
+break;
+case 333:
+ this.$ = new yy.Over(); yy.extend(this.$,$$[$0-2]); yy.extend(this.$,$$[$0-1]);
+break;
+case 334:
+ this.$ = {partition:$$[$0]};
+break;
+case 335:
+ this.$ = {order:$$[$0]};
+break;
+case 336:
+ this.$ = "SUM";
+break;
+case 337:
+ this.$ = "COUNT";
+break;
+case 338:
+ this.$ = "MIN";
+break;
+case 339: case 544:
+ this.$ = "MAX";
+break;
+case 340:
+ this.$ = "AVG";
+break;
+case 341:
+ this.$ = "FIRST";
+break;
+case 342:
+ this.$ = "LAST";
+break;
+case 343:
+ this.$ = "AGGR";
+break;
+case 344:
+ this.$ = "ARRAY";
+break;
+case 345:
+
+ var funcid = $$[$0-4];
+ var exprlist = $$[$0-1];
+ if(exprlist.length > 1 && (funcid.toUpperCase() == 'MIN' || funcid.toUpperCase() == 'MAX')) {
+ this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
+ } else if(alasql.aggr[$$[$0-4]]) {
+ this.$ = new yy.AggrValue({aggregatorid: 'REDUCE',
+ funcid: funcid, expression: exprlist.pop(),distinct:($$[$0-2]=='DISTINCT') });
+ } else {
+ this.$ = new yy.FuncValue({funcid: funcid, args: exprlist});
+ };
+
+break;
+case 346:
+ this.$ = new yy.FuncValue({ funcid: $$[$0-2] })
+break;
+case 347:
+ this.$ = new yy.FuncValue({ funcid: 'IIF', args:$$[$0-1] })
+break;
+case 348:
+ this.$ = new yy.FuncValue({ funcid: 'REPLACE', args:$$[$0-1] })
+break;
+case 349:
+ this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
+break;
+case 350:
+ this.$ = new yy.FuncValue({ funcid: 'DATEADD', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
+break;
+case 351:
+ this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[new yy.StringValue({value:$$[$0-5]}),$$[$0-3],$$[$0-1]]})
+break;
+case 352:
+ this.$ = new yy.FuncValue({ funcid: 'DATEDIFF', args:[$$[$0-5],$$[$0-3],$$[$0-1]]})
+break;
+case 353:
+ this.$ = new yy.FuncValue({ funcid: 'INTERVAL', args:[$$[$0-1],new yy.StringValue({value:($$[$0]).toLowerCase()})]});
+break;
+case 355:
+ $$[$0-2].push($$[$0]); this.$ = $$[$0-2]
+break;
+case 356:
+ this.$ = new yy.NumValue({value:+$$[$0]});
+break;
+case 357:
+ this.$ = new yy.LogicValue({value:true});
+break;
+case 358:
+ this.$ = new yy.LogicValue({value:false});
+break;
+case 359:
+ this.$ = new yy.StringValue({value: $$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
+break;
+case 360:
+ this.$ = new yy.StringValue({value: $$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});
+break;
+case 361:
+ this.$ = new yy.NullValue({value:undefined});
+break;
+case 362:
+ this.$ = new yy.VarValue({variable:$$[$0]});
+break;
+case 363:
+
+ if(!yy.exists) yy.exists = [];
+ this.$ = new yy.ExistsValue({value:$$[$0-1], existsidx:yy.exists.length});
+ yy.exists.push($$[$0-1]);
+
+break;
+case 364:
+ this.$ = new yy.ArrayValue({value:$$[$0-1]});
+break;
+case 365: case 366:
+ this.$ = new yy.ParamValue({param: $$[$0]});
+break;
+case 367:
+
+ if(typeof yy.question == 'undefined') yy.question = 0;
+ this.$ = new yy.ParamValue({param: yy.question++});
+
+break;
+case 368:
+
+ if(typeof yy.question == 'undefined') yy.question = 0;
+ this.$ = new yy.ParamValue({param: yy.question++, array:true});
+
+break;
+case 369:
+ this.$ = new yy.CaseValue({expression:$$[$0-3], whens: $$[$0-2], elses: $$[$0-1]});
+break;
+case 370:
+ this.$ = new yy.CaseValue({whens: $$[$0-2], elses: $$[$0-1]});
+break;
+case 371: case 699: case 700:
+ this.$ = $$[$0-1]; this.$.push($$[$0]);
+break;
+case 373:
+ this.$ = {when: $$[$0-2], then: $$[$0] };
+break;
+case 376: case 377:
+ this.$ = new yy.Op({left:$$[$0-2], op:'REGEXP', right:$$[$0]});
+break;
+case 378:
+ this.$ = new yy.Op({left:$$[$0-2], op:'GLOB', right:$$[$0]});
+break;
+case 379:
+ this.$ = new yy.Op({left:$$[$0-2], op:'LIKE', right:$$[$0]});
+break;
+case 380:
+ this.$ = new yy.Op({left:$$[$0-4], op:'LIKE', right:$$[$0-2], escape:$$[$0]});
+break;
+case 381:
+ this.$ = new yy.Op({left:$$[$0-2], op:'NOT LIKE', right:$$[$0] });
+break;
+case 382:
+ this.$ = new yy.Op({left:$$[$0-4], op:'NOT LIKE', right:$$[$0-2], escape:$$[$0] });
+break;
+case 383:
+ this.$ = new yy.Op({left:$$[$0-2], op:'||', right:$$[$0]});
+break;
+case 384:
+ this.$ = new yy.Op({left:$$[$0-2], op:'+', right:$$[$0]});
+break;
+case 385:
+ this.$ = new yy.Op({left:$$[$0-2], op:'-', right:$$[$0]});
+break;
+case 386:
+ this.$ = new yy.Op({left:$$[$0-2], op:'*', right:$$[$0]});
+break;
+case 387:
+ this.$ = new yy.Op({left:$$[$0-2], op:'/', right:$$[$0]});
+break;
+case 388:
+ this.$ = new yy.Op({left:$$[$0-2], op:'%', right:$$[$0]});
+break;
+case 389:
+ this.$ = new yy.Op({left:$$[$0-2], op:'^', right:$$[$0]});
+break;
+case 390:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>>', right:$$[$0]});
+break;
+case 391:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<<', right:$$[$0]});
+break;
+case 392:
+ this.$ = new yy.Op({left:$$[$0-2], op:'&', right:$$[$0]});
+break;
+case 393:
+ this.$ = new yy.Op({left:$$[$0-2], op:'|', right:$$[$0]});
+break;
+case 394: case 395: case 397:
+ this.$ = new yy.Op({left:$$[$0-2], op:'->' , right:$$[$0]});
+break;
+case 396:
+ this.$ = new yy.Op({left:$$[$0-4], op:'->' , right:$$[$0-1]});
+break;
+case 398: case 399: case 401:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!' , right:$$[$0]});
+break;
+case 400:
+ this.$ = new yy.Op({left:$$[$0-4], op:'!' , right:$$[$0-1]});
+break;
+case 402:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>' , right:$$[$0]});
+break;
+case 403:
+ this.$ = new yy.Op({left:$$[$0-2], op:'>=' , right:$$[$0]});
+break;
+case 404:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<' , right:$$[$0]});
+break;
+case 405:
+ this.$ = new yy.Op({left:$$[$0-2], op:'<=' , right:$$[$0]});
+break;
+case 406:
+ this.$ = new yy.Op({left:$$[$0-2], op:'=' , right:$$[$0]});
+break;
+case 407:
+ this.$ = new yy.Op({left:$$[$0-2], op:'==' , right:$$[$0]});
+break;
+case 408:
+ this.$ = new yy.Op({left:$$[$0-2], op:'===' , right:$$[$0]});
+break;
+case 409:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!=' , right:$$[$0]});
+break;
+case 410:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!==' , right:$$[$0]});
+break;
+case 411:
+ this.$ = new yy.Op({left:$$[$0-2], op:'!===' , right:$$[$0]});
+break;
+case 412:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 413:
+
+ this.$ = new yy.Op({left:$$[$0-5], op:$$[$0-4] , allsome:$$[$0-3], right:$$[$0-1]});
+
+break;
+case 414:
+
+ if($$[$0-2].op == 'BETWEEN1') {
+
+ if($$[$0-2].left.op == 'AND') {
+ this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
+ new yy.Op({left:$$[$0-2].left.right, op:'BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]})
+ });
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2].left, op:'BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]});
+ }
+
+ } else if($$[$0-2].op == 'NOT BETWEEN1') {
+ if($$[$0-2].left.op == 'AND') {
+ this.$ = new yy.Op({left:$$[$0-2].left.left,op:'AND',right:
+ new yy.Op({left:$$[$0-2].left.right, op:'NOT BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]})
+ });
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2].left, op:'NOT BETWEEN',
+ right1:$$[$0-2].right, right2:$$[$0]});
+ }
+ } else {
+ this.$ = new yy.Op({left:$$[$0-2], op:'AND', right:$$[$0]});
+ }
+
+break;
+case 415:
+ this.$ = new yy.Op({left:$$[$0-2], op:'OR' , right:$$[$0]});
+break;
+case 416:
+ this.$ = new yy.UniOp({op:'NOT' , right:$$[$0]});
+break;
+case 417:
+ this.$ = new yy.UniOp({op:'-' , right:$$[$0]});
+break;
+case 418:
+ this.$ = new yy.UniOp({op:'+' , right:$$[$0]});
+break;
+case 419:
+ this.$ = new yy.UniOp({op:'~' , right:$$[$0]});
+break;
+case 420:
+ this.$ = new yy.UniOp({op:'#' , right:$$[$0]});
+break;
+case 421:
+ this.$ = new yy.UniOp({right: $$[$0-1]});
+break;
+case 422:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 423:
+
+ if(!yy.queries) yy.queries = [];
+ this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1], queriesidx: yy.queries.length});
+ yy.queries.push($$[$0-1]);
+
+break;
+case 424:
+ this.$ = new yy.Op({left: $$[$0-4], op:'IN', right:$$[$0-1]});
+break;
+case 425:
+ this.$ = new yy.Op({left: $$[$0-5], op:'NOT IN', right:$$[$0-1]});
+break;
+case 426:
+ this.$ = new yy.Op({left: $$[$0-3], op:'IN', right:[]});
+break;
+case 427:
+ this.$ = new yy.Op({left: $$[$0-4], op:'NOT IN', right:[]});
+break;
+case 428: case 430:
+ this.$ = new yy.Op({left: $$[$0-2], op:'IN', right:$$[$0]});
+break;
+case 429: case 431:
+ this.$ = new yy.Op({left: $$[$0-3], op:'NOT IN', right:$$[$0]});
+break;
+case 432:
+
+/* var expr = $$[$0];
+ if(expr.left && expr.left.op == 'AND') {
+ this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'BETWEEN', right:expr.left}), op:'AND', right:expr.right });
+ } else {
+*/
+ this.$ = new yy.Op({left:$$[$0-2], op:'BETWEEN1', right:$$[$0] });
+
+break;
+case 433:
+
+ this.$ = new yy.Op({left:$$[$0-2], op:'NOT BETWEEN1', right:$$[$0] });
+
+break;
+case 434:
+ this.$ = new yy.Op({op:'IS' , left:$$[$0-2], right:$$[$0]});
+break;
+case 435:
+
+ this.$ = new yy.Op({
+ op:'IS',
+ left:$$[$0-2],
+ right: new yy.UniOp({
+ op:'NOT',
+ right:new yy.NullValue({value:undefined})
+ })
+ });
+
+break;
+case 436:
+ this.$ = new yy.Convert({expression:$$[$0-2]}) ; yy.extend(this.$,$$[$0]) ;
+break;
+case 437: case 438:
+ this.$ = $$[$0];
+break;
+case 439:
+ this.$ = $$[$0-1];
+break;
+case 446:
+ this.$ = 'ALL';
+break;
+case 447:
+ this.$ = 'SOME';
+break;
+case 448:
+ this.$ = 'ANY';
+break;
+case 449:
+ this.$ = new yy.Update({table:$$[$0-4], columns:$$[$0-2], where:$$[$0]});
+break;
+case 450:
+ this.$ = new yy.Update({table:$$[$0-2], columns:$$[$0]});
+break;
+case 453:
+ this.$ = new yy.SetColumn({column:$$[$0-2], expression:$$[$0]})
+break;
+case 454:
+ this.$ = new yy.SetColumn({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]})
+break;
+case 455:
+ this.$ = new yy.Delete({table:$$[$0-2], where:$$[$0]});
+break;
+case 456:
+ this.$ = new yy.Delete({table:$$[$0]});
+break;
+case 457:
+ this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0]});
+break;
+case 458:
+ this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0]});
+break;
+case 459: case 461:
+ this.$ = new yy.Insert({into:$$[$0-2], values: $$[$0], orreplace:true});
+break;
+case 460: case 462:
+ this.$ = new yy.Insert({into:$$[$0-1], values: $$[$0], orreplace:true});
+break;
+case 463:
+ this.$ = new yy.Insert({into:$$[$0-2], "default": true}) ;
+break;
+case 464:
+ this.$ = new yy.Insert({into:$$[$0-5], columns: $$[$0-3], values: $$[$0]});
+break;
+case 465:
+ this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], values: $$[$0]});
+break;
+case 466:
+ this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0]});
+break;
+case 467:
+ this.$ = new yy.Insert({into:$$[$0-1], select: $$[$0], orreplace:true});
+break;
+case 468:
+ this.$ = new yy.Insert({into:$$[$0-4], columns: $$[$0-2], select: $$[$0]});
+break;
+case 473:
+ this.$ = [$$[$0-1]];
+break;
+case 476:
+this.$ = $$[$0-4]; $$[$0-4].push($$[$0-1])
+break;
+case 477: case 478: case 480: case 488:
+this.$ = $$[$0-2]; $$[$0-2].push($$[$0])
+break;
+case 489:
+
+ this.$ = new yy.CreateTable({table:$$[$0-4]});
+ yy.extend(this.$,$$[$0-7]);
+ yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-5]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 490:
+
+ this.$ = new yy.CreateTable({table:$$[$0]});
+ yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,$$[$0-1]);
+
+break;
+case 492:
+ this.$ = {"class":true};
+break;
+case 502:
+ this.$ = {temporary:true};
+break;
+case 504:
+ this.$ = {ifnotexists: true};
+break;
+case 505:
+ this.$ = {columns: $$[$0-2], constraints: $$[$0]};
+break;
+case 506:
+ this.$ = {columns: $$[$0]};
+break;
+case 507:
+ this.$ = {as: $$[$0]}
+break;
+case 508: case 532:
+ this.$ = [$$[$0]];
+break;
+case 510: case 511: case 512: case 513: case 514:
+ $$[$0].constraintid = $$[$0-1]; this.$ = $$[$0];
+break;
+case 517:
+ this.$ = {type: 'CHECK', expression: $$[$0-1]};
+break;
+case 518:
+ this.$ = {type: 'PRIMARY KEY', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
+break;
+case 519:
+ this.$ = {type: 'FOREIGN KEY', columns: $$[$0-5], fktable: $$[$0-2], fkcolumns: $$[$0-1]};
+break;
+case 525:
+
+ this.$ = {type: 'UNIQUE', columns: $$[$0-1], clustered:($$[$0-3]+'').toUpperCase()};
+
+break;
+case 534:
+ this.$ = new yy.ColumnDef({columnid:$$[$0-2]}); yy.extend(this.$,$$[$0-1]); yy.extend(this.$,$$[$0]);
+break;
+case 535:
+ this.$ = new yy.ColumnDef({columnid:$$[$0-1]}); yy.extend(this.$,$$[$0]);
+break;
+case 536:
+ this.$ = new yy.ColumnDef({columnid:$$[$0], dbtypeid: ''});
+break;
+case 537:
+ this.$ = {dbtypeid: $$[$0-5], dbsize: $$[$0-3], dbprecision: +$$[$0-1]}
+break;
+case 538:
+ this.$ = {dbtypeid: $$[$0-3], dbsize: $$[$0-1]}
+break;
+case 539:
+ this.$ = {dbtypeid: $$[$0]}
+break;
+case 540:
+ this.$ = {dbtypeid: 'ENUM', enumvalues: $$[$0-1]}
+break;
+case 541:
+ this.$ = $$[$0-1]; $$[$0-1].dbtypeid += '[' + $$[$0] + ']';
+break;
+case 543: case 750:
+ this.$ = +$$[$0];
+break;
+case 545:
+this.$ = undefined
+break;
+case 547:
+
+ yy.extend($$[$0-1],$$[$0]); this.$ = $$[$0-1];
+
+break;
+case 550:
+this.$ = {primarykey:true};
+break;
+case 551: case 552:
+this.$ = {foreignkey:{table:$$[$0-1], columnid: $$[$0]}};
+break;
+case 553:
+ this.$ = {identity: {value:$$[$0-3],step:$$[$0-1]}}
+break;
+case 554:
+ this.$ = {identity: {value:1,step:1}}
+break;
+case 555: case 557:
+this.$ = {"default":$$[$0]};
+break;
+case 556:
+this.$ = {"default":$$[$0-1]};
+break;
+case 558:
+this.$ = {"null":true};
+break;
+case 559:
+this.$ = {notnull:true};
+break;
+case 560:
+this.$ = {check:$$[$0]};
+break;
+case 561:
+this.$ = {unique:true};
+break;
+case 562:
+this.$ = {"onupdate":$$[$0]};
+break;
+case 563:
+this.$ = {"onupdate":$$[$0-1]};
+break;
+case 564:
+ this.$ = new yy.DropTable({tables:$$[$0],type:$$[$0-2]}); yy.extend(this.$, $$[$0-1]);
+break;
+case 568:
+ this.$ = {ifexists: true};
+break;
+case 569:
+ this.$ = new yy.AlterTable({table:$$[$0-3], renameto: $$[$0]});
+break;
+case 570:
+ this.$ = new yy.AlterTable({table:$$[$0-3], addcolumn: $$[$0]});
+break;
+case 571:
+ this.$ = new yy.AlterTable({table:$$[$0-3], modifycolumn: $$[$0]});
+break;
+case 572:
+ this.$ = new yy.AlterTable({table:$$[$0-5], renamecolumn: $$[$0-2], to: $$[$0]});
+break;
+case 573:
+ this.$ = new yy.AlterTable({table:$$[$0-3], dropcolumn: $$[$0]});
+break;
+case 574:
+ this.$ = new yy.AlterTable({table:$$[$0-2], renameto: $$[$0]});
+break;
+case 575:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0], engineid:$$[$0-2].toUpperCase() });
+break;
+case 576:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-3], engineid:$$[$0-5].toUpperCase(), args:$$[$0-1] });
+break;
+case 577:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-2], engineid:$$[$0-4].toUpperCase(), as:$$[$0] });
+break;
+case 578:
+ this.$ = new yy.AttachDatabase({databaseid:$$[$0-5], engineid:$$[$0-7].toUpperCase(), as:$$[$0], args:$$[$0-3]});
+break;
+case 579:
+ this.$ = new yy.DetachDatabase({databaseid:$$[$0]});
+break;
+case 580:
+ this.$ = new yy.CreateDatabase({databaseid:$$[$0] }); yy.extend(this.$,$$[$0]);
+break;
+case 581:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(), databaseid:$$[$0-1], as:$$[$0] }); yy.extend(this.$,$$[$0-2]);
+break;
+case 582:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(), databaseid:$$[$0-4], args:$$[$0-2], as:$$[$0] }); yy.extend(this.$,$$[$0-5]);
+break;
+case 583:
+ this.$ = new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),
+ as:$$[$0], args:[$$[$0-1]] }); yy.extend(this.$,$$[$0-2]);
+break;
+case 584:
+this.$ = undefined;
+break;
+case 586: case 587:
+ this.$ = new yy.UseDatabase({databaseid: $$[$0] });
+break;
+case 588:
+ this.$ = new yy.DropDatabase({databaseid: $$[$0] }); yy.extend(this.$,$$[$0-1]);
+break;
+case 589: case 590:
+ this.$ = new yy.DropDatabase({databaseid: $$[$0], engineid:$$[$0-3].toUpperCase() }); yy.extend(this.$,$$[$0-1]);
+break;
+case 591:
+ this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1]})
+break;
+case 592:
+ this.$ = new yy.CreateIndex({indexid:$$[$0-5], table:$$[$0-3], columns:$$[$0-1], unique:true})
+break;
+case 593:
+ this.$ = new yy.DropIndex({indexid:$$[$0]});
+break;
+case 594:
+ this.$ = new yy.ShowDatabases();
+break;
+case 595:
+ this.$ = new yy.ShowDatabases({like:$$[$0]});
+break;
+case 596:
+ this.$ = new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase() });
+break;
+case 597:
+ this.$ = new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase() , like:$$[$0]});
+break;
+case 598:
+ this.$ = new yy.ShowTables();
+break;
+case 599:
+ this.$ = new yy.ShowTables({like:$$[$0]});
+break;
+case 600:
+ this.$ = new yy.ShowTables({databaseid: $$[$0]});
+break;
+case 601:
+ this.$ = new yy.ShowTables({like:$$[$0], databaseid: $$[$0-2]});
+break;
+case 602:
+ this.$ = new yy.ShowColumns({table: $$[$0]});
+break;
+case 603:
+ this.$ = new yy.ShowColumns({table: $$[$0-2], databaseid:$$[$0]});
+break;
+case 604:
+ this.$ = new yy.ShowIndex({table: $$[$0]});
+break;
+case 605:
+ this.$ = new yy.ShowIndex({table: $$[$0-2], databaseid: $$[$0]});
+break;
+case 606:
+ this.$ = new yy.ShowCreateTable({table: $$[$0]});
+break;
+case 607:
+ this.$ = new yy.ShowCreateTable({table: $$[$0-2], databaseid:$$[$0]});
+break;
+case 608:
+
+ this.$ = new yy.CreateTable({table:$$[$0-6],view:true,select:$$[$0-1],viewcolumns:$$[$0-4]});
+ yy.extend(this.$,$$[$0-9]);
+ yy.extend(this.$,$$[$0-7]);
+
+break;
+case 609:
+
+ this.$ = new yy.CreateTable({table:$$[$0-3],view:true,select:$$[$0-1]});
+ yy.extend(this.$,$$[$0-6]);
+ yy.extend(this.$,$$[$0-4]);
+
+break;
+case 613:
+ this.$ = new yy.DropTable({tables:$$[$0], view:true}); yy.extend(this.$, $$[$0-1]);
+break;
+case 614: case 760:
+ this.$ = new yy.ExpressionStatement({expression:$$[$0]});
+break;
+case 615:
+ this.$ = new yy.Source({url:$$[$0].value});
+break;
+case 616:
+ this.$ = new yy.Assert({value:$$[$0]});
+break;
+case 617:
+ this.$ = new yy.Assert({value:$$[$0].value});
+break;
+case 618:
+ this.$ = new yy.Assert({value:$$[$0], message:$$[$0-2]});
+break;
+case 620: case 631: case 633:
+ this.$ = $$[$0].value;
+break;
+case 621: case 629:
+ this.$ = +$$[$0].value;
+break;
+case 622:
+ this.$ = (!!$$[$0].value);
+break;
+case 630:
+ this.$ = ""+$$[$0].value;
+break;
+case 639:
+ this.$ = {};
+break;
+case 642:
+ this.$ = [];
+break;
+case 643:
+ yy.extend($$[$0-2],$$[$0]); this.$ = $$[$0-2];
+break;
+case 645:
+ this.$ = {}; this.$[$$[$0-2].substr(1,$$[$0-2].length-2)] = $$[$0];
+break;
+case 646: case 647:
+ this.$ = {}; this.$[$$[$0-2]] = $$[$0];
+break;
+case 650:
+ this.$ = new yy.SetVariable({variable:$$[$0-2].toLowerCase(), value:$$[$0]});
+break;
+case 651:
+ this.$ = new yy.SetVariable({variable:$$[$0-1].toLowerCase(), value:$$[$0]});
+break;
+case 652:
+ this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0]});
+break;
+case 653:
+ this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0]});
+break;
+case 654:
+ this.$ = new yy.SetVariable({variable:$$[$0-2], expression:$$[$0], method:$$[$0-3]});
+break;
+case 655:
+ this.$ = new yy.SetVariable({variable:$$[$0-3], props: $$[$0-2], expression:$$[$0], method:$$[$0-4]});
+break;
+case 656:
+this.$ = '@';
+break;
+case 657:
+this.$ = '$';
+break;
+case 663:
+ this.$ = true;
+break;
+case 664:
+ this.$ = false;
+break;
+case 665:
+ this.$ = new yy.CommitTransaction();
+break;
+case 666:
+ this.$ = new yy.RollbackTransaction();
+break;
+case 667:
+ this.$ = new yy.BeginTransaction();
+break;
+case 668:
+ this.$ = new yy.If({expression:$$[$0-2],thenstat:$$[$0-1], elsestat:$$[$0]});
+ if($$[$0-1].exists) this.$.exists = $$[$0-1].exists;
+ if($$[$0-1].queries) this.$.queries = $$[$0-1].queries;
+
+break;
+case 669:
+
+ this.$ = new yy.If({expression:$$[$0-1],thenstat:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 670:
+this.$ = $$[$0];
+break;
+case 671:
+ this.$ = new yy.While({expression:$$[$0-1],loopstat:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 672:
+ this.$ = new yy.Continue();
+break;
+case 673:
+ this.$ = new yy.Break();
+break;
+case 674:
+ this.$ = new yy.BeginEnd({statements:$$[$0-1]});
+break;
+case 675:
+ this.$ = new yy.Print({exprs:$$[$0]});
+break;
+case 676:
+ this.$ = new yy.Print({select:$$[$0]});
+break;
+case 677:
+ this.$ = new yy.Require({paths:$$[$0]});
+break;
+case 678:
+ this.$ = new yy.Require({plugins:$$[$0]});
+break;
+case 679: case 680:
+this.$ = $$[$0].toUpperCase();
+break;
+case 681:
+ this.$ = new yy.Echo({expr:$$[$0]});
+break;
+case 686:
+ this.$ = new yy.Declare({declares:$$[$0]});
+break;
+case 689:
+ this.$ = {variable: $$[$0-1]}; yy.extend(this.$,$$[$0]);
+break;
+case 690:
+ this.$ = {variable: $$[$0-2]}; yy.extend(this.$,$$[$0]);
+break;
+case 691:
+ this.$ = {variable: $$[$0-3], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
+break;
+case 692:
+ this.$ = {variable: $$[$0-4], expression:$$[$0]}; yy.extend(this.$,$$[$0-2]);
+break;
+case 693:
+ this.$ = new yy.TruncateTable({table:$$[$0]});
+break;
+case 694:
+
+ this.$ = new yy.Merge(); yy.extend(this.$,$$[$0-4]); yy.extend(this.$,$$[$0-3]);
+ yy.extend(this.$,$$[$0-2]);
+ yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);
+
+break;
+case 695: case 696:
+ this.$ = {into: $$[$0]};
+break;
+case 698:
+ this.$ = {on:$$[$0]};
+break;
+case 703:
+ this.$ = {matched:true, action:$$[$0]}
+break;
+case 704:
+ this.$ = {matched:true, expr: $$[$0-2], action:$$[$0]}
+break;
+case 705:
+ this.$ = {"delete":true};
+break;
+case 706:
+ this.$ = {update:$$[$0]};
+break;
+case 707: case 708:
+ this.$ = {matched:false, bytarget: true, action:$$[$0]}
+break;
+case 709: case 710:
+ this.$ = {matched:false, bytarget: true, expr:$$[$0-2], action:$$[$0]}
+break;
+case 711:
+ this.$ = {matched:false, bysource: true, action:$$[$0]}
+break;
+case 712:
+ this.$ = {matched:false, bysource: true, expr:$$[$0-2], action:$$[$0]}
+break;
+case 713:
+ this.$ = {insert:true, values:$$[$0]};
+break;
+case 714:
+ this.$ = {insert:true, values:$$[$0], columns:$$[$0-3]};
+break;
+case 715:
+ this.$ = {insert:true, defaultvalues:true};
+break;
+case 716:
+ this.$ = {insert:true, defaultvalues:true, columns:$$[$0-3]};
+break;
+case 718:
+ this.$ = {output:{columns:$$[$0]}}
+break;
+case 719:
+ this.$ = {output:{columns:$$[$0-3], intovar: $$[$0], method:$$[$0-1]}}
+break;
+case 720:
+ this.$ = {output:{columns:$$[$0-2], intotable: $$[$0]}}
+break;
+case 721:
+ this.$ = {output:{columns:$$[$0-5], intotable: $$[$0-3], intocolumns:$$[$0-1]}}
+break;
+case 722:
+
+ this.$ = new yy.CreateVertex({"class":$$[$0-3],sharp:$$[$0-2], name:$$[$0-1]});
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 725:
+ this.$ = {sets:$$[$0]};
+break;
+case 726:
+ this.$ = {content:$$[$0]};
+break;
+case 727:
+ this.$ = {select:$$[$0]};
+break;
+case 728:
+
+ this.$ = new yy.CreateEdge({from:$$[$0-3],to:$$[$0-1],name:$$[$0-5]});
+ yy.extend(this.$,$$[$0]);
+
+break;
+case 729:
+ this.$ = new yy.CreateGraph({graph:$$[$0]});
+break;
+case 730:
+ this.$ = new yy.CreateGraph({from:$$[$0]});
+break;
+case 733:
+
+ this.$ = $$[$0-2];
+ if($$[$0-1]) this.$.json = new yy.Json({value:$$[$0-1]});
+ if($$[$0]) this.$.as = $$[$0];
+
+break;
+case 734:
+
+ this.$ = {source:$$[$0-6], target: $$[$0]};
+ if($$[$0-3]) this.$.json = new yy.Json({value:$$[$0-3]});
+ if($$[$0-2]) this.$.as = $$[$0-2];
+ yy.extend(this.$,$$[$0-4]);
+
+break;
+case 735:
+
+ this.$ = {source:$$[$0-5], target: $$[$0]};
+ if($$[$0-2]) this.$.json = new yy.Json({value:$$[$0-3]});
+ if($$[$0-1]) this.$.as = $$[$0-2];
+
+break;
+case 736:
+
+ this.$ = {source:$$[$0-2], target: $$[$0]};
+
+break;
+case 740:
+ this.$ = {vars:$$[$0], method:$$[$0-1]};
+break;
+case 743: case 744:
+
+ var s3 = $$[$0-1];
+ this.$ = {prop:$$[$0-3], sharp:$$[$0-2], name:(typeof s3 == 'undefined')?undefined:s3.substr(1,s3.length-2), "class":$$[$0]};
+
+break;
+case 745:
+
+ var s2 = $$[$0-1];
+ this.$ = {sharp:$$[$0-2], name:(typeof s2 == 'undefined')?undefined:s2.substr(1,s2.length-2), "class":$$[$0]};
+
+break;
+case 746:
+
+ var s1 = $$[$0-1];
+ this.$ = {name:(typeof s1 == 'undefined')?undefined:s1.substr(1,s1.length-2), "class":$$[$0]};
+
+break;
+case 747:
+
+ this.$ = {"class":$$[$0]};
+
+break;
+case 753:
+ this.$ = new yy.AddRule({left:$$[$0-2], right:$$[$0]});
+break;
+case 754:
+ this.$ = new yy.AddRule({right:$$[$0]});
+break;
+case 757:
+ this.$ = new yy.Term({termid:$$[$0]});
+break;
+case 758:
+ this.$ = new yy.Term({termid:$$[$0-3],args:$$[$0-1]});
+break;
+case 761:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-5], action:$$[$0-4], table:$$[$0-2], statement:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 762:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-5], when:$$[$0-4], action:$$[$0-3], table:$$[$0-1], funcid:$$[$0]});
+
+break;
+case 763:
+
+ this.$ = new yy.CreateTrigger({trigger:$$[$0-6], when:$$[$0-4], action:$$[$0-3], table:$$[$0-5], statement:$$[$0]});
+ if($$[$0].exists) this.$.exists = $$[$0].exists;
+ if($$[$0].queries) this.$.queries = $$[$0].queries;
+
+break;
+case 764: case 765: case 767:
+ this.$ = 'AFTER';
+break;
+case 766:
+ this.$ = 'BEFORE';
+break;
+case 768:
+ this.$ = 'INSTEADOF';
+break;
+case 769:
+ this.$ = 'INSERT';
+break;
+case 770:
+ this.$ = 'DELETE';
+break;
+case 771:
+ this.$ = 'UPDATE';
+break;
+case 772:
+ this.$ = new yy.DropTrigger({trigger:$$[$0]});
+break;
+case 773:
+ this.$ = new yy.Reindex({indexid:$$[$0]});
+break;
+case 1047: case 1067: case 1069: case 1071: case 1075: case 1077: case 1079: case 1081: case 1083: case 1085:
+this.$ = [];
+break;
+case 1048: case 1062: case 1064: case 1068: case 1070: case 1072: case 1076: case 1078: case 1080: case 1082: case 1084: case 1086:
+$$[$0-1].push($$[$0]);
+break;
+case 1061: case 1063:
+this.$ = [$$[$0]];
+break;
+}
+},
+table: [o([10,602,764],$V0,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{1:[3]},{10:[1,105],11:106,602:$VH,764:$VI},o($VJ,[2,8]),o($VJ,[2,9]),o($VK,[2,12]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:$V1,4:$V2,5:$V3,15:[1,110],53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,14]),o($VK,[2,15]),o($VK,[2,16]),o($VK,[2,17]),o($VK,[2,18]),o($VK,[2,19]),o($VK,[2,20]),o($VK,[2,21]),o($VK,[2,22]),o($VK,[2,23]),o($VK,[2,24]),o($VK,[2,25]),o($VK,[2,26]),o($VK,[2,27]),o($VK,[2,28]),o($VK,[2,29]),o($VK,[2,30]),o($VK,[2,31]),o($VK,[2,32]),o($VK,[2,33]),o($VK,[2,34]),o($VK,[2,35]),o($VK,[2,36]),o($VK,[2,37]),o($VK,[2,38]),o($VK,[2,39]),o($VK,[2,40]),o($VK,[2,41]),o($VK,[2,42]),o($VK,[2,43]),o($VK,[2,44]),o($VK,[2,45]),o($VK,[2,46]),o($VK,[2,47]),o($VK,[2,48]),o($VK,[2,49]),o($VK,[2,50]),o($VK,[2,51]),o($VK,[2,52]),o($VK,[2,53]),o($VK,[2,54]),o($VK,[2,55]),o($VK,[2,56]),o($VK,[2,57]),o($VK,[2,58]),o($VK,[2,59]),o($VK,[2,60]),o($VK,[2,61]),o($VK,[2,62]),o($VK,[2,63]),o($VK,[2,64]),o($VK,[2,65]),o($VK,[2,66]),o($VK,[2,67]),{353:[1,111]},{2:$V1,3:112,4:$V2,5:$V3},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:113,290:$VM,291:$VN,292:$VO,293:$VP},o($VQ,[2,501],{3:121,348:125,2:$V1,4:$V2,5:$V3,134:$VR,135:$VS,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:$VT,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:$V1,3:138,4:$V2,5:$V3,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:145,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:204,171:[1,205],198:$Vv1}),o($Vt1,$Vu1,{340:207,198:$Vv1}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1,453:208},{2:$V1,3:221,4:$V2,5:$V3},{353:[1,222]},o($Vz1,[2,1043],{80:223,106:224,107:[1,225]}),o($VA1,[2,1047],{90:226}),{2:$V1,3:230,4:$V2,5:$V3,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:$V1,3:236,4:$V2,5:$V3,73:234,75:235},o([306,602,764],$V0,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:$V1,4:$V2,5:$V3,14:$V4,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,435:[1,237],436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{435:[1,239]},{435:[1,240]},{2:$V1,3:242,4:$V2,5:$V3,405:[1,241]},{2:$V1,3:244,4:$V2,5:$V3,199:243},o($VB1,[2,311]),{113:245,132:$VW,296:$Vj1},{2:$V1,3:114,4:$V2,5:$V3,113:251,131:$VV,132:[1,248],143:$VY,144:246,145:$VC1,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:247,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,672]),o($VK,[2,673]),{2:$V1,3:168,4:$V2,5:$V3,40:259,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:258,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:266,4:$V2,5:$V3,113:263,132:$VW,296:$Vj1,444:261,445:262,446:264,447:$VE1},{2:$V1,3:267,4:$V2,5:$V3,143:$VF1,145:$VG1,431:268},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:271,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{505:[1,272]},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:273},{2:$V1,3:114,4:$V2,5:$V3,156:$VL,200:275,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH1,$VI1,{186:280,164:[1,279],185:[1,277],187:[1,278],195:$VJ1}),o($VK1,[2,757],{77:[1,282]}),o([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),o($VL1,[2,1]),o($VL1,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VM1,[2,1041]),o($VM1,[2,1042]),o($VJ,[2,10]),{16:[1,559]},{2:$V1,3:244,4:$V2,5:$V3,199:560},{405:[1,561]},o($VK,[2,760]),{77:$VN1},{77:[1,563]},{77:$VO1},{77:[1,565]},{77:[1,566]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:567,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt1,$VP1,{350:568,156:$VQ1}),{405:[1,570]},{2:$V1,3:571,4:$V2,5:$V3},{193:[1,572]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:$VW,183:[2,1141],296:$Vj1,471:590},o($VU1,[2,1135],{465:592,3:593,2:$V1,4:$V2,5:$V3}),{2:$V1,3:594,4:$V2,5:$V3},{4:[1,595]},{4:[1,596]},o($VQ,[2,502]),o($VK,[2,686],{74:[1,597]}),o($VV1,[2,687]),{2:$V1,3:598,4:$V2,5:$V3},{2:$V1,3:244,4:$V2,5:$V3,199:599},{2:$V1,3:600,4:$V2,5:$V3},o($Vt1,$VW1,{398:601,156:$VX1}),{405:[1,603]},{2:$V1,3:604,4:$V2,5:$V3},o($Vt1,$VW1,{398:605,156:$VX1}),o($Vt1,$VW1,{398:606,156:$VX1}),{2:$V1,3:607,4:$V2,5:$V3},o($VY1,[2,1129]),o($VY1,[2,1130]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VB1,[2,288]),o($VB1,[2,289]),o($VB1,[2,290]),o($VB1,[2,291]),o($VB1,[2,292]),o($VB1,[2,293]),o($VB1,[2,294]),o($VB1,[2,295]),o($VB1,[2,296]),o($VB1,[2,297]),o($VB1,[2,298]),o($VB1,[2,299]),o($VB1,[2,300]),o($VB1,[2,301]),o($VB1,[2,302]),o($VB1,[2,303]),o($VB1,[2,304]),o($VB1,[2,305]),{2:$V1,3:168,4:$V2,5:$V3,26:654,27:653,36:649,40:648,56:165,77:$VU,79:75,89:$V7,94:651,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:$V41,266:$Vc,267:[1,655],270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:[1,652],291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,339:$Vh,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,309]),o($VB1,[2,310]),{77:[1,656]},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:[1,657]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:658,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:659,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:661,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:662,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,283]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),o($Vz2,[2,357]),o($Vz2,[2,358]),o($Vz2,$VA2),o($Vz2,[2,360]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:$V1,3:664,4:$V2,5:$V3,131:[1,665],301:663},{2:$V1,3:666,4:$V2,5:$V3},o($Vz2,[2,367]),o($Vz2,[2,368]),{2:$V1,3:667,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{77:[1,674]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:675,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,304:676,307:677,308:$VC2,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,679]},{77:[1,680]},o($VD2,[2,624]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,683],302:$Vn1,419:190,420:$Vr1,421:681,422:684,423:686,424:$Vs1,427:682},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:696,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:697,4:$V2,5:$V3,156:$VL,200:698,290:$VM,291:$VN,292:$VO,293:$VP},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,425:699,426:[1,700],428:701},{2:$V1,3:244,4:$V2,5:$V3,199:705},{290:[1,706]},o($Vt1,[2,472]),{2:$V1,3:244,4:$V2,5:$V3,199:707},{231:[1,709],454:708},{231:[2,695]},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:710,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{40:711,79:75,89:$V7,184:99,189:$Vb},o($VH2,[2,1091],{210:712,76:[1,713]}),o($VI2,[2,185],{3:714,2:$V1,4:$V2,5:$V3,76:[1,715],154:[1,716]}),o($VI2,[2,189],{3:717,2:$V1,4:$V2,5:$V3,76:[1,718]}),o($VI2,[2,190],{3:719,2:$V1,4:$V2,5:$V3,76:[1,720]}),o($VI2,[2,193]),o($VI2,[2,194],{3:721,2:$V1,4:$V2,5:$V3,76:[1,722]}),o($VI2,[2,197],{3:723,2:$V1,4:$V2,5:$V3,76:[1,724]}),o([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],$VJ2,{77:$VN1,116:$VK2}),o([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),o($VK,[2,773]),{2:$V1,3:244,4:$V2,5:$V3,199:726},o($VL2,$VM2,{81:727,198:$VN2}),o($Vz1,[2,1044]),o($VO2,[2,1057],{108:729,190:[1,730]}),o([10,78,183,306,310,602,764],$VM2,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,198:$VN2,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),{353:[1,782]},{183:[1,783]},o($VK,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},o($VK,[2,598],{112:[1,787],183:[1,788]}),{2:$V1,3:244,4:$V2,5:$V3,199:789},{40:790,74:[1,791],79:75,89:$V7,184:99,189:$Vb},o($Vv3,[2,70]),{76:[1,792]},o($VK,[2,667]),{11:106,306:[1,793],602:$VH,764:$VI},o($VK,[2,665]),o($VK,[2,666]),{2:$V1,3:794,4:$V2,5:$V3},o($VK,[2,587]),{146:[1,795]},o([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],$VJ2,{116:$VK2}),o($VK,[2,615]),o($VK,[2,616]),o($VK,[2,617]),o($VK,$VA2,{74:[1,796]}),{77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},o($Vw3,[2,320]),o($Vw3,[2,321]),o($Vw3,[2,322]),o($Vw3,[2,323]),o($Vw3,[2,324]),o($Vw3,[2,325]),o($Vw3,[2,326]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$V22,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V9,154:$Va2,156:$Va,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,266:$Vc,267:$Vd,290:$Ve,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,675],{74:$Vx3}),o($VK,[2,676]),o($Vy3,[2,354],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,677],{74:[1,800]}),o($VK,[2,678],{74:[1,801]}),o($VV1,[2,683]),o($VV1,[2,685]),o($VV1,[2,679]),o($VV1,[2,680]),{114:807,115:$V$1,116:$V02,124:[1,802],230:$VA3,429:803,430:804,433:$VB3},{2:$V1,3:808,4:$V2,5:$V3},o($Vt1,[2,656]),o($Vt1,[2,657]),o($VK,[2,614],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:100,4:$V2,5:$V3,504:274,506:809},o($VK,[2,754],{74:$VC3}),o($VD3,[2,756]),o($VK,[2,759]),o($VK,[2,681],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VE3,$VI1,{186:811,195:$VJ1}),o($VE3,$VI1,{186:812,195:$VJ1}),o($VE3,$VI1,{186:813,195:$VJ1}),o($VF3,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{77:[1,819],131:$VV,196:818},{2:$V1,3:100,4:$V2,5:$V3,504:274,506:820},o($VG3,[2,153]),o($VG3,[2,154]),o($VG3,[2,155]),o($VG3,[2,156]),o($VG3,[2,157]),o($VG3,[2,158]),o($VG3,[2,159]),o($VL1,[2,3]),o($VL1,[2,774]),o($VL1,[2,775]),o($VL1,[2,776]),o($VL1,[2,777]),o($VL1,[2,778]),o($VL1,[2,779]),o($VL1,[2,780]),o($VL1,[2,781]),o($VL1,[2,782]),o($VL1,[2,783]),o($VL1,[2,784]),o($VL1,[2,785]),o($VL1,[2,786]),o($VL1,[2,787]),o($VL1,[2,788]),o($VL1,[2,789]),o($VL1,[2,790]),o($VL1,[2,791]),o($VL1,[2,792]),o($VL1,[2,793]),o($VL1,[2,794]),o($VL1,[2,795]),o($VL1,[2,796]),o($VL1,[2,797]),o($VL1,[2,798]),o($VL1,[2,799]),o($VL1,[2,800]),o($VL1,[2,801]),o($VL1,[2,802]),o($VL1,[2,803]),o($VL1,[2,804]),o($VL1,[2,805]),o($VL1,[2,806]),o($VL1,[2,807]),o($VL1,[2,808]),o($VL1,[2,809]),o($VL1,[2,810]),o($VL1,[2,811]),o($VL1,[2,812]),o($VL1,[2,813]),o($VL1,[2,814]),o($VL1,[2,815]),o($VL1,[2,816]),o($VL1,[2,817]),o($VL1,[2,818]),o($VL1,[2,819]),o($VL1,[2,820]),o($VL1,[2,821]),o($VL1,[2,822]),o($VL1,[2,823]),o($VL1,[2,824]),o($VL1,[2,825]),o($VL1,[2,826]),o($VL1,[2,827]),o($VL1,[2,828]),o($VL1,[2,829]),o($VL1,[2,830]),o($VL1,[2,831]),o($VL1,[2,832]),o($VL1,[2,833]),o($VL1,[2,834]),o($VL1,[2,835]),o($VL1,[2,836]),o($VL1,[2,837]),o($VL1,[2,838]),o($VL1,[2,839]),o($VL1,[2,840]),o($VL1,[2,841]),o($VL1,[2,842]),o($VL1,[2,843]),o($VL1,[2,844]),o($VL1,[2,845]),o($VL1,[2,846]),o($VL1,[2,847]),o($VL1,[2,848]),o($VL1,[2,849]),o($VL1,[2,850]),o($VL1,[2,851]),o($VL1,[2,852]),o($VL1,[2,853]),o($VL1,[2,854]),o($VL1,[2,855]),o($VL1,[2,856]),o($VL1,[2,857]),o($VL1,[2,858]),o($VL1,[2,859]),o($VL1,[2,860]),o($VL1,[2,861]),o($VL1,[2,862]),o($VL1,[2,863]),o($VL1,[2,864]),o($VL1,[2,865]),o($VL1,[2,866]),o($VL1,[2,867]),o($VL1,[2,868]),o($VL1,[2,869]),o($VL1,[2,870]),o($VL1,[2,871]),o($VL1,[2,872]),o($VL1,[2,873]),o($VL1,[2,874]),o($VL1,[2,875]),o($VL1,[2,876]),o($VL1,[2,877]),o($VL1,[2,878]),o($VL1,[2,879]),o($VL1,[2,880]),o($VL1,[2,881]),o($VL1,[2,882]),o($VL1,[2,883]),o($VL1,[2,884]),o($VL1,[2,885]),o($VL1,[2,886]),o($VL1,[2,887]),o($VL1,[2,888]),o($VL1,[2,889]),o($VL1,[2,890]),o($VL1,[2,891]),o($VL1,[2,892]),o($VL1,[2,893]),o($VL1,[2,894]),o($VL1,[2,895]),o($VL1,[2,896]),o($VL1,[2,897]),o($VL1,[2,898]),o($VL1,[2,899]),o($VL1,[2,900]),o($VL1,[2,901]),o($VL1,[2,902]),o($VL1,[2,903]),o($VL1,[2,904]),o($VL1,[2,905]),o($VL1,[2,906]),o($VL1,[2,907]),o($VL1,[2,908]),o($VL1,[2,909]),o($VL1,[2,910]),o($VL1,[2,911]),o($VL1,[2,912]),o($VL1,[2,913]),o($VL1,[2,914]),o($VL1,[2,915]),o($VL1,[2,916]),o($VL1,[2,917]),o($VL1,[2,918]),o($VL1,[2,919]),o($VL1,[2,920]),o($VL1,[2,921]),o($VL1,[2,922]),o($VL1,[2,923]),o($VL1,[2,924]),o($VL1,[2,925]),o($VL1,[2,926]),o($VL1,[2,927]),o($VL1,[2,928]),o($VL1,[2,929]),o($VL1,[2,930]),o($VL1,[2,931]),o($VL1,[2,932]),o($VL1,[2,933]),o($VL1,[2,934]),o($VL1,[2,935]),o($VL1,[2,936]),o($VL1,[2,937]),o($VL1,[2,938]),o($VL1,[2,939]),o($VL1,[2,940]),o($VL1,[2,941]),o($VL1,[2,942]),o($VL1,[2,943]),o($VL1,[2,944]),o($VL1,[2,945]),o($VL1,[2,946]),o($VL1,[2,947]),o($VL1,[2,948]),o($VL1,[2,949]),o($VL1,[2,950]),o($VL1,[2,951]),o($VL1,[2,952]),o($VL1,[2,953]),o($VL1,[2,954]),o($VL1,[2,955]),o($VL1,[2,956]),o($VL1,[2,957]),o($VL1,[2,958]),o($VL1,[2,959]),o($VL1,[2,960]),o($VL1,[2,961]),o($VL1,[2,962]),o($VL1,[2,963]),o($VL1,[2,964]),o($VL1,[2,965]),o($VL1,[2,966]),o($VL1,[2,967]),o($VL1,[2,968]),o($VL1,[2,969]),o($VL1,[2,970]),o($VL1,[2,971]),o($VL1,[2,972]),o($VL1,[2,973]),o($VL1,[2,974]),o($VL1,[2,975]),o($VL1,[2,976]),o($VL1,[2,977]),o($VL1,[2,978]),o($VL1,[2,979]),o($VL1,[2,980]),o($VL1,[2,981]),o($VL1,[2,982]),o($VL1,[2,983]),o($VL1,[2,984]),o($VL1,[2,985]),o($VL1,[2,986]),o($VL1,[2,987]),o($VL1,[2,988]),o($VL1,[2,989]),o($VL1,[2,990]),o($VL1,[2,991]),o($VL1,[2,992]),o($VL1,[2,993]),o($VL1,[2,994]),o($VL1,[2,995]),o($VL1,[2,996]),o($VL1,[2,997]),o($VL1,[2,998]),o($VL1,[2,999]),o($VL1,[2,1000]),o($VL1,[2,1001]),o($VL1,[2,1002]),o($VL1,[2,1003]),o($VL1,[2,1004]),o($VL1,[2,1005]),o($VL1,[2,1006]),o($VL1,[2,1007]),o($VL1,[2,1008]),o($VL1,[2,1009]),o($VL1,[2,1010]),o($VL1,[2,1011]),o($VL1,[2,1012]),o($VL1,[2,1013]),o($VL1,[2,1014]),o($VL1,[2,1015]),o($VL1,[2,1016]),o($VL1,[2,1017]),o($VL1,[2,1018]),o($VL1,[2,1019]),o($VL1,[2,1020]),o($VL1,[2,1021]),o($VL1,[2,1022]),o($VL1,[2,1023]),o($VL1,[2,1024]),o($VL1,[2,1025]),o($VL1,[2,1026]),o($VL1,[2,1027]),o($VL1,[2,1028]),o($VL1,[2,1029]),o($VL1,[2,1030]),o($VL1,[2,1031]),o($VL1,[2,1032]),o($VL1,[2,1033]),o($VL1,[2,1034]),o($VL1,[2,1035]),o($VL1,[2,1036]),o($VL1,[2,1037]),o($VL1,[2,1038]),o($VL1,[2,1039]),o($VL1,[2,1040]),o($VJ,[2,7]),o($VJ,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:$V1,3:826,4:$V2,5:$V3},o($VE3,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:832,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:833,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:834,4:$V2,5:$V3,132:[1,835]},{2:$V1,3:836,4:$V2,5:$V3,132:[1,837]},{2:$V1,3:838,4:$V2,5:$V3,99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:839,4:$V2,5:$V3},{154:[1,840]},o($VH3,$VP1,{350:841,156:$VQ1}),{230:[1,842]},{2:$V1,3:843,4:$V2,5:$V3},o($VK,[2,729],{74:$VI3}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:845,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD3,[2,732]),o($VJ3,[2,1143],{419:190,476:846,144:847,139:$VK3,141:$VK3,145:$VC1,420:$Vr1,424:$Vs1}),{139:[1,848],141:[1,849]},o($VL3,$VM3,{490:851,493:852,77:[1,850],137:$VS1}),o($VN3,[2,1167],{494:853,132:[1,854]}),o($VO3,[2,1171],{496:855,497:856,152:$VT1}),o($VO3,[2,747]),o($VP3,[2,739]),{2:$V1,3:857,4:$V2,5:$V3,131:[1,858]},{2:$V1,3:859,4:$V2,5:$V3},{2:$V1,3:860,4:$V2,5:$V3},o($Vt1,$VP1,{350:861,156:$VQ1}),o($Vt1,$VP1,{350:862,156:$VQ1}),o($VY1,[2,491]),o($VY1,[2,492]),{183:[1,863]},{183:[2,1142]},o($VQ3,[2,1137],{466:864,469:865,137:[1,866]}),o($VU1,[2,1136]),o($VR3,$VS3,{510:867,95:$VT3,230:[1,868],514:$VU3,515:$VV3,516:$VW3}),{76:[1,873]},{76:[1,874]},{145:$VT,450:875},{4:$VX3,7:879,76:[1,877],272:876,387:878,389:$VY3},o($VK,[2,456],{128:[1,882]}),o($VK,[2,579]),{2:$V1,3:883,4:$V2,5:$V3},{298:[1,884]},o($VH3,$VW1,{398:885,156:$VX1}),o($VK,[2,593]),{2:$V1,3:244,4:$V2,5:$V3,199:887,399:886},{2:$V1,3:244,4:$V2,5:$V3,199:887,399:888},o($VK,[2,772]),o($VJ,[2,669],{438:889,310:[1,890]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:891,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:892,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:893,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:894,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:895,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:896,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:897,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:898,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:899,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:900,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:901,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:902,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:903,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:904,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:905,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:906,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:907,4:$V2,5:$V3,77:[1,909],131:$VV,156:$VL,196:908,200:910,290:$VM,291:$VN,292:$VO,293:$VP},{2:$V1,3:911,4:$V2,5:$V3,77:[1,913],131:$VV,156:$VL,196:912,200:914,290:$VM,291:$VN,292:$VO,293:$VP},o($VZ3,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:920,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:921,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:923,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:924,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:929,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:930,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:[1,931],111:934,145:$V$3,156:$VL,200:935,202:933,290:$VM,291:$VN,292:$VO,293:$VP,329:932},{99:[1,937],297:[1,938]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:939,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:940,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:941,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:942,387:878,389:$VY3},o($V04,[2,88]),o($V04,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vt1,$Vu1,{340:207,77:$VO1,198:$Vv1}),{78:[2,1107]},{78:[2,1108]},{134:$VR,135:$VS},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:947,152:$V$,154:$V01,156:$VL,158:167,164:[1,949],179:$V11,180:$V21,181:$V31,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:950,4:$V2,5:$V3,149:$V14,180:[1,952]},o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($V24,[2,417],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,418],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V34,[2,419],{114:625,327:637,316:$Vj2}),o($V34,[2,420],{114:625,327:637,316:$Vj2}),o($Vz2,[2,365]),o($Vz2,[2,1113]),o($Vz2,[2,1114]),o($Vz2,[2,366]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:953,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,620]),o($VD2,[2,621]),o($VD2,[2,622]),o($VD2,[2,623]),o($VD2,[2,625]),{40:954,79:75,89:$V7,184:99,189:$Vb},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,304:955,307:677,308:$VC2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{305:956,306:$V44,307:957,308:$VC2,310:$V54},o($V64,[2,372]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:959,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:960,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:961,387:878,389:$VY3},o($VD2,[2,626]),{74:[1,963],300:[1,962]},o($VD2,[2,642]),o($V74,[2,649]),o($V84,[2,627]),o($V84,[2,628]),o($V84,[2,629]),o($V84,[2,630]),o($V84,[2,631]),o($V84,[2,632]),o($V84,[2,633]),o($V84,[2,634]),o($V84,[2,635]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:964,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],$Vy2,{77:$VN1,116:$V94}),{74:$Vx3,300:[1,966]},o($Va4,[2,314],{77:$VN1}),o($VB1,[2,315]),{74:[1,968],426:[1,967]},o($VD2,[2,639]),o($Vb4,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:972,342:973,343:[1,974],344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($Vt1,$Vu1,{340:981,198:$Vv1}),{77:$Ve4,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,201:980,302:$Vn1,341:982,342:983,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{230:[1,986],455:985},{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:987,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{231:[2,696]},{78:[1,988]},o($VI2,[2,1093],{211:989,3:990,2:$V1,4:$V2,5:$V3}),o($VH2,[2,1092]),o($VI2,[2,183]),{2:$V1,3:991,4:$V2,5:$V3},{212:[1,992]},o($VI2,[2,187]),{2:$V1,3:993,4:$V2,5:$V3},o($VI2,[2,191]),{2:$V1,3:994,4:$V2,5:$V3},o($VI2,[2,195]),{2:$V1,3:995,4:$V2,5:$V3},o($VI2,[2,198]),{2:$V1,3:996,4:$V2,5:$V3},{2:$V1,3:997,4:$V2,5:$V3},{148:[1,998]},o($Vf4,[2,172],{82:999,183:[1,1000]}),{2:$V1,3:219,4:$V2,5:$V3,132:[1,1005],143:$VY,145:[1,1006],152:$V$,156:$VL,181:$V31,199:1001,200:1002,201:1003,202:1004,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1},{2:$V1,3:1011,4:$V2,5:$V3,109:1007,110:1008,111:1009,112:$Vg4},o($VO2,[2,1058]),o($Vh4,[2,1049],{91:1012,182:1013,183:[1,1014]}),o($VA1,[2,1048],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},o($Vl4,[2,93]),{2:$V1,3:1021,4:$V2,5:$V3},o($Vl4,[2,95]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1022,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1023,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1025,118:$VT2,122:$VU2,123:$VV2,124:$VW2,125:1024,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},o($Vl4,[2,104]),o($Vl4,[2,105]),o($Vl4,[2,106]),o($Vl4,[2,107]),o($Vl4,[2,108]),o($Vl4,[2,109]),{2:$V1,3:1030,4:$V2,5:$V3},{2:$V1,3:1031,4:$V2,5:$V3,133:[1,1032]},o($Vl4,[2,113]),o($Vl4,[2,114]),o($Vl4,[2,115]),o($Vl4,[2,116]),o($Vl4,[2,117]),o($Vl4,[2,118]),{2:$V1,3:1033,4:$V2,5:$V3,77:$VB2,113:669,131:$VV,132:$VW,143:$VY,152:$V$,181:$V31,196:670,201:672,257:671,294:$Vh1,295:$Vi1,296:$Vj1,302:$Vn1,419:673,424:$Vs1},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},o($Vl4,[2,123]),{77:[1,1037]},{2:$V1,3:1038,4:$V2,5:$V3},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:$V1,3:244,4:$V2,5:$V3,199:1054},{2:$V1,3:244,4:$V2,5:$V3,199:1055},{113:1056,132:$VW,296:$Vj1},o($VK,[2,596],{112:[1,1057]}),{2:$V1,3:244,4:$V2,5:$V3,199:1058},{113:1059,132:$VW,296:$Vj1},{2:$V1,3:1060,4:$V2,5:$V3},o($VK,[2,693]),o($VK,[2,68]),{2:$V1,3:236,4:$V2,5:$V3,75:1061},{77:[1,1062]},o($VK,[2,674]),o($VK,[2,586]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1063,336:1064,337:1066},{144:1069,145:$VC1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,671]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1070,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VZ3,$V_3,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:$V1,4:$V2,5:$V3,77:$VU,131:$VV,132:$VW,137:$VX,143:$VY,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,179:$V11,180:$V21,181:$V31,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,420:$Vr1,424:$Vs1}),{113:1072,132:$VW,296:$Vj1},{2:$V1,3:266,4:$V2,5:$V3,446:1073,447:$VE1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1075,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,230:$VA3,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1,429:1074,433:$VB3},o($VK,[2,651]),{114:1077,115:$V$1,116:$V02,124:[1,1076]},o($VK,[2,663]),o($VK,[2,664]),{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1078},{114:807,115:$V$1,116:$V02,124:[1,1082],430:1083},o($VK,[2,753],{74:$VC3}),{2:$V1,3:100,4:$V2,5:$V3,504:1084},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1085,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1086,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1087,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VF3,[2,151]),o($VF3,[2,1088],{74:$Vq4}),o($Vr4,[2,273]),o($Vr4,[2,280],{114:625,327:637,3:1090,113:1092,2:$V1,4:$V2,5:$V3,76:[1,1089],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,131:[1,1091],132:$VW,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,296:$Vj1,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VH1,[2,1089],{197:1093,765:[1,1094]}),{131:$VV,196:1095},{74:$VC3,78:[1,1096]},o($VJ,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},o($VK,[2,575],{76:[1,1103],77:[1,1102]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1104,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vz2,[2,346]),o($VE3,[2,1112]),o($VE3,[2,1109]),o($VE3,[2,1110]),{74:$Vx3,78:[1,1105]},{74:$Vx3,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},o($Vz2,[2,353]),o($VK,[2,580]),{298:[1,1111]},{2:$V1,3:1112,4:$V2,5:$V3,113:1113,132:$VW,296:$Vj1},{2:$V1,3:244,4:$V2,5:$V3,199:1114},{230:[1,1115]},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},o($VK,[2,730],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD3,[2,1145],{477:1117,483:1118,76:$Vs4}),o($VJ3,[2,1144]),{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,144:1121,145:$VC1,152:$VT1,419:190,420:$Vr1,424:$Vs1,475:1120,493:579,497:581},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:$V1,3:578,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},o($VN3,[2,1163],{491:1126,132:[1,1127]}),o($VL3,[2,1162]),o($VO3,[2,1169],{495:1128,497:1129,152:$VT1}),o($VN3,[2,1168]),o($VO3,[2,746]),o($VO3,[2,1172]),o($VL3,[2,749]),o($VL3,[2,750]),o($VO3,[2,748]),o($VP3,[2,740]),{2:$V1,3:244,4:$V2,5:$V3,199:1130},{2:$V1,3:244,4:$V2,5:$V3,199:1131},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1132,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vt4,[2,1139],{467:1133,113:1134,132:$VW,296:$Vj1}),o($VQ3,[2,1138]),{2:$V1,3:1135,4:$V2,5:$V3},{335:$Vu4,338:$Vv4,339:$Vw4,511:1136},{2:$V1,3:244,4:$V2,5:$V3,199:1140},o($VR3,[2,765]),o($VR3,[2,766]),o($VR3,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},o($VV1,[2,688]),o($VV1,[2,689],{124:[1,1144]}),{4:$VX3,7:879,272:1145,387:878,389:$VY3},o([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),o([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},o($Vx4,[2,4]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1150,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,588]),o($VH3,[2,568]),{2:$V1,3:1151,4:$V2,5:$V3,113:1152,132:$VW,296:$Vj1},o($VK,[2,564],{74:$Vy4}),o($VV1,[2,566]),o($VK,[2,613],{74:$Vy4}),o($VK,[2,668]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($Vz4,[2,376],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($V34,[2,377],{114:625,327:637,316:$Vj2}),o($Vz4,[2,378],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,379],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1155],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VA4,[2,381],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,314:[1,1156],316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,383],{114:625,327:637}),o($V24,[2,384],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($V24,[2,385],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,180:$Ve2,312:$Vg2,316:$Vj2}),o($VB4,[2,386],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,387],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o($VB4,[2,388],{114:625,327:637,115:$V$1,116:$V02,123:$V12,136:$V42,312:$Vg2,316:$Vj2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:$V$1,116:$V02,136:$V42,312:$Vg2,316:$Vj2}),o($VC4,[2,390],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,391],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,392],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($VC4,[2,393],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2}),o($Va4,[2,394],{77:$VN1}),o($VB1,[2,395]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1157,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,397]),o($Va4,[2,398],{77:$VN1}),o($VB1,[2,399]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1158,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,401]),o($VD4,[2,402],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,403],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,404],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,405],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,407],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,408],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,409],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,410],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VD4,[2,411],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},o($VF4,[2,414],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2}),{2:$V1,3:168,4:$V2,5:$V3,40:1160,56:165,77:$VU,78:[1,1162],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1161,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,428]),o($VB1,[2,430]),o($VB1,[2,437]),o($VB1,[2,438]),{2:$V1,3:667,4:$V2,5:$V3,77:[1,1163]},{2:$V1,3:695,4:$V2,5:$V3,77:[1,1164],111:934,145:$V$3,156:$VL,200:935,202:1166,290:$VM,291:$VN,292:$VO,293:$VP,329:1165},o($VB1,[2,435]),o($VF4,[2,432],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o($VF4,[2,433],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,332:$Vw2}),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,436]),o($VB1,[2,306]),o($VB1,[2,307]),o($VB1,[2,308]),o($VB1,[2,421]),{74:$Vx3,78:[1,1167]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1168,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1169,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,$VG4),o($VH4,[2,286]),o($VB1,[2,282]),{78:[1,1171],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1172]},{305:1173,306:$V44,307:957,308:$VC2,310:$V54},{306:[1,1174]},o($V64,[2,371]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1175,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1176],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{76:[1,1177],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1178]},o($VD2,[2,640]),{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,300:[1,1179],302:$Vn1,419:190,420:$Vr1,422:1180,423:686,424:$Vs1},{78:[1,1181],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1182,4:$V2,5:$V3,149:$V14},o($VB1,[2,364]),o($VD2,[2,637]),{2:$V1,3:704,4:$V2,5:$V3,131:$VF2,132:$VG2,426:[1,1183],428:1184},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1185,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1186,423:686,424:$Vs1},{2:$V1,3:695,4:$V2,5:$V3,77:$VE2,111:690,113:688,131:$VV,132:$VW,143:$VY,144:685,145:$VC1,152:$V$,156:$VL,181:$V31,196:687,200:693,201:692,257:689,258:691,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1,419:190,420:$Vr1,422:1187,423:686,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1188,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,458],{74:$VJ4}),{149:$Vc4,341:1190,344:$Vd4},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,100:1191,111:1193,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,466]),o($VK4,[2,469]),o($VK4,[2,470]),o($VL4,[2,474]),o($VL4,[2,475]),{2:$V1,3:244,4:$V2,5:$V3,199:1195},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1196,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,462],{74:$VJ4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1192,419:190,420:$Vr1,424:$Vs1},{308:$VM4,456:1197,458:1198,459:1199},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1201,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{230:[2,697]},o($VI2,[2,181],{3:1202,2:$V1,4:$V2,5:$V3,76:[1,1203]}),o($VI2,[2,182]),o($VI2,[2,1094]),o($VI2,[2,184]),o($VI2,[2,186]),o($VI2,[2,188]),o($VI2,[2,192]),o($VI2,[2,196]),o($VI2,[2,199]),o([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:$V1,3:1204,4:$V2,5:$V3},o($VN4,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1210],132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,203:1209,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VL2,[2,164]),o($VL2,[2,165]),o($VL2,[2,166]),o($VL2,[2,167]),o($VL2,[2,168]),{2:$V1,3:667,4:$V2,5:$V3},o($Vz1,[2,83],{74:[1,1212]}),o($VO4,[2,85]),o($VO4,[2,86]),{113:1213,132:$VW,296:$Vj1},o([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],$Vy2,{116:$V94}),o($Vh4,[2,73]),o($Vh4,[2,1050]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1214,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,126]),o($Vl4,[2,144]),o($Vl4,[2,145]),o($Vl4,[2,146]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1065],94:260,111:149,113:153,127:1215,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1216,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1217]},o($Vl4,[2,94]),o([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:$VZ1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1218],112:$VS2,114:736,115:$V$1,116:$V02,117:1219,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1061],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1221,118:$VT2,122:$VU2,123:$VV2,124:$VW2,126:1220,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1222,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1223,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1224,4:$V2,5:$V3},o($Vl4,[2,110]),o($Vl4,[2,111]),o($Vl4,[2,112]),o($Vl4,[2,119]),{2:$V1,3:1225,4:$V2,5:$V3},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1226,336:1064,337:1066},{2:$V1,3:1227,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1228,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,125]),o($VP4,[2,1067],{155:1229}),o($VP4,[2,1069],{157:1230}),o($VP4,[2,1071],{159:1231}),o($VP4,[2,1075],{161:1232}),o($VQ4,$VR4,{163:1233,178:1234}),{77:[1,1235]},o($VP4,[2,1077],{165:1236}),o($VP4,[2,1079],{167:1237}),o($VQ4,$VR4,{178:1234,163:1238}),o($VQ4,$VR4,{178:1234,163:1239}),o($VQ4,$VR4,{178:1234,163:1240}),o($VQ4,$VR4,{178:1234,163:1241}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1242,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1243,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1081],{176:1244}),o($VK,[2,606],{183:[1,1245]}),o($VK,[2,602],{183:[1,1246]}),o($VK,[2,595]),{113:1247,132:$VW,296:$Vj1},o($VK,[2,604],{183:[1,1248]}),o($VK,[2,599]),o($VK,[2,600],{112:[1,1249]}),o($Vv3,[2,69]),{40:1250,79:75,89:$V7,184:99,189:$Vb},o($VK,[2,450],{74:$VT4,128:[1,1251]}),o($VU4,[2,451]),{124:[1,1253]},{2:$V1,3:1254,4:$V2,5:$V3},o($Vt1,[2,1115]),o($Vt1,[2,1116]),o($VK,[2,618]),o($Vy3,[2,355],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VD4,$VE4,{114:625,327:637,112:$V_1,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,332:$Vw2}),o($VV1,[2,682]),o($VV1,[2,684]),o($VK,[2,650]),o($VK,[2,652],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1255,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1079,4:$V2,5:$V3,77:$Vo4,131:$Vp4,432:1256},o($VV4,[2,659]),o($VV4,[2,660]),o($VV4,[2,661]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1257,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1258,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{114:1077,115:$V$1,116:$V02,124:[1,1259]},o($VD3,[2,755]),o($VF3,[2,148],{74:$Vq4}),o($VF3,[2,149],{74:$Vq4}),o($VF3,[2,150],{74:$Vq4}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1261,4:$V2,5:$V3,113:1263,131:[1,1262],132:$VW,296:$Vj1},o($Vr4,[2,275]),o($Vr4,[2,277]),o($Vr4,[2,279]),o($VH1,[2,160]),o($VH1,[2,1090]),{78:[1,1264]},o($VK1,[2,758]),{2:$V1,3:1265,4:$V2,5:$V3},{2:$V1,3:1266,4:$V2,5:$V3},{2:$V1,3:1268,4:$V2,5:$V3,384:1267},{2:$V1,3:1268,4:$V2,5:$V3,384:1269},{2:$V1,3:1270,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1271,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1272,4:$V2,5:$V3},{74:$Vx3,78:[1,1273]},o($Vz2,[2,347]),o($Vz2,[2,348]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1274,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1275,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1276,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1277,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VH3,[2,504]),o($VK,$VW4,{407:1278,76:$VX4,77:[1,1279]}),o($VK,$VW4,{407:1281,76:$VX4}),{77:[1,1282]},{2:$V1,3:244,4:$V2,5:$V3,199:1283},o($VD3,[2,731]),o($VD3,[2,733]),o($VD3,[2,1146]),{143:$VF1,145:$VG1,431:1284},o($VY4,[2,1147],{419:190,479:1285,144:1286,145:$VC1,420:$Vr1,424:$Vs1}),{76:$Vs4,139:[2,1151],481:1287,483:1288},o([10,74,76,78,132,139,145,152,306,310,420,424,602,764],$VM3,{490:851,493:852,137:$VS1}),o($VD3,[2,736]),o($VD3,$VK3),{74:$VI3,78:[1,1289]},o($VO3,[2,1165],{492:1290,497:1291,152:$VT1}),o($VN3,[2,1164]),o($VO3,[2,745]),o($VO3,[2,1170]),o($VK,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,148:[1,1295],154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI4,$VZ4,{79:75,184:99,468:1296,40:1299,89:$V7,146:$V_4,189:$Vb,470:$V$4}),o($Vt4,[2,1140]),o($VQ3,[2,723]),{230:[1,1300]},o($V05,[2,769]),o($V05,[2,770]),o($V05,[2,771]),o($VR3,$VS3,{510:1301,95:$VT3,514:$VU3,515:$VV3,516:$VW3}),o($VR3,[2,768]),o($VK,[2,312]),o($VK,[2,313]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1302,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV1,[2,690],{124:[1,1303]}),o($Vx4,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},o($Vx4,[2,5]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1307,419:190,420:$Vr1,424:$Vs1},o($VK,[2,455],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,589]),o($VK,[2,590]),{2:$V1,3:244,4:$V2,5:$V3,199:1308},o($VK,[2,670]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1309,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1310,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1311],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1312],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,40:1313,56:165,77:$VU,79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1314,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1315]},{74:$Vx3,78:[1,1316]},o($VB1,[2,426]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1317,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,40:1318,56:165,77:$VU,78:[1,1320],79:75,89:$V7,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1319,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,184:99,189:$Vb,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,429]),o($VB1,[2,431]),o($VB1,$V15,{275:1321,276:$V25}),{78:[1,1323],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1324],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3,180:[1,1326]},o($VD2,[2,619]),o($VB1,[2,363]),{306:[1,1327]},o($VB1,[2,370]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,306:[2,374],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1328,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{4:$VX3,7:879,272:1329,387:878,389:$VY3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1330,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VD2,[2,641]),o($V74,[2,648]),o($V84,[2,636]),o($VH4,$VG4),o($VD2,[2,638]),o($Vb4,[2,643]),o($Vb4,[2,645]),o($Vb4,[2,646]),o($Vb4,[2,647]),o($VI4,[2,457],{74:$VJ4}),{77:[1,1332],143:$VY,144:1333,145:$VC1,152:$V$,181:$V31,201:1334,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,463]),{74:$V35,78:[1,1335]},{74:$V45,78:[1,1337]},o([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],$V55),o($V65,[2,479],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{40:1341,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1339,342:1340,344:$Vd4,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,461],{74:$VJ4}),o($VK,[2,717],{457:1342,458:1343,459:1344,308:$VM4,464:[1,1345]}),o($V75,[2,701]),o($V75,[2,702]),{154:[1,1347],460:[1,1346]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,308:[2,698],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VI2,[2,179]),{2:$V1,3:1348,4:$V2,5:$V3},o($VK,[2,574]),o($V85,[2,238],{84:1349,128:[1,1350]}),o($VN4,[2,1046]),{77:[1,1351]},{77:[1,1352]},o($Vf4,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:$V95,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,40:711,77:$Vw1,79:75,89:$V7,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,184:99,189:$Vb,199:213,200:215,201:214,202:217,203:1369,209:1211,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vk5,[2,177]),{2:$V1,3:1011,4:$V2,5:$V3,110:1370,111:1009,112:$Vg4},o($VO4,[2,87]),o($Vh4,[2,147],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[1,1371]},{74:$Vx3,78:[2,1066]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,98]),o($VP4,[2,1062],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1377],112:$VS2,114:736,115:$V$1,116:$V02,117:1378,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},o($VP4,[2,1063],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{78:[1,1379],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1380],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1381]},o($Vl4,[2,120]),{74:$VT4,78:[1,1382]},o($Vl4,[2,122]),{74:$Vx3,78:[1,1383]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1384],112:$VS2,114:736,115:$V$1,116:$V02,117:1385,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1386],112:$VS2,114:736,115:$V$1,116:$V02,117:1387,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1388],112:$VS2,114:736,115:$V$1,116:$V02,117:1389,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1390],112:$VS2,114:736,115:$V$1,116:$V02,117:1391,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1392]},o($V65,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($VQ4,$VR4,{178:1234,163:1395}),{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1396],112:$VS2,114:736,115:$V$1,116:$V02,117:1397,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,78:[1,1398],112:$VS2,114:736,115:$V$1,116:$V02,117:1399,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{74:$Vl5,78:[1,1400]},{74:$Vl5,78:[1,1401]},{74:$Vl5,78:[1,1402]},{74:$Vl5,78:[1,1403]},{78:[1,1404],153:1015,179:$Vi4,180:$Vj4,181:$Vk4},{74:$Vq4,78:[1,1405]},{2:$V1,3:733,4:$V2,5:$V3,72:$VP2,74:[1,1406],76:$VQ2,77:$VR2,112:$VS2,114:736,115:$V$1,116:$V02,117:1407,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,144:758,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,158:768,160:769,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1408,4:$V2,5:$V3},{2:$V1,3:1409,4:$V2,5:$V3},o($VK,[2,597]),{2:$V1,3:1410,4:$V2,5:$V3},{113:1411,132:$VW,296:$Vj1},{78:[1,1412]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1413,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,336:1414,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1415,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{124:[1,1416]},o($VK,[2,653],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VV4,[2,658]),{78:[1,1417],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,654],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1418,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vr4,[2,272]),o($Vr4,[2,274]),o($Vr4,[2,276]),o($Vr4,[2,278]),o($VH1,[2,161]),o($VK,[2,569]),{148:[1,1419]},o($VK,[2,570]),o($VD3,[2,536],{387:878,7:879,272:1420,4:$VX3,386:[1,1421],389:$VY3}),o($VK,[2,571]),o($VK,[2,573]),{74:$Vx3,78:[1,1422]},o($VK,[2,577]),o($Vz2,[2,345]),{74:[1,1423],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1424],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1425],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{74:[1,1426],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,[2,581]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1427,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1428,4:$V2,5:$V3},o($VK,[2,583]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1429,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1430]},{2:$V1,3:1431,4:$V2,5:$V3},{76:$Vs4,139:[2,1149],480:1432,483:1433},o($VY4,[2,1148]),{139:[1,1434]},{139:[2,1152]},o($VD3,[2,737]),o($VO3,[2,744]),o($VO3,[2,1166]),{2:$V1,3:1268,4:$V2,5:$V3,76:[1,1437],351:1435,358:1436,384:1438},{2:$V1,3:1011,4:$V2,5:$V3,100:1439,111:1440},{40:1441,79:75,89:$V7,184:99,189:$Vb},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1442,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,722]),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1443,336:1064,337:1066},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1444,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,727]),{2:$V1,3:244,4:$V2,5:$V3,199:1445},{335:$Vu4,338:$Vv4,339:$Vw4,511:1446},o($VV1,[2,691],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1447,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:[1,1448],78:[1,1449]},o($V65,[2,543]),o($V65,[2,544]),{74:$V45,78:[1,1450]},o($VV1,[2,565]),o($Vz4,[2,380],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($Vz4,[2,382],{114:625,327:637,115:$V$1,116:$V02,123:$V12,133:$V32,136:$V42,138:$V52,141:$V82,142:$V92,179:$Vd2,180:$Ve2,312:$Vg2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2}),o($VB1,[2,396]),o($VB1,[2,400]),{78:[1,1451]},{74:$Vx3,78:[1,1452]},o($VB1,[2,422]),o($VB1,[2,424]),{78:[1,1453],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1454]},{74:$Vx3,78:[1,1455]},o($VB1,[2,427]),o($VB1,[2,327]),{77:[1,1456]},o($VB1,$V15,{275:1457,276:$V25}),o($VB1,$V15,{275:1458,276:$V25}),o($VH4,[2,284]),o($VB1,[2,281]),o($VB1,[2,369]),o($V64,[2,373],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{2:$V1,3:1325,4:$V2,5:$V3},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1194,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,345:1463,419:190,420:$Vr1,424:$Vs1},o($VL4,[2,477]),o($VL4,[2,478]),{40:1466,77:$Ve4,79:75,89:$V7,143:$VY,144:979,145:$VC1,149:$Vc4,152:$V$,181:$V31,184:99,189:$Vb,201:980,302:$Vn1,341:1464,342:1465,344:$Vd4,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,111:1467},o($VL4,[2,473]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1468,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1469,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,460],{74:$VJ4}),o($VI4,[2,467]),o($VK,[2,694]),o($V75,[2,699]),o($V75,[2,700]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:817,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,174:1470,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{170:[1,1472],309:[1,1471]},{460:[1,1473]},o($VI2,[2,180]),o($Vm5,[2,240],{85:1474,232:[1,1475]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1476,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1477,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1478,4:$V2,5:$V3},o($Vf4,[2,170],{216:1357,221:1360,215:1479,205:1480,206:$Va5,208:$Vb5,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5}),{2:$V1,3:219,4:$V2,5:$V3,77:$Vw1,132:$Vx1,143:$VY,144:212,145:$VZ,152:$V$,156:$VL,181:$V31,199:213,200:215,201:214,202:217,209:1481,213:$Vy1,214:218,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},o($Vn5,[2,205]),o($Vn5,[2,206]),{2:$V1,3:219,4:$V2,5:$V3,77:[1,1486],143:$VY,144:1484,145:$VZ,152:$V$,156:$VL,181:$V31,199:1483,200:1487,201:1485,202:1488,217:1482,290:$VM,291:$VN,292:$VO,293:$VP,302:$Vn1,419:190,420:$Vr1,424:$Vs1},{207:[1,1489],223:$Vo5},{207:[1,1491],223:$Vp5},o($Vq5,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vq5,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:$V95,204:1504,205:1356,206:$Va5,208:$Vb5,215:1355,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($VO4,[2,84]),o($Vl4,[2,100]),{74:$Vr5,78:[1,1505]},{78:[1,1507]},o($Vs5,[2,261]),{78:[2,1060]},o($Vs5,[2,263],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,242:[1,1508],243:[1,1509],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vl4,[2,99]),o($VP4,[2,1064],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,101]),o($Vl4,[2,102]),o($Vl4,[2,103]),o($Vl4,[2,121]),o($Vl4,[2,124]),o($Vl4,[2,127]),o($VP4,[2,1068],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,128]),o($VP4,[2,1070],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,129]),o($VP4,[2,1072],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,130]),o($VP4,[2,1076],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,131]),o($VQ4,[2,1083],{177:1510}),o($VQ4,[2,1086],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),{74:$Vl5,78:[1,1511]},o($Vl4,[2,133]),o($VP4,[2,1078],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,134]),o($VP4,[2,1080],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,135]),o($Vl4,[2,136]),o($Vl4,[2,137]),o($Vl4,[2,138]),o($Vl4,[2,139]),o($Vl4,[2,140]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:260,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,151:1512,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VS4,[2,1082],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($VK,[2,607]),o($VK,[2,603]),o($VK,[2,605]),o($VK,[2,601]),o($Vv3,[2,71]),o($VK,[2,449],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VU4,[2,452]),o($VU4,[2,453],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1513,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VV4,[2,662]),o($VK,[2,655],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:1514,4:$V2,5:$V3},o($VD3,[2,545],{385:1515,391:1516,392:1517,366:1525,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($VD3,[2,535]),o($VK,[2,576],{76:[1,1529]}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1530,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1531,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1532,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1533,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$Vx3,78:[1,1534]},o($VK,[2,585]),{74:$Vr5,78:[1,1535]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1536,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:$V7,184:99,189:$Vb},o($V65,[2,532]),{74:$V35,78:[1,1542]},o($Vk5,$V55),o($VK,[2,1133],{412:1543,413:1544,72:$VD5}),o($VI4,$VZ4,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:$V7,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,146:$V_4,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,189:$Vb,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2,470:$V$4}),o($VI4,[2,725],{74:$VT4}),o($VI4,[2,726],{74:$Vx3}),o([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:$V1,4:$V2,5:$V3,76:[1,1549]}),o($VE5,[2,1183],{513:1550,76:[1,1551]}),o($VV1,[2,692],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{131:[1,1552]},o($Vx4,[2,538]),o($Vx4,[2,540]),o($VB1,[2,412]),o($VB1,[2,413]),o($VB1,[2,439]),o($VB1,[2,423]),o($VB1,[2,425]),{118:$VF5,277:1553,278:1554,279:[1,1555]},o($VB1,[2,328]),o($VB1,[2,329]),o($VB1,[2,316]),{131:[1,1557]},o($VB1,[2,318]),{131:[1,1558]},{74:$V45,78:[1,1559]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1560,419:190,420:$Vr1,424:$Vs1},o($VI4,[2,465],{74:$VJ4}),o($VI4,[2,468]),o($Vk5,[2,488]),o($V65,[2,480],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VI4,[2,459],{74:$VJ4}),o($VK,[2,718],{74:$Vq4,198:[1,1561]}),{335:$VG5,338:$VH5,461:1562},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1565,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{119:[1,1567],170:[1,1568],309:[1,1566]},o($VI5,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},o($V85,[2,239],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{95:[1,1572],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{95:[1,1573]},o($Vn5,[2,203]),o($Vn5,[2,204]),o($Vk5,[2,178]),o($Vn5,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),o($VJ5,[2,208],{3:1577,2:$V1,4:$V2,5:$V3,76:[1,1578]}),o($VK5,[2,1095],{219:1579,76:[1,1580]}),{2:$V1,3:1581,4:$V2,5:$V3,76:[1,1582]},{40:1583,79:75,89:$V7,184:99,189:$Vb},o($VJ5,[2,216],{3:1584,2:$V1,4:$V2,5:$V3,76:[1,1585]}),o($VJ5,[2,219],{3:1586,2:$V1,4:$V2,5:$V3,76:[1,1587]}),{77:[1,1588]},o($Vq5,[2,234]),{77:[1,1589]},o($Vq5,[2,230]),o($Vq5,[2,223]),{223:$Vp5},{223:$Vo5},o($Vq5,[2,225]),o($Vq5,[2,226]),{223:[1,1590]},o($Vq5,[2,228]),{223:[1,1591]},{223:[1,1592]},o($Vq5,[2,232]),o($Vq5,[2,233]),{78:[1,1593],205:1480,206:$Va5,208:$Vb5,215:1479,216:1357,221:1360,222:$Vc5,223:$Vd5,224:$Ve5,225:$Vf5,226:$Vg5,227:$Vh5,228:$Vi5,229:$Vj5},o($Vl4,[2,91]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vl4,[2,92]),o($Vs5,[2,264]),{244:[1,1595]},o($V65,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:$V1,4:$V2,5:$V3,72:$VP2,76:$VQ2,77:$VR2,112:$VS2,115:$V$1,116:$V02,118:$VT2,122:$VU2,123:$VV2,124:$VW2,128:$VX2,129:$VY2,130:$VZ2,131:$V_2,132:$V$2,133:$V03,134:$V13,135:$V23,136:$V33,137:$V43,138:$V53,139:$V63,140:$V73,141:$V83,142:$V93,143:$Va3,145:$Vb3,146:$Vc3,148:$Vd3,149:$Ve3,150:$Vf3,152:$Vg3,154:$Vh3,156:$Vi3,162:$Vj3,164:$Vk3,166:$Vl3,168:$Vm3,169:$Vn3,170:$Vo3,171:$Vp3,172:$Vq3,173:$Vr3,175:$Vs3,185:$Vt3,187:$Vu3,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,420:$Vr1,424:$Vs1}),o($Vl4,[2,132]),{74:$Vx3,78:[1,1597]},o($VU4,[2,454],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($VK,[2,572]),o($VD3,[2,534]),o($VD3,[2,546],{366:1525,392:1598,154:$Vt5,187:$Vu5,230:$Vv5,297:$Vw5,343:$Vx5,356:$Vy5,368:$Vz5,369:$VA5,373:$VB5,374:$VC5}),o($Vw3,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:$V1,3:244,4:$V2,5:$V3,199:1601},o($Vw3,[2,554],{77:[1,1602]}),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1604],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:1605,201:254,257:252,258:253,265:$VD1,274:1603,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},o($Vw3,[2,558]),{297:[1,1606]},o($Vw3,[2,560]),o($Vw3,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:$V1,3:1609,4:$V2,5:$V3},{78:[1,1610],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1611],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1612],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{78:[1,1613],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VK,$VW4,{407:1614,76:$VX4}),o($VK,[2,591]),{74:$Vr5,78:[1,1615]},{2:$V1,3:1122,4:$V2,5:$V3,132:$VR1,137:$VS1,143:$VF1,145:$VG1,152:$VT1,431:585,475:1124,478:1616,482:582,493:579,497:581},o($VD3,[2,735]),o($VK,[2,493],{352:1617,354:1618,355:1619,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VP5,$VQ5,{3:1268,359:1624,384:1625,360:1626,361:1627,2:$V1,4:$V2,5:$V3,367:$VR5}),{78:[2,507]},{76:[1,1629]},o($VK,[2,609]),o($VK,[2,1134]),{368:[1,1631],414:[1,1630]},o($VI4,[2,728]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VK,[2,762]),o($VE5,[2,1182]),o($VK,$V0,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:$V1,4:$V2,5:$V3,53:$V5,72:$V6,89:$V7,124:$V8,146:$V9,156:$Va,189:$Vb,266:$Vc,267:$Vd,290:$Ve,335:$Vf,338:$Vg,339:$Vh,396:$Vi,400:$Vj,401:$Vk,404:$Vl,406:$Vm,408:$Vn,409:$Vo,417:$Vp,418:$Vq,434:$Vr,436:$Vs,437:$Vt,439:$Vu,440:$Vv,441:$Vw,442:$Vx,443:$Vy,447:$Vz,448:$VA,451:$VB,452:$VC,505:$VD,507:$VE,508:$VF,517:$VG}),o($VE5,[2,1184]),{78:[1,1634]},{78:[1,1635],118:$VF5,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},o($VL4,[2,476]),o($VI4,[2,464],{74:$VJ4}),{2:$V1,3:244,4:$V2,5:$V3,143:$VF1,145:$VG1,199:1643,431:1642},o($V75,[2,703]),o($V75,[2,705]),{146:[1,1644]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1645],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},{339:$VS5,462:1646},{417:[1,1649],463:[1,1648]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1650,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VT5,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1655,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1661,4:$V2,5:$V3},{2:$V1,3:1662,4:$V2,5:$V3},o($Vn5,[2,207]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1663,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1664,111:1440},o($VJ5,[2,209]),{2:$V1,3:1665,4:$V2,5:$V3},o($VJ5,[2,1097],{220:1666,3:1667,2:$V1,4:$V2,5:$V3}),o($VK5,[2,1096]),o($VJ5,[2,212]),{2:$V1,3:1668,4:$V2,5:$V3},{78:[1,1669]},o($VJ5,[2,217]),{2:$V1,3:1670,4:$V2,5:$V3},o($VJ5,[2,220]),{2:$V1,3:1671,4:$V2,5:$V3},{40:1672,79:75,89:$V7,184:99,189:$Vb},{40:1673,79:75,89:$V7,184:99,189:$Vb},o($Vq5,[2,227]),o($Vq5,[2,229]),o($Vq5,[2,231]),o($Vf4,[2,171]),o($Vs5,[2,262]),o($Vs5,[2,265],{242:[1,1674]}),o($VQ4,[2,1084],{153:1015,179:$Vi4,180:$Vj4,181:$Vk4}),o($Vl4,[2,141]),o($Vw3,[2,547]),o($Vw3,[2,550]),{374:[1,1675]},o($Vw3,[2,1127],{395:1676,393:1677,77:$VX5}),{131:$VV,196:1679},o($Vw3,[2,555]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1680,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vw3,[2,557]),o($Vw3,[2,559]),{2:$V1,3:114,4:$V2,5:$V3,77:[1,1682],113:251,131:$VV,132:$VW,143:$VY,152:$V$,156:$VL,181:$V31,196:250,200:255,201:254,257:252,258:253,265:$VD1,274:1681,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,302:$Vn1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1683,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VK,[2,578]),o($Vz2,[2,349]),o($Vz2,[2,350]),o($Vz2,[2,351]),o($Vz2,[2,352]),o($VK,[2,582]),o($VK,[2,592]),o($VD3,[2,734]),o($VK,[2,489]),o($VK,[2,494],{355:1684,4:$VL5,243:$VM5,343:$VN5,356:$VO5}),o($VY5,[2,496]),o($VY5,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},o($V65,[2,533]),o($V65,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:$Vz5,369:[1,1694],370:[1,1698],373:[1,1695]},{2:$V1,3:1699,4:$V2,5:$V3},{40:1700,79:75,89:$V7,184:99,189:$Vb},{415:[1,1701]},{416:[1,1702]},o($VK,[2,761]),o($VK,[2,763]),o($Vx4,[2,537]),o($VB1,[2,331]),{78:[1,1703]},o($VB1,[2,332]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1704,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1705,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($VB1,[2,317]),o($VB1,[2,319]),{2:$V1,3:1706,4:$V2,5:$V3},o($VK,[2,720],{77:[1,1707]}),{2:$V1,3:1011,4:$V2,5:$V3,111:1065,143:$Vm4,145:$Vn4,147:1708,336:1064,337:1066},{335:$VG5,338:$VH5,461:1709},o($V75,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1717],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vh4,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:$VV,196:1722},{131:$VV,196:1723},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1376,111:149,113:153,120:1724,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},o($Vm5,[2,248],{234:1725,74:$VZ5,239:[1,1727]}),o($V_5,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},o($V_5,[2,247],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},o($Vn5,[2,235],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),o($Vn5,[2,236],{74:$V35}),o($VJ5,[2,210]),o($VJ5,[2,211]),o($VJ5,[2,1098]),o($VJ5,[2,213]),{2:$V1,3:1735,4:$V2,5:$V3,76:[1,1736]},o($VJ5,[2,218]),o($VJ5,[2,221]),{78:[1,1737]},{78:[1,1738]},o($Vs5,[2,266]),{2:$V1,3:244,4:$V2,5:$V3,199:1739},o($Vw3,[2,552]),o($Vw3,[2,1128]),{2:$V1,3:1740,4:$V2,5:$V3},{74:[1,1741]},{78:[1,1742],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,562]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1743,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1744],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($VY5,[2,495]),{2:$V1,3:1745,4:$V2,5:$V3},{131:$VV,196:1746},{2:$V1,3:1747,4:$V2,5:$V3},o($VP5,$VQ5,{361:1627,360:1748,367:$VR5}),o($VD3,[2,510]),o($VD3,[2,511]),o($VD3,[2,512]),o($VD3,[2,513]),o($VD3,[2,514]),{370:[1,1749]},{370:[1,1750]},o($V$5,[2,1121],{382:1751,370:[1,1752]}),{2:$V1,3:1753,4:$V2,5:$V3},{2:$V1,3:1754,4:$V2,5:$V3},o($VP5,[2,516]),o($VK,[2,1131],{411:1755,413:1756,72:$VD5}),o($VK,[2,610]),o($VK,[2,611],{367:[1,1757]}),o($VB1,[2,333]),o([78,118],[2,334],{74:$VZ5}),{74:$Vr5,78:[2,335]},o($VK,[2,719]),{2:$V1,3:1011,4:$V2,5:$V3,100:1758,111:1440},o($V75,[2,706],{74:$VT4}),o($V75,[2,704]),{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1759,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1760,111:1440},{344:[1,1761]},{339:$VS5,462:1762},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1763,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1764},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1765,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{339:$VS5,462:1766},o($Vh4,[2,72]),{40:1767,79:75,89:$V7,164:[1,1768],184:99,189:$Vb,240:[1,1769]},{40:1770,79:75,89:$V7,184:99,189:$Vb,240:[1,1771]},{40:1772,79:75,89:$V7,184:99,189:$Vb,240:[1,1773]},o($VT5,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},o($VI5,[2,260],{74:$Vr5}),o($Vm5,[2,241]),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,235:1778,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1779,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{77:[1,1780]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1781,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1782,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},o($VJ5,[2,214]),{2:$V1,3:1786,4:$V2,5:$V3},{2:$V1,3:1787,4:$V2,5:$V3,76:[1,1788]},{2:$V1,3:1789,4:$V2,5:$V3,76:[1,1790]},o($Vw3,[2,1125],{394:1791,393:1792,77:$VX5}),{78:[1,1793]},{131:$VV,196:1794},o($Vw3,[2,556]),{78:[1,1795],99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($Vw3,[2,517]),o($VY5,[2,498]),o($VY5,[2,499]),o($VY5,[2,500]),o($V65,[2,509]),{2:$V1,3:1797,4:$V2,5:$V3,77:[2,1117],371:1796},{77:[1,1798]},{2:$V1,3:1800,4:$V2,5:$V3,77:[2,1123],383:1799},o($V$5,[2,1122]),{77:[1,1801]},{77:[1,1802]},o($VK,[2,608]),o($VK,[2,1132]),o($VP5,$VQ5,{361:1627,360:1803,367:$VR5}),{74:$V35,78:[1,1804]},o($V75,[2,713],{74:$VJ4}),{74:$V35,78:[1,1805]},o($V75,[2,715]),o($V75,[2,708]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1806],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,711]),{99:$VZ1,112:$V_1,114:625,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,309:[1,1807],311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,327:637,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2},o($V75,[2,709]),o($Vh4,[2,251]),{40:1808,79:75,89:$V7,184:99,189:$Vb,240:[1,1809]},{40:1810,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,253]),{40:1811,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,254]),{40:1812,79:75,89:$V7,184:99,189:$Vb},o($VT5,[2,268]),{131:$VV,196:1813},{249:[1,1814]},{249:[2,1100]},o($V_5,[2,243]),o($Vm5,[2,249],{114:625,327:637,99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1660,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,233:1815,235:1656,236:$VU5,237:$VV5,238:$VW5,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{74:$VZ5,78:[1,1816]},{74:$VZ5,78:[1,1817]},o($VN4,[2,1053],{97:1818,104:1819,3:1821,2:$V1,4:$V2,5:$V3,76:$V06}),{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,103:1822,105:1823,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1011,4:$V2,5:$V3,100:1825,111:1440},o($VJ5,[2,215]),o($Vn5,[2,173]),{2:$V1,3:1826,4:$V2,5:$V3},o($Vn5,[2,175]),{2:$V1,3:1827,4:$V2,5:$V3},o($Vw3,[2,551]),o($Vw3,[2,1126]),o($Vw3,[2,549]),{78:[1,1828]},o($Vw3,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1830},{77:[1,1833]},{77:[2,1124]},{2:$V1,3:1011,4:$V2,5:$V3,100:1834,111:1440},{2:$V1,3:1011,4:$V2,5:$V3,100:1835,111:1440},o($VK,[2,612]),o($VK,[2,721]),{343:[1,1837],344:[1,1836]},{339:$VS5,462:1838},{335:$VG5,338:$VH5,461:1839},o($Vh4,[2,252]),{40:1840,79:75,89:$V7,184:99,189:$Vb},o($Vh4,[2,255]),o($Vh4,[2,257]),o($Vh4,[2,258]),o($VT5,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:$VZ5,78:[1,1843]},o($V_5,[2,245]),o($V_5,[2,246]),o($VN4,[2,74]),o($VN4,[2,1054]),{2:$V1,3:1844,4:$V2,5:$V3},o($VN4,[2,78]),{74:[1,1846],78:[1,1845]},o($V65,[2,80]),o($V65,[2,81],{114:625,327:637,76:[1,1847],99:$VZ1,112:$V_1,115:$V$1,116:$V02,123:$V12,124:$Vz3,133:$V32,136:$V42,138:$V52,139:$V62,140:$V72,141:$V82,142:$V92,154:$Va2,170:$Vb2,171:$Vc2,179:$Vd2,180:$Ve2,311:$Vf2,312:$Vg2,313:$Vh2,315:$Vi2,316:$Vj2,317:$Vk2,318:$Vl2,319:$Vm2,320:$Vn2,321:$Vo2,322:$Vp2,323:$Vq2,324:$Vr2,325:$Vs2,326:$Vt2,330:$Vu2,331:$Vv2,332:$Vw2,333:$Vx2}),{74:$V35,78:[1,1848]},o($Vn5,[2,174]),o($Vn5,[2,176]),o($Vw3,[2,553]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1849},{74:$V26,78:[1,1850]},o($V65,[2,528]),o($V65,[2,529]),{2:$V1,3:1011,4:$V2,5:$V3,100:1852,111:1440},{74:$V35,78:[1,1853]},{74:$V35,78:[1,1854]},{77:$Ve4,143:$VY,144:979,145:$VC1,152:$V$,181:$V31,201:980,302:$Vn1,342:1855,419:190,420:$Vr1,424:$Vs1},{344:[1,1856]},o($V75,[2,710]),o($V75,[2,712]),o($Vh4,[2,256]),{131:$VV,196:1857},{131:[2,1102]},o($V_5,[2,244]),o($VN4,[2,77]),{78:[2,76]},{2:$V1,3:168,4:$V2,5:$V3,56:165,77:$VU,94:1824,105:1858,111:149,113:153,131:$VV,132:$VW,137:$VX,143:$VY,144:161,145:$VZ,149:$V_,152:$V$,154:$V01,156:$VL,158:167,179:$V11,180:$V21,181:$V31,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:$V41,266:$Vc,270:$V51,271:$V61,273:$V71,280:$V81,281:$V91,282:$Va1,283:$Vb1,284:$Vc1,285:$Vd1,286:$Ve1,287:$Vf1,288:$Vg1,290:$VM,291:$VN,292:$VO,293:$VP,294:$Vh1,295:$Vi1,296:$Vj1,297:$Vk1,298:$Vl1,299:$Vm1,302:$Vn1,303:$Vo1,312:$Vp1,317:$Vq1,419:190,420:$Vr1,424:$Vs1},{2:$V1,3:1859,4:$V2,5:$V3},{78:[1,1860]},{74:$V26,78:[1,1861]},{374:[1,1862]},{2:$V1,3:1863,4:$V2,5:$V3,132:[1,1864]},{74:$V35,78:[1,1865]},o($VD3,[2,526]),o($VD3,[2,527]),o($V75,[2,714],{74:$VJ4}),o($V75,[2,716]),o($V36,[2,1103],{251:1866,766:[1,1867]}),o($V65,[2,79]),o($V65,[2,82]),o($VN4,[2,1055],{3:1821,101:1868,104:1869,2:$V1,4:$V2,5:$V3,76:$V06}),o($VD3,[2,518]),{2:$V1,3:244,4:$V2,5:$V3,199:1870},o($V65,[2,530]),o($V65,[2,531]),o($VD3,[2,525]),o($VT5,[2,1105],{252:1871,415:[1,1872]}),o($V36,[2,1104]),o($VN4,[2,75]),o($VN4,[2,1056]),o($V46,[2,1119],{375:1873,377:1874,77:[1,1875]}),o($VT5,[2,269]),o($VT5,[2,1106]),o($VD3,[2,521],{376:1876,378:1877,230:[1,1878]}),o($V46,[2,1120]),{2:$V1,3:1831,4:$V2,5:$V3,132:$V16,372:1879},o($VD3,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:$V26,78:[1,1883]},o($VD3,[2,522]),{335:[1,1884]},{380:[1,1885]},o($V46,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},o($VD3,[2,524])],
+defaultActions: {105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},
+parseError: function parseError(str, hash) {
+ if (hash.recoverable) {
+ this.trace(str);
+ } else {
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
+ }
+},
+parse: function parse(input) {
+ var self = this,
+ stack = [0],
+ tstack = [], // token stack
+ vstack = [null], // semantic value stack
+ lstack = [], // location stack
+ table = this.table,
+ yytext = '',
+ yylineno = 0,
+ yyleng = 0,
+ recovering = 0,
+ TERROR = 2,
+ EOF = 1;
+
+ var args = lstack.slice.call(arguments, 1);
+
+ //this.reductionCount = this.shiftCount = 0;
+
+ var lexer = Object.create(this.lexer);
+ var sharedState = { yy: {} };
+ // copy state
+ for (var k in this.yy) {
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
+ sharedState.yy[k] = this.yy[k];
+ }
+ }
+
+ lexer.setInput(input, sharedState.yy);
+ sharedState.yy.lexer = lexer;
+ sharedState.yy.parser = this;
+ if (typeof lexer.yylloc == 'undefined') {
+ lexer.yylloc = {};
+ }
+ var yyloc = lexer.yylloc;
+ lstack.push(yyloc);
+
+ var ranges = lexer.options && lexer.options.ranges;
+
+ if (typeof sharedState.yy.parseError === 'function') {
+ this.parseError = sharedState.yy.parseError;
+ } else {
+ this.parseError = Object.getPrototypeOf(this).parseError;
+ }
+
+ function popStack (n) {
+ stack.length = stack.length - 2 * n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+
+_token_stack:
+ var lex = function () {
+ var token;
+ token = lexer.lex() || EOF;
+ // if token isn't its numeric value, convert
+ if (typeof token !== 'number') {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+
+ var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ // retreive state number from top of stack
+ state = stack[stack.length - 1];
+
+ // use default actions if available
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == 'undefined') {
+ symbol = lex();
+ }
+ // read action for current state and first input
+ action = table[state] && table[state][symbol];
+ }
+
+_handle_error:
+ // handle parse error
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
+ var error_rule_depth;
+ var errStr = '';
+
+ // Return the rule stack depth where the nearest error rule can be found.
+ // Return FALSE when no error recovery rule was found.
+ var locateNearestErrorRecoveryRule = function(state) {
+ var stack_probe = stack.length - 1;
+ var depth = 0;
+
+ // try to recover from error
+ for(;;) {
+ // check for error recovery rule in this state
+ if ((TERROR.toString()) in table[state]) {
+ return depth;
+ }
+ if (state === 0 || stack_probe < 2) {
+ return false; // No suitable error recovery rule available.
+ }
+ stack_probe -= 2; // popStack(1): [symbol, action]
+ state = stack[stack_probe];
+ ++depth;
+ }
+ }
+
+ if (!recovering) {
+ // first see if there's any chance at hitting an error recovery rule:
+ error_rule_depth = locateNearestErrorRecoveryRule(state);
+
+ // Report error
+ expected = [];
+ for (p in table[state]) {
+ if (this.terminals_[p] && p > TERROR) {
+ expected.push("'"+this.terminals_[p]+"'");
+ }
+ }
+ if (lexer.showPosition) {
+ errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'";
+ } else {
+ errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
+ (symbol == EOF ? "end of input" :
+ ("'"+(this.terminals_[symbol] || symbol)+"'"));
+ }
+ this.parseError(errStr, {
+ text: lexer.match,
+ token: this.terminals_[symbol] || symbol,
+ line: lexer.yylineno,
+ loc: yyloc,
+ expected: expected,
+ recoverable: (error_rule_depth !== false)
+ });
+ } else if (preErrorSymbol !== EOF) {
+ error_rule_depth = locateNearestErrorRecoveryRule(state);
+ }
+
+ // just recovered from another error
+ if (recovering == 3) {
+ if (symbol === EOF || preErrorSymbol === EOF) {
+ throw new Error(errStr || 'Parsing halted while starting to recover from another error.');
+ }
+
+ // discard current lookahead and grab another
+ yyleng = lexer.yyleng;
+ yytext = lexer.yytext;
+ yylineno = lexer.yylineno;
+ yyloc = lexer.yylloc;
+ symbol = lex();
+ }
+
+ // try to recover from error
+ if (error_rule_depth === false) {
+ throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.');
+ }
+ popStack(error_rule_depth);
+
+ preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token
+ symbol = TERROR; // insert generic error symbol as new lookahead
+ state = stack[stack.length-1];
+ action = table[state] && table[state][TERROR];
+ recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
+ }
+
+ // this shouldn't happen, unless resolve defaults are off
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
+ }
+
+ switch (action[0]) {
+ case 1: // shift
+ //this.shiftCount++;
+
+ stack.push(symbol);
+ vstack.push(lexer.yytext);
+ lstack.push(lexer.yylloc);
+ stack.push(action[1]); // push state
+ symbol = null;
+ if (!preErrorSymbol) { // normal execution/no error
+ yyleng = lexer.yyleng;
+ yytext = lexer.yytext;
+ yylineno = lexer.yylineno;
+ yyloc = lexer.yylloc;
+ if (recovering > 0) {
+ recovering--;
+ }
+ } else {
+ // error just occurred, resume old lookahead f/ before error
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+
+ case 2:
+ // reduce
+ //this.reductionCount++;
+
+ len = this.productions_[action[1]][1];
+
+ // perform semantic action
+ yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
+ // default location, uses first token for firsts, last for lasts
+ yyval._$ = {
+ first_line: lstack[lstack.length-(len||1)].first_line,
+ last_line: lstack[lstack.length-1].last_line,
+ first_column: lstack[lstack.length-(len||1)].first_column,
+ last_column: lstack[lstack.length-1].last_column
+ };
+ if (ranges) {
+ yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]];
+ }
+ r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
+
+ if (typeof r !== 'undefined') {
+ return r;
+ }
+
+ // pop off stack
+ if (len) {
+ stack = stack.slice(0,-1*len*2);
+ vstack = vstack.slice(0, -1*len);
+ lstack = lstack.slice(0, -1*len);
+ }
+
+ stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ // goto new state = table[STATE][NONTERMINAL]
+ newState = table[stack[stack.length-2]][stack[stack.length-1]];
+ stack.push(newState);
+ break;
+
+ case 3:
+ // accept
+ return true;
+ }
+
+ }
+
+ return true;
+}};
+
+// from https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
+// JSON.stringify([].slice.call(document.querySelectorAll('tr')).filter(x => x.children.length == 5 && x.children[2].innerText == 'reserved').map(x => x.children[0].innerText))
+
+var nonReserved = ["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"]
+
+parser.parseError = function(str, hash) {
+ if (hash.expected && hash.expected.indexOf("'LITERAL'") > -1 && /[a-zA-Z_][a-zA-Z_0-9]*/.test(hash.token) && nonReserved.indexOf(hash.token) > -1) {
+ return
+ }
+ throw new SyntaxError(str)
+}
+/* generated by jison-lex 0.3.4 */
+var lexer = (function(){
+var lexer = ({
+
+EOF:1,
+
+parseError:function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+
+// resets the lexer, sets new input
+setInput:function (input, yy) {
+ this.yy = yy || this.yy || {};
+ this._input = input;
+ this._more = this._backtrack = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = {
+ first_line: 1,
+ first_column: 0,
+ last_line: 1,
+ last_column: 0
+ };
+ if (this.options.ranges) {
+ this.yylloc.range = [0,0];
+ }
+ this.offset = 0;
+ return this;
+ },
+
+// consumes and returns one char from the input
+input:function () {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) {
+ this.yylloc.range[1]++;
+ }
+
+ this._input = this._input.slice(1);
+ return ch;
+ },
+
+// unshifts one char (or a string) into the input
+unput:function (ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
+ //this.yyleng -= len;
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+
+ if (lines.length - 1) {
+ this.yylineno -= lines.length - 1;
+ }
+ var r = this.yylloc.range;
+
+ this.yylloc = {
+ first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ?
+ (lines.length === oldLines.length ? this.yylloc.first_column : 0)
+ + oldLines[oldLines.length - lines.length].length - lines[0].length :
+ this.yylloc.first_column - len
+ };
+
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ this.yyleng = this.yytext.length;
+ return this;
+ },
+
+// When called from action, caches matched text and appends it on next action
+more:function () {
+ this._more = true;
+ return this;
+ },
+
+// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
+reject:function () {
+ if (this.options.backtrack_lexer) {
+ this._backtrack = true;
+ } else {
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+
+ }
+ return this;
+ },
+
+// retain first n characters of the match
+less:function (n) {
+ this.unput(this.match.slice(n));
+ },
+
+// displays already matched input, i.e. for error messages
+pastInput:function () {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+ },
+
+// displays upcoming input, i.e. for error messages
+upcomingInput:function () {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20-next.length);
+ }
+ return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
+ },
+
+// displays the character position where the lexing error occurred, i.e. for error messages
+showPosition:function () {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+
+// test the lexed token: return FALSE when not a match, otherwise return token
+test_match:function (match, indexed_rule) {
+ var token,
+ lines,
+ backup;
+
+ if (this.options.backtrack_lexer) {
+ // save context
+ backup = {
+ yylineno: this.yylineno,
+ yylloc: {
+ first_line: this.yylloc.first_line,
+ last_line: this.last_line,
+ first_column: this.yylloc.first_column,
+ last_column: this.yylloc.last_column
+ },
+ yytext: this.yytext,
+ match: this.match,
+ matches: this.matches,
+ matched: this.matched,
+ yyleng: this.yyleng,
+ offset: this.offset,
+ _more: this._more,
+ _input: this._input,
+ yy: this.yy,
+ conditionStack: this.conditionStack.slice(0),
+ done: this.done
+ };
+ if (this.options.ranges) {
+ backup.yylloc.range = this.yylloc.range.slice(0);
+ }
+ }
+
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno += lines.length;
+ }
+ this.yylloc = {
+ first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ?
+ lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
+ this.yylloc.last_column + match[0].length
+ };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._backtrack = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) {
+ this.done = false;
+ }
+ if (token) {
+ return token;
+ } else if (this._backtrack) {
+ // recover context
+ for (var k in backup) {
+ this[k] = backup[k];
+ }
+ return false; // rule action called reject() implying the next rule should be tested instead.
+ }
+ return false;
+ },
+
+// return next match in input
+next:function () {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) {
+ this.done = true;
+ }
+
+ var token,
+ match,
+ tempMatch,
+ index;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (this.options.backtrack_lexer) {
+ token = this.test_match(tempMatch, rules[i]);
+ if (token !== false) {
+ return token;
+ } else if (this._backtrack) {
+ match = false;
+ continue; // rule action called reject() implying a rule MISmatch.
+ } else {
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
+ return false;
+ }
+ } else if (!this.options.flex) {
+ break;
+ }
+ }
+ }
+ if (match) {
+ token = this.test_match(match, rules[index]);
+ if (token !== false) {
+ return token;
+ }
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
+ return false;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
+ text: "",
+ token: null,
+ line: this.yylineno
+ });
+ }
+ },
+
+// return next match that has a token
+lex:function lex() {
+ var r = this.next();
+ if (r) {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+
+// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
+begin:function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+
+// pop the previously active lexer condition state off the condition stack
+popState:function popState() {
+ var n = this.conditionStack.length - 1;
+ if (n > 0) {
+ return this.conditionStack.pop();
+ } else {
+ return this.conditionStack[0];
+ }
+ },
+
+// produce the lexer rule set which is active for the currently active lexer condition state
+_currentRules:function _currentRules() {
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ } else {
+ return this.conditions["INITIAL"].rules;
+ }
+ },
+
+// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
+topState:function topState(n) {
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
+ if (n >= 0) {
+ return this.conditionStack[n];
+ } else {
+ return "INITIAL";
+ }
+ },
+
+// alias for begin(condition)
+pushState:function pushState(condition) {
+ this.begin(condition);
+ },
+
+// return the number of states currently on the stack
+stateStackSize:function stateStackSize() {
+ return this.conditionStack.length;
+ },
+options: {"case-insensitive":true},
+performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+var YYSTATE=YY_START;
+switch($avoiding_name_collisions) {
+case 0:return 266
+break;
+case 1:return 302
+break;
+case 2:return 420
+break;
+case 3:return 299
+break;
+case 4:return 5
+break;
+case 5:return 5
+break;
+case 6:return 296
+break;
+case 7:return 296
+break;
+case 8:return 132
+break;
+case 9:return 132
+break;
+case 10:return /* its a COMMENT */
+break;
+case 11:/* skip whitespace */
+break;
+case 12:return 316
+break;
+case 13:return 319
+break;
+case 14:yy_.yytext = 'VALUE';return 89
+break;
+case 15:yy_.yytext = 'VALUE';return 189
+break;
+case 16:yy_.yytext = 'ROW';return 189
+break;
+case 17:yy_.yytext = 'COLUMN';return 189
+break;
+case 18:yy_.yytext = 'MATRIX';return 189
+break;
+case 19:yy_.yytext = 'INDEX';return 189
+break;
+case 20:yy_.yytext = 'RECORDSET';return 189
+break;
+case 21:yy_.yytext = 'TEXT';return 189
+break;
+case 22:yy_.yytext = 'SELECT';return 189
+break;
+case 23:return 520
+break;
+case 24:return 381
+break;
+case 25:return 402
+break;
+case 26:return 515
+break;
+case 27:return 287
+break;
+case 28:return 269
+break;
+case 29:return 269
+break;
+case 30:return 164
+break;
+case 31:return 400
+break;
+case 32:return 170
+break;
+case 33:return 229
+break;
+case 34:return 166
+break;
+case 35:return 207
+break;
+case 36:return 288
+break;
+case 37:return 76
+break;
+case 38:return 418
+break;
+case 39:return 242
+break;
+case 40:return 404
+break;
+case 41:return 356
+break;
+case 42:return 284
+break;
+case 43:return 514
+break;
+case 44:return 437
+break;
+case 45:return 330
+break;
+case 46:return 441
+break;
+case 47:return 331
+break;
+case 48:return 315
+break;
+case 49:return 119
+break;
+case 50:return 112
+break;
+case 51:return 315
+break;
+case 52:return 112
+break;
+case 53:return 315
+break;
+case 54:return 112
+break;
+case 55:return 315
+break;
+case 56:return 508
+break;
+case 57:return 303
+break;
+case 58:return 271
+break;
+case 59:return 368
+break;
+case 60:return 130
+break;
+case 61:return 'CLOSE'
+break;
+case 62:return 243
+break;
+case 63:return 190
+break;
+case 64:return 190
+break;
+case 65:return 434
+break;
+case 66:return 367
+break;
+case 67:return 470
+break;
+case 68:return 440
+break;
+case 69:return 273
+break;
+case 70:return 240
+break;
+case 71:return 281
+break;
+case 72:return 267
+break;
+case 73:return 206
+break;
+case 74:return 238
+break;
+case 75:return 265
+break;
+case 76:return 'CURSOR'
+break;
+case 77:return 405
+break;
+case 78:return 291
+break;
+case 79:return 292
+break;
+case 80:return 448
+break;
+case 81:return 343
+break;
+case 82:return 338
+break;
+case 83:return 'DELETED'
+break;
+case 84:return 242
+break;
+case 85:return 406
+break;
+case 86:return 185
+break;
+case 87:return 396
+break;
+case 88:return 447
+break;
+case 89:return 135
+break;
+case 90:return 306
+break;
+case 91:return 389
+break;
+case 92:return 310
+break;
+case 93:return 314
+break;
+case 94:return 169
+break;
+case 95:return 508
+break;
+case 96:return 508
+break;
+case 97:return 298
+break;
+case 98:return 14
+break;
+case 99:return 295
+break;
+case 100:return 249
+break;
+case 101:return 285
+break;
+case 102:return 95
+break;
+case 103:return 373
+break;
+case 104:return 183
+break;
+case 105:return 227
+break;
+case 106:return 268
+break;
+case 107:return 313
+break;
+case 108:return 602
+break;
+case 109:return 472
+break;
+case 110:return 232
+break;
+case 111:return 236
+break;
+case 112:return 239
+break;
+case 113:return 156
+break;
+case 114:return 356
+break;
+case 115:return 332
+break;
+case 116:return 99
+break;
+case 117:return 193
+break;
+case 118:return 212
+break;
+case 119:return 224
+break;
+case 120:return 516
+break;
+case 121:return 339
+break;
+case 122:return 213
+break;
+case 123:return 168
+break;
+case 124:return 293
+break;
+case 125:return 198
+break;
+case 126:return 223
+break;
+case 127:return 370
+break;
+case 128:return 286
+break;
+case 129:return 'LET'
+break;
+case 130:return 225
+break;
+case 131:return 112
+break;
+case 132:return 245
+break;
+case 133:return 460
+break;
+case 134:return 191
+break;
+case 135:return 283
+break;
+case 136:return 390
+break;
+case 137:return 282
+break;
+case 138:return 452
+break;
+case 139:return 169
+break;
+case 140:return 403
+break;
+case 141:return 222
+break;
+case 142:return 645
+break;
+case 143:return 270
+break;
+case 144:return 244
+break;
+case 145:return 380
+break;
+case 146:return 154
+break;
+case 147:return 297
+break;
+case 148:return 433
+break;
+case 149:return 230
+break;
+case 150:return 415
+break;
+case 151:return 129
+break;
+case 152:return 247
+break;
+case 153:return 'OPEN'
+break;
+case 154:return 416
+break;
+case 155:return 171
+break;
+case 156:return 118
+break;
+case 157:return 208
+break;
+case 158:return 276
+break;
+case 159:return 172
+break;
+case 160:return 279
+break;
+case 161:return 765
+break;
+case 162:return 93
+break;
+case 163:return 16
+break;
+case 164:return 369
+break;
+case 165:return 442
+break;
+case 166:return 678
+break;
+case 167:return 15
+break;
+case 168:return 414
+break;
+case 169:return 194
+break;
+case 170:return 'REDUCE'
+break;
+case 171:return 374
+break;
+case 172:return 311
+break;
+case 173:return 517
+break;
+case 174:return 682
+break;
+case 175:return 107
+break;
+case 176:return 401
+break;
+case 177:return 175
+break;
+case 178:return 290
+break;
+case 179:return 443
+break;
+case 180:return 687
+break;
+case 181:return 173
+break;
+case 182:return 173
+break;
+case 183:return 226
+break;
+case 184:return 436
+break;
+case 185:return 237
+break;
+case 186:return 150
+break;
+case 187:return 766
+break;
+case 188:return 405
+break;
+case 189:return 89
+break;
+case 190:return 228
+break;
+case 191:return 146
+break;
+case 192:return 146
+break;
+case 193:return 409
+break;
+case 194:return 334
+break;
+case 195:return 417
+break;
+case 196:return 'STRATEGY'
+break;
+case 197:return 'STORE'
+break;
+case 198:return 280
+break;
+case 199:return 353
+break;
+case 200:return 353
+break;
+case 201:return 463
+break;
+case 202:return 357
+break;
+case 203:return 357
+break;
+case 204:return 192
+break;
+case 205:return 309
+break;
+case 206:return 'TIMEOUT'
+break;
+case 207:return 148
+break;
+case 208:return 195
+break;
+case 209:return 435
+break;
+case 210:return 435
+break;
+case 211:return 509
+break;
+case 212:return 294
+break;
+case 213:return 451
+break;
+case 214:return 162
+break;
+case 215:return 187
+break;
+case 216:return 98
+break;
+case 217:return 335
+break;
+case 218:return 408
+break;
+case 219:return 231
+break;
+case 220:return 149
+break;
+case 221:return 344
+break;
+case 222:return 134
+break;
+case 223:return 410
+break;
+case 224:return 308
+break;
+case 225:return 128
+break;
+case 226:return 439
+break;
+case 227:return 72
+break;
+case 228:return 435 /* Is this keyword required? */
+break;
+case 229:return 131
+break;
+case 230:return 131
+break;
+case 231:return 115
+break;
+case 232:return 137
+break;
+case 233:return 179
+break;
+case 234:return 317
+break;
+case 235:return 180
+break;
+case 236:return 133
+break;
+case 237:return 138
+break;
+case 238:return 326
+break;
+case 239:return 323
+break;
+case 240:return 325
+break;
+case 241:return 322
+break;
+case 242:return 320
+break;
+case 243:return 318
+break;
+case 244:return 319
+break;
+case 245:return 142
+break;
+case 246:return 141
+break;
+case 247:return 139
+break;
+case 248:return 321
+break;
+case 249:return 324
+break;
+case 250:return 140
+break;
+case 251:return 124
+break;
+case 252:return 324
+break;
+case 253:return 77
+break;
+case 254:return 78
+break;
+case 255:return 145
+break;
+case 256:return 424
+break;
+case 257:return 426
+break;
+case 258:return 300
+break;
+case 259:return 505
+break;
+case 260:return 507
+break;
+case 261:return 122
+break;
+case 262:return 116
+break;
+case 263:return 74
+break;
+case 264:return 333
+break;
+case 265:return 152
+break;
+case 266:return 764
+break;
+case 267:return 143
+break;
+case 268:return 181
+break;
+case 269:return 136
+break;
+case 270:return 123
+break;
+case 271:return 312
+break;
+case 272:return 4
+break;
+case 273:return 10
+break;
+case 274:return 'INVALID'
+break;
+}
+},
+rules: [/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],
+conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],"inclusive":true}}
+});
+return lexer;
+})();
+parser.lexer = lexer;
+function Parser () {
+ this.yy = {};
+}
+Parser.prototype = parser;parser.Parser = Parser;
+return new Parser;
+})();
+
+if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
+exports.parser = alasqlparser;
+exports.Parser = alasqlparser.Parser;
+exports.parse = function () { return alasqlparser.parse.apply(alasqlparser, arguments); };
+exports.main = function commonjsMain(args) {
+ if (!args[1]) {
+ console.log('Usage: '+args[0]+' FILE');
+ process.exit(1);
+ }
+ var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
+ return exports.parser.parse(source);
+};
+if (typeof module !== 'undefined' && require.main === module) {
+ exports.main(process.argv.slice(1));
+}
+}
+
+/**
+ 12prettyflag.js - prettify
+ @todo move this functionality to plugin
+*/
+
+/**
+ Pretty flag - nice HTML output or standard text without any tags
+ @type {boolean}
+*/
+
+alasql.prettyflag = false;
+
+/**
+ Pretty output of SQL functions
+ @function
+ @param {string} sql SQL statement
+ @param {boolean} flag value
+ @return {string} HTML or text string with pretty output
+*/
+
+alasql.pretty = function(sql, flag) {
+ var pf = alasql.prettyflag;
+ alasql.prettyflag = !flag;
+ var s = alasql.parse(sql).toString();
+ alasql.prettyflag = pf;
+ return s;
+};
+
+/*jshint unused:false*/
+/*
+ Utilities for Alasql.js
+
+ @todo Review the list of utilities
+ @todo Find more effective utilities
+*/
+
+/**
+ Alasql utility functions
+ @type {object}
+ */
+var utils = (alasql.utils = {});
+
+/**
+ Convert NaN to undefined
+ @function
+ @param {string} s JavaScript string to be modified
+ @return {string} Covered expression
+
+ @example
+
+ 123 => 123
+ undefined => undefined
+ NaN => undefined
+
+ */
+function n2u(s) {
+ return '(y=' + s + ',y===y?y:undefined)';
+}
+
+/**
+ Return undefined if s undefined
+ @param {string} s JavaScript string to be modified
+ @return {string} Covered expression
+
+ @example
+
+ 123,a => a
+ undefined,a => undefined
+ NaN,a => undefined
+
+ */
+function und(s, r) {
+ return '(y=' + s + ',typeof y=="undefined"?undefined:' + r + ')';
+}
+
+/**
+ Return always true. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()
+ @function
+ @return {boolean} Always true
+ */
+function returnTrue() {
+ return true;
+}
+
+/**
+ Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn()
+ @function
+ @return {undefined} Always undefined
+ */
+function returnUndefined() {}
+
+/**
+ Escape string
+ @function
+ @param {string} s Source string
+ @return {string} Escaped string
+ @example
+
+ Pit\er's => Pit\\er\'s
+
+ */
+// based on joliss/js-string-escape
+var escapeq = (utils.escapeq = function(s) {
+
+ return ('' + s).replace(/["'\\\n\r\u2028\u2029]/g, function(character) {
+ // Escape all characters not included in SingleStringCharacters and
+ // DoubleStringCharacters on
+ // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
+ switch (character) {
+ case '"':
+ case "'":
+ case '\\':
+ return '\\' + character;
+ // Four possible LineTerminator characters need to be escaped:
+ case '\n':
+ return '\\n';
+ case '\r':
+ return '\\r';
+ case '\u2028':
+ return '\\u2028';
+ case '\u2029':
+ return '\\u2029';
+ }
+ });
+});
+
+/**
+ Double quotes for SQL statements
+ @param {string} s Source string
+ @return {string} Escaped string
+
+ @example
+
+ Piter's => Piter''s
+
+ */
+var escapeqq = (utils.undoubleq = function(s) {
+ return s.replace(/(\')/g, "''");
+});
+
+/**
+ Replace double quotes with single quote
+ @param {string} s Source string
+ @return {string} Replaced string
+ @example
+
+ Piter''s => Piter's
+
+ */
+var doubleq = (utils.doubleq = function(s) {
+ return s.replace(/(\'\')/g, "\\'");
+});
+
+/**
+ Replace sigle quote to escaped single quote
+ @param {string} s Source string
+ @return {string} Replaced string
+
+ @todo Chack this functions
+
+ */
+var doubleqq = (utils.doubleqq = function(s) {
+ return s.replace(/\'/g, "'");
+});
+
+/**
+ Cut BOM first character for UTF-8 files (for merging two files)
+ @param {string} s Source string
+ @return {string} Replaced string
+ */
+
+var cutbom = function(s) {
+ if (s[0] === String.fromCharCode(65279)) {
+ s = s.substr(1);
+ }
+ return s;
+};
+
+/**
+ Get the global scope
+ Inspired by System.global
+ @return {object} The global scope
+ */
+utils.global = (function() {
+ if (typeof self !== 'undefined') {
+ return self;
+ }
+ if (typeof window !== 'undefined') {
+ return window;
+ }
+ if (typeof global !== 'undefined') {
+ return global;
+ }
+ return Function('return this')();
+})();
+
+/**
+ Find out if a function is native to the enviroment
+ @param {function} Function to check
+ @return {boolean} True if function is native
+ */
+var isNativeFunction = (utils.isNativeFunction = function(fn) {
+ return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]');
+});
+
+/**
+ Find out if code is running in a web worker enviroment
+ @return {boolean} True if code is running in a web worker enviroment
+ */
+utils.isWebWorker = (function() {
+ try {
+ var importScripts = utils.global.importScripts;
+ return utils.isNativeFunction(importScripts);
+ } catch (e) {
+ return false;
+ }
+})();
+
+/**
+ Find out if code is running in a node enviroment
+ @return {boolean} True if code is running in a node enviroment
+ */
+utils.isNode = (function() {
+ try {
+ return utils.isNativeFunction(utils.global.process.reallyExit);
+ } catch (e) {
+ return false;
+ }
+})();
+
+/**
+ Find out if code is running in a browser enviroment
+ @return {boolean} True if code is running in a browser enviroment
+ */
+utils.isBrowser = (function() {
+ try {
+ return utils.isNativeFunction(utils.global.location.reload);
+ } catch (e) {
+ return false;
+ }
+})();
+
+/**
+ Find out if code is running in a browser with a browserify setup
+ @return {boolean} True if code is running in a browser with a browserify setup
+ */
+utils.isBrowserify = (function() {
+ return utils.isBrowser && typeof process !== 'undefined' && process.browser;
+})();
+
+/**
+ Find out if code is running in a browser with a requireJS setup
+ @return {boolean} True if code is running in a browser with a requireJS setup
+ */
+utils.isRequireJS = (function() {
+ return (
+ utils.isBrowser && typeof require === 'function' && typeof require.specified === 'function'
+ );
+})();
+
+/**
+ Find out if code is running with Meteor in the enviroment
+ @return {boolean} True if code is running with Meteor in the enviroment
+
+ @todo Find out if this is the best way to do this
+ */
+utils.isMeteor = (function() {
+ return typeof Meteor !== 'undefined' && Meteor.release;
+})();
+
+/**
+ Find out if code is running on a Meteor client
+ @return {boolean} True if code is running on a Meteor client
+ */
+utils.isMeteorClient = utils.isMeteorClient = (function() {
+ return utils.isMeteor && Meteor.isClient;
+})();
+
+/**
+ Find out if code is running on a Meteor server
+ @return {boolean} True if code is running on a Meteor server
+ */
+utils.isMeteorServer = (function() {
+ return utils.isMeteor && Meteor.isServer;
+})();
+
+/**
+ Find out code is running in a cordovar enviroment
+ @return {boolean} True if code is running in a web worker enviroment
+
+ @todo Find out if this is the best way to do this
+ */
+utils.isCordova = (function() {
+ return typeof cordova === 'object';
+})();
+
+utils.isReactNative = (function() {
+ var isReact = false;
+ /*not-for-browser/*
+ try {
+ if (typeof require('react-native') === 'object') {
+ isReact = true;
+ }
+ } catch (e) {
+ void 0;
+ }
+ //*/
+ return isReact;
+})();
+
+utils.hasIndexedDB = (function() {
+ return !!utils.global.indexedDB;
+})();
+
+utils.isArray = function(obj) {
+ return '[object Array]' === Object.prototype.toString.call(obj);
+};
+/**
+ Load text file from anywhere
+ @param {string|object} path File path or HTML event
+ @param {boolean} asy True - async call, false - sync call
+ @param {function} success Success function
+ @param {function} error Error function
+ @return {string} Read data
+
+ @todo Define Event type
+ @todo Smaller if-else structures.
+ */
+var loadFile = (utils.loadFile = function(path, asy, success, error) {
+ var data, fs;
+ if (utils.isNode || utils.isMeteorServer) {
+ /*not-for-browser/*
+ fs = require('fs');
+
+ // If path is empty, than read data from stdin (for Node)
+ if (typeof path === 'undefined') {
+ var buff = '';
+ process.stdin.setEncoding('utf8');
+ process.stdin.on('readable', function() {
+ var chunk = process.stdin.read();
+ if (chunk !== null) {
+ buff += chunk.toString();
+ }
+ });
+ process.stdin.on('end', function() {
+ success(cutbom(buff));
+ });
+ } else {
+ if (/^[a-z]+:\/\//i.test(path)) {
+ var request = require('request');
+ request(path, function(err, response, body) {
+ if (err) {
+ return error(err, null);
+ }
+ success(cutbom(body.toString()));
+ });
+ } else {
+ //If async callthen call async
+ if (asy) {
+ fs.readFile(path, function(err, data) {
+ if (err) {
+ return error(err, null);
+ }
+ success(cutbom(data.toString()));
+ });
+ } else {
+ // Call sync version
+ try {
+ data = fs.readFileSync(path);
+ } catch (e) {
+ return error(err, null);
+ }
+ success(cutbom(data.toString()));
+ }
+ }
+ }
+ } else if (utils.isReactNative) {
+ // If ReactNative
+ var RNFS = require('react-native-fs');
+ RNFS.readFile(path, 'utf8')
+ .then(function(contents) {
+ success(cutbom(contents));
+ })["catch"](function(err) {
+ return error(err, null);
+ });
+ //*/
+ } else if (utils.isCordova) {
+ /* If Cordova */
+ utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
+ fileSystem.root.getFile(path, {create: false}, function(fileEntry) {
+ fileEntry.file(function(file) {
+ var fileReader = new FileReader();
+ fileReader.onloadend = function(e) {
+ success(cutbom(this.result));
+ };
+ fileReader.readAsText(file);
+ });
+ });
+ });
+
+ /** @todo Check eliminated code below */
+
+ } else {
+ /* For string */
+ if (typeof path === 'string') {
+ // For browser read from tag
+ /*
+ SELECT * FROM TXT('#one') -- read data from HTML element with id="one"
+ */
+ if (path.substr(0, 1) === '#' && typeof document !== 'undefined') {
+ data = document.querySelector(path).textContent;
+ success(data);
+ } else {
+ /*
+ Simply read file from HTTP request, like:
+ SELECT * FROM TXT('http://alasql.org/README.md');
+ */
+ var xhr = new XMLHttpRequest();
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === 4) {
+ if (xhr.status === 200) {
+ if (success) {
+ success(cutbom(xhr.responseText));
+ }
+ } else if (error) {
+ return error(xhr);
+ }
+ // Todo: else...?
+ }
+ };
+ xhr.open('GET', path, asy); // Async
+ xhr.responseType = 'text';
+ xhr.send();
+ }
+ } else if (path instanceof Event) {
+ /*
+ For browser read from files input element
+
+
+ */
+ /** @type {array} List of files from element */
+ var files = path.target.files;
+ /** type {object} */
+ var reader = new FileReader();
+ /** type {string} */
+ var name = files[0].name;
+ reader.onload = function(e) {
+ var data = e.target.result;
+ success(cutbom(data));
+ };
+ reader.readAsText(files[0]);
+ }
+ }
+});
+
+/**
+ @function Load binary file from anywhere
+ @param {string} path File path
+ @param {boolean} asy True - async call, false - sync call
+ @param {function} success Success function
+ @param {function} error Error function
+ @return 1 for Async, data - for sync version
+
+ @todo merge functionality from loadFile and LoadBinaryFile
+ */
+
+var loadBinaryFile = (utils.loadBinaryFile = function(path, asy, success, error) {
+ var fs;
+ if (utils.isNode || utils.isMeteorServer) {
+ /*not-for-browser/*
+ fs = require('fs');
+
+ if (/^[a-z]+:\/\//i.test(path)) {
+ var request = require('request');
+ request({url: path, encoding: null}, function(err, response, data) {
+ if (err) {
+ throw err;
+ }
+ var arr = [];
+ for (var i = 0; i < data.length; ++i) {
+ arr[i] = String.fromCharCode(data[i]);
+ }
+ success(arr.join(''));
+ });
+ } else {
+ if (asy) {
+ fs.readFile(path, function(err, data) {
+ if (err) {
+ throw err;
+ }
+ var arr = [];
+ for (var i = 0; i < data.length; ++i) {
+ arr[i] = String.fromCharCode(data[i]);
+ }
+ success(arr.join(''));
+ });
+ } else {
+ var data = fs.readFileSync(path);
+ var arr = [];
+ for (var i = 0; i < data.length; ++i) {
+ arr[i] = String.fromCharCode(data[i]);
+ }
+ success(arr.join(''));
+ }
+ }
+ } else if (utils.isReactNative) {
+ // If ReactNative
+ //var RNFS = require('react-native-fs');
+ var RNFetchBlob = require('react-native-fetch-blob')["default"];
+ var dirs = RNFetchBlob.fs.dirs;
+ //should use readStream instead if the file is large
+ RNFetchBlob.fs.readFile(path, 'base64').then(function(data) {
+ //RNFetchBlob.base64.decode(data) //need more test on excel
+ success(data);
+ });
+ //*/
+ } else {
+ if (typeof path === 'string') {
+ // For browser
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', path, asy); // Async
+ xhr.responseType = 'arraybuffer';
+ xhr.onload = function() {
+ var data = new Uint8Array(xhr.response);
+ var arr = [];
+ for (var i = 0; i < data.length; ++i) {
+ arr[i] = String.fromCharCode(data[i]);
+ }
+ success(arr.join(''));
+ };
+ // xhr.responseType = "blob";
+ xhr.send();
+ } else if (path instanceof Event) {
+
+ var files = path.target.files;
+ var reader = new FileReader();
+ var name = files[0].name;
+ reader.onload = function(e) {
+ var data = e.target.result;
+ success(data);
+ };
+ reader.readAsArrayBuffer(files[0]);
+ } else if (path instanceof Blob) {
+ success(path);
+ }
+ }
+});
+
+var removeFile = (utils.removeFile = function(path, cb) {
+ if (utils.isNode) {
+ /*not-for-browser/*
+ var fs = require('fs');
+ fs.remove(path, cb);
+ } else if (utils.isCordova) {
+ utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
+ fileSystem.root.getFile(
+ path,
+ {create: false},
+ function(fileEntry) {
+ fileEntry.remove(cb);
+ cb && cb(); // jshint ignore:line
+ },
+ function() {
+ cb && cb(); // jshint ignore:line
+ }
+ );
+ });
+ } else if (utils.isReactNative) {
+ // If ReactNative
+ var RNFS = require('react-native-fs');
+ RNFS.unlink(path)
+ .then(function() {
+ cb && cb();
+ })["catch"](function(err) {
+ throw err;
+ });
+ //*/
+ } else {
+ throw new Error('You can remove files only in Node.js and Apache Cordova');
+ }
+});
+
+// Todo: check if it makes sense to support cordova and Meteor server
+var deleteFile = (utils.deleteFile = function(path, cb) {
+ /*not-for-browser/*
+ if (utils.isNode) {
+ var fs = require('fs');
+ fs.unlink(path, cb);
+ } else if (utils.isReactNative) {
+ // If ReactNative
+ var RNFS = require('react-native-fs');
+ RNFS.unlink(path)
+ .then(function() {
+ cb && cb();
+ })["catch"](function(err) {
+ throw err;
+ });
+ }
+ //*/
+});
+
+utils.autoExtFilename = function(filename, ext, config) {
+ config = config || {};
+ if (
+ typeof filename !== 'string' ||
+ filename.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) ||
+ config.autoExt === 0 ||
+ config.autoExt === false
+ ) {
+ return filename;
+ }
+ return filename + '.' + ext;
+};
+
+var fileExists = (utils.fileExists = function(path, cb) {
+ if (utils.isNode) {
+ /*not-for-browser/*
+ var fs = require('fs');
+ fs.exists(path, cb);
+ } else if (utils.isCordova) {
+ utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
+ fileSystem.root.getFile(
+ path,
+ {create: false},
+ function(fileEntry) {
+ cb(true);
+ },
+ function() {
+ cb(false);
+ }
+ );
+ });
+ } else if (utils.isReactNative) {
+ // If ReactNative
+ var RNFS = require('react-native-fs');
+ RNFS.exists(path)
+ .then(function(yes) {
+ cb && cb(yes);
+ })["catch"](function(err) {
+ throw err;
+ });
+ //*/
+ } else {
+ // TODO Cordova, etc.
+ throw new Error('You can use exists() only in Node.js or Apach Cordova');
+ }
+});
+
+/**
+ Save text file from anywhere
+ @param {string} path File path
+ @param {array} data Data object
+ @param {function} cb Callback
+ @param {object=} opts
+ */
+
+var saveFile = (utils.saveFile = function(path, data, cb, opts) {
+ var res = 1;
+ if (path === undefined) {
+ //
+ // Return data into result variable
+ // like: alasql('SELECT * INTO TXT() FROM ?',[data]);
+ //
+ res = data;
+ if (cb) {
+ res = cb(res);
+ }
+ } else {
+ if (utils.isNode) {
+ /*not-for-browser/*
+ var fs = require('fs');
+ data = fs.writeFileSync(path, data);
+ if (cb) {
+ res = cb(res);
+ }
+ } else if (utils.isReactNative) {
+ var RNFS = require('react-native-fs');
+ RNFS.writeFile(path, data)
+ .then(function(success) {
+ //, 'utf8'
+ if (cb) res = cb(res);
+ })["catch"](function(err) {
+ console.error(err.message);
+ });
+ } else if (utils.isCordova) {
+ utils.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
+ // alasql.utils.removeFile(path,function(){
+ fileSystem.root.getFile(path, {create: true}, function(fileEntry) {
+ fileEntry.createWriter(function(fileWriter) {
+ fileWriter.onwriteend = function() {
+ if (cb) {
+ res = cb(res);
+ }
+ };
+ fileWriter.write(data);
+ });
+ });
+ });
+ //*/
+
+ // });
+ // });
+ // });
+ } else {
+ if (isIE() === 9) {
+ // Solution was taken from
+ // http://megatuto.com/formation-JAVASCRIPT.php?JAVASCRIPT_Example=Javascript+Save+CSV+file+in+IE+8/IE+9+without+using+window.open()+Categorie+javascript+internet-explorer-8&category=&article=7993
+ // var URI = 'data:text/plain;charset=utf-8,';
+
+ // Prepare data
+ var ndata = data.replace(/\r\n/g, 'A;D;');
+ ndata = ndata.replace(/\n/g, 'D;');
+ ndata = ndata.replace(/\t/g, ' ');
+ var testlink = utils.global.open('about:blank', '_blank');
+ testlink.document.write(ndata); //fileData has contents for the file
+ testlink.document.close();
+ testlink.document.execCommand('SaveAs', false, path);
+ testlink.close();
+ } else {
+ var opt = {
+ disableAutoBom: false,
+ };
+ alasql.utils.extend(opt, opts);
+ var blob = new Blob([data], {type: 'text/plain;charset=utf-8'});
+ saveAs(blob, path, opt.disableAutoBom);
+ if (cb) {
+ res = cb(res);
+ }
+ }
+ }
+ }
+
+ return res;
+});
+
+/**
+ @function Is this IE9
+ @return {boolean} True for IE9 and false for other browsers
+
+ For IE9 compatibility issues
+ */
+function isIE() {
+ var myNav = navigator.userAgent.toLowerCase();
+ return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false;
+}
+
+/**
+ @function Hash a string to signed integer
+ @param {string} source string
+ @return {integer} hash number
+ */
+
+// FNV-1a inspired hashing
+var hash = (utils.hash = function(str) {
+ var hash = 0x811c9dc5,
+ i = str.length;
+ while (i) {
+ hash ^= str.charCodeAt(--i);
+ hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
+ }
+ return hash;
+});
+
+/**
+ Union arrays
+ @function
+ @param {array} a
+ @param {array} b
+ @return {array}
+ */
+var arrayUnion = (utils.arrayUnion = function(a, b) {
+ var r = b.slice(0);
+ a.forEach(function(i) {
+ if (r.indexOf(i) < 0) {
+ r.push(i);
+ }
+ });
+ return r;
+});
+
+/**
+ Array Difference
+ */
+var arrayDiff = (utils.arrayDiff = function(a, b) {
+ return a.filter(function(i) {
+ return b.indexOf(i) < 0;
+ });
+});
+
+/**
+ Arrays deep intersect (with records)
+ */
+var arrayIntersect = (utils.arrayIntersect = function(a, b) {
+ var r = [];
+ a.forEach(function(ai) {
+ var found = false;
+
+ b.forEach(function(bi) {
+ found = found || ai === bi;
+ });
+
+ if (found) {
+ r.push(ai);
+ }
+ });
+ return r;
+});
+
+/**
+ Arrays deep union (with records)
+ */
+var arrayUnionDeep = (utils.arrayUnionDeep = function(a, b) {
+ var r = b.slice(0);
+ a.forEach(function(ai) {
+ var found = false;
+
+ r.forEach(function(ri) {
+ // found = found || equalDeep(ai, ri, true);
+ found = found || deepEqual(ai, ri);
+ });
+
+ if (!found) {
+ r.push(ai);
+ }
+ });
+ return r;
+});
+
+/**
+ Arrays deep union (with records)
+ */
+var arrayExceptDeep = (utils.arrayExceptDeep = function(a, b) {
+ var r = [];
+ a.forEach(function(ai) {
+ var found = false;
+
+ b.forEach(function(bi) {
+ // found = found || equalDeep(ai, bi, true);
+ found = found || deepEqual(ai, bi);
+ });
+
+ if (!found) {
+ r.push(ai);
+ }
+ });
+ return r;
+});
+
+/**
+ Arrays deep intersect (with records)
+ */
+var arrayIntersectDeep = (utils.arrayIntersectDeep = function(a, b) {
+ var r = [];
+ a.forEach(function(ai) {
+ var found = false;
+
+ b.forEach(function(bi) {
+ // found = found || equalDeep(ai, bi, true);
+ found = found || deepEqual(ai, bi, true);
+ });
+
+ if (found) {
+ r.push(ai);
+ }
+ });
+ return r;
+});
+
+/**
+ Deep clone objects
+ */
+var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
+ if (null === obj || typeof obj !== 'object') {
+ return obj;
+ }
+
+ if (obj instanceof Date) {
+ return new Date(obj);
+ }
+
+ var temp = obj.constructor(); // changed
+
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ temp[key] = cloneDeep(obj[key]);
+ }
+ }
+ return temp;
+});
+
+/**
+ Check equality of objects
+ */
+
+/**
+ Compare two objects in deep
+ */
+var deepEqual = (utils.deepEqual = function(x, y) {
+ if (x === y) {
+ return true;
+ }
+
+ if (typeof x === 'object' && null !== x && (typeof y === 'object' && null !== y)) {
+ if (Object.keys(x).length !== Object.keys(y).length) {
+ return false;
+ }
+ for (var prop in x) {
+ if (!deepEqual(x[prop], y[prop])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ return false;
+});
+/**
+ Array with distinct records
+ @param {array} data
+ @return {array}
+ */
+var distinctArray = (utils.distinctArray = function(data) {
+ var uniq = {};
+ // TODO: Speedup, because Object.keys is slow
+ for (var i = 0, ilen = data.length; i < ilen; i++) {
+ var uix;
+ if (typeof data[i] === 'object') {
+ uix = Object.keys(data[i])
+ .sort()
+ .map(function(k) {
+ return k + '`' + data[i][k];
+ })
+ .join('`');
+ } else {
+ uix = data[i];
+ }
+ uniq[uix] = data[i];
+ }
+ var res = [];
+ for (var key in uniq) {
+ res.push(uniq[key]);
+ }
+ return res;
+});
+
+/**
+ Extend object a with properties of b
+ @function
+ @param {object} a
+ @param {object} b
+ @return {object}
+ */
+var extend = (utils.extend = function extend(a, b) {
+ a = a || {};
+ for (var key in b) {
+ if (b.hasOwnProperty(key)) {
+ a[key] = b[key];
+ }
+ }
+ return a;
+});
+
+/**
+ Flat array by first row
+ */
+var flatArray = (utils.flatArray = function(a) {
+
+ if (!a || 0 === a.length) {
+ return [];
+ }
+
+ // For recordsets
+ if (typeof a === 'object' && a instanceof alasql.Recordset) {
+ return a.data.map(function(ai) {
+ return ai[a.columns[0].columnid];
+ });
+ }
+ // Else for other arrays
+ var key = Object.keys(a[0])[0];
+ if (key === undefined) {
+ return [];
+ }
+ return a.map(function(ai) {
+ return ai[key];
+ });
+});
+
+/**
+ Convert array of objects to array of arrays
+ */
+var arrayOfArrays = (utils.arrayOfArrays = function(a) {
+ return a.map(function(aa) {
+ var ar = [];
+ for (var key in aa) {
+ ar.push(aa[key]);
+ }
+ return ar;
+ });
+});
+
+if (!Array.isArray) {
+ Array.isArray = function(arg) {
+ return Object.prototype.toString.call(arg) === '[object Array]';
+ };
+}
+
+/**
+ Excel:convert number to Excel column, like 1 => 'A'
+ @param {integer} i Column number, starting with 0
+ @return {string} Column name, starting with 'A'
+ */
+
+var xlsnc = (utils.xlsnc = function(i) {
+ var addr = String.fromCharCode(65 + (i % 26));
+ if (i >= 26) {
+ i = ((i / 26) | 0) - 1;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
+ if (i > 26) {
+ i = ((i / 26) | 0) - 1;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
+ }
+ }
+ return addr;
+});
+
+/**
+ Excel:conver Excel column name to number
+ @param {string} s Column number, like 'A' or 'BE'
+ @return {string} Column name, starting with 0
+ */
+var xlscn = (utils.xlscn = function(s) {
+ var n = s.charCodeAt(0) - 65;
+ if (s.length > 1) {
+ n = (n + 1) * 26 + s.charCodeAt(1) - 65;
+
+ if (s.length > 2) {
+ n = (n + 1) * 26 + s.charCodeAt(2) - 65;
+ }
+ }
+ return n;
+});
+
+var domEmptyChildren = (utils.domEmptyChildren = function(container) {
+ var len = container.childNodes.length;
+ while (len--) {
+ container.removeChild(container.lastChild);
+ }
+});
+
+/**
+ SQL LIKE emulation
+ @parameter {string} pattern Search pattern
+ @parameter {string} value Searched value
+ @parameter {string} escape Escape character (optional)
+ @return {boolean} If value LIKE pattern ESCAPE escape
+ */
+
+var like = (utils.like = function(pattern, value, escape) {
+ // Verify escape character
+ if (!escape) escape = '';
+
+ var i = 0;
+ var s = '^';
+
+ while (i < pattern.length) {
+ var c = pattern[i],
+ c1 = '';
+ if (i < pattern.length - 1) c1 = pattern[i + 1];
+
+ if (c === escape) {
+ s += '\\' + c1;
+ i++;
+ } else if (c === '[' && c1 === '^') {
+ s += '[^';
+ i++;
+ } else if (c === '[' || c === ']') {
+ s += c;
+ } else if (c === '%') {
+ s += '.*';
+ } else if (c === '_') {
+ s += '.';
+ } else if ('/.*+?|(){}'.indexOf(c) > -1) {
+ s += '\\' + c;
+ } else {
+ s += c;
+ }
+ i++;
+ }
+
+ s += '$';
+ // if(value == undefined) return false;
+
+ return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1;
+});
+
+utils.glob = function(value, pattern) {
+ var i = 0;
+ var s = '^';
+
+ while (i < pattern.length) {
+ var c = pattern[i],
+ c1 = '';
+ if (i < pattern.length - 1) c1 = pattern[i + 1];
+
+ if (c === '[' && c1 === '^') {
+ s += '[^';
+ i++;
+ } else if (c === '[' || c === ']') {
+ s += c;
+ } else if (c === '*') {
+ s += '.*';
+ } else if (c === '?') {
+ s += '.';
+ } else if ('/.*+?|(){}'.indexOf(c) > -1) {
+ s += '\\' + c;
+ } else {
+ s += c;
+ }
+ i++;
+ }
+
+ s += '$';
+ return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1;
+};
+
+/**
+ Get path of alasql.js
+ @todo Rewrite and simplify the code. Review, is this function is required separately
+ */
+utils.findAlaSQLPath = function() {
+ /** type {string} Path to alasql library and plugins */
+
+ if (utils.isWebWorker) {
+ return '';
+ /** @todo Check how to get path in worker */
+ } else if (utils.isMeteorClient) {
+ return '/packages/dist/';
+ } else if (utils.isMeteorServer) {
+ return 'assets/packages/dist/';
+ } else if (utils.isNode) {
+ return __dirname;
+ } else if (utils.isBrowser) {
+ var sc = document.getElementsByTagName('script');
+
+ for (var i = 0; i < sc.length; i++) {
+ if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
+ return sc[i].src.substr(0, sc[i].src.length - 16);
+ } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
+ return sc[i].src.substr(0, sc[i].src.length - 20);
+ } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
+ return sc[i].src.substr(0, sc[i].src.length - 9);
+ } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
+ return sc[i].src.substr(0, sc[i].src.length - 13);
+ }
+ }
+ }
+ return '';
+};
+
+var getXLSX = function() {
+ var XLSX = alasql["private"].externalXlsxLib;
+
+ if (XLSX) {
+ return XLSX;
+ }
+
+ if (utils.isNode || utils.isBrowserify || utils.isMeteorServer) {
+ /*not-for-browser/*
+ XLSX = require('xlsx') || null;
+ //*/
+ } else {
+ XLSX = utils.global.XLSX || null;
+ }
+
+ if (null === XLSX) {
+ throw new Error('Please include the xlsx.js library');
+ }
+
+ return XLSX;
+};
+
+// set AlaSQl path
+alasql.path = alasql.utils.findAlaSQLPath();
+
+/**
+ Strip all comments.
+ @function
+ @param {string} str
+ @return {string}
+ Based om the https://github.com/lehni/uncomment.js/blob/master/uncomment.js
+ I just replaced JavaScript's '//' to SQL's '--' and remove other stuff
+
+ @todo Fixed [aaa/*bbb] for column names
+ @todo Bug if -- comments in the last line
+ @todo Check if it possible to model it with Jison parser
+ @todo Remove unused code
+ */
+
+/* global alasql */
+
+alasql.utils.uncomment = function(str) {
+ // Add some padding so we can always look ahead and behind by two chars
+ str = ('__' + str + '__').split('');
+ var quote = false,
+ quoteSign,
+ // regularExpression = false,
+ // characterClass = false,
+ blockComment = false,
+ lineComment = false;
+ // preserveComment = false;
+
+ for (var i = 0, l = str.length; i < l; i++) {
+
+ // When checking for quote escaping, we also need to check that the
+ // escape sign itself is not escaped, as otherwise '\\' would cause
+ // the wrong impression of an unclosed string:
+ var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\';
+
+ if (quote) {
+ if (str[i] === quoteSign && unescaped) {
+ quote = false;
+ }
+
+ } else if (blockComment) {
+ // Is the block comment closing?
+ if (str[i] === '*' && str[i + 1] === '/') {
+ // if (!preserveComment)
+ str[i] = str[i + 1] = '';
+ blockComment /* = preserveComment*/ = false;
+ // Increase by 1 to skip closing '/', as it would be mistaken
+ // for a regexp otherwise
+ i++;
+ } else {
+ //if (!preserveComment) {
+ str[i] = '';
+ }
+ } else if (lineComment) {
+ // One-line comments end with the line-break
+ if (str[i + 1] === '\n' || str[i + 1] === '\r') {
+ lineComment = false;
+ }
+ str[i] = '';
+ } else {
+ if (str[i] === '"' || str[i] === "'") {
+ quote = true;
+ quoteSign = str[i];
+ } else if (str[i] === '[' && str[i - 1] !== '@') {
+ quote = true;
+ quoteSign = ']';
+ // } else if (str[i] === '-' && str[i + 1] === '-') {
+ // str[i] = '';
+ // lineComment = true;
+ } else if (str[i] === '/' && str[i + 1] === '*') {
+ // Do not filter out conditional comments /*@ ... */
+ // and comments marked as protected /*! ... */
+ // preserveComment = /[@!]/.test(str[i + 2]);
+ // if (!preserveComment)
+ str[i] = '';
+ blockComment = true;
+
+ }
+ }
+ }
+ // Remove padding again.
+ str = str.join('').slice(2, -2);
+
+ return str;
+};
+
+/**
+ Database class for Alasql.js
+*/
+
+// Initial parameters
+
+/**
+ Jison parser
+*/
+alasql.parser = alasqlparser;
+
+alasql.parser.parseError = function(str, hash) {
+ throw new Error('Have you used a reserved keyword without `escaping` it?\n' + str);
+};
+
+/**
+ Jison parser
+ @param {string} sql SQL statement
+ @return {object} AST (Abstract Syntax Tree)
+
+ @todo Create class AST
+ @todo Add other parsers
+
+ @example
+ alasql.parse = function(sql) {
+ // My own parser here
+ }
+ */
+alasql.parse = function(sql) {
+ return alasqlparser.parse(alasql.utils.uncomment(sql));
+};
+
+/**
+ List of engines of external databases
+ @type {object}
+ @todo Create collection type
+ */
+alasql.engines = {};
+
+/**
+ List of databases
+ @type {object}
+ */
+alasql.databases = {};
+
+/**
+ Number of databases
+ @type {number}
+*/
+alasql.databasenum = 0;
+
+/**
+ Alasql options object
+ */
+alasql.options = {};
+alasql.options.errorlog = false; // Log or throw error
+alasql.options.valueof = false; // Use valueof in orderfn
+alasql.options.dropifnotexists = false; // DROP database in any case
+alasql.options.datetimeformat = 'sql'; // How to handle DATE and DATETIME types
+// Another value is 'javascript'
+alasql.options.casesensitive = true; // Table and column names are case sensitive and converted to lower-case
+alasql.options.logtarget = 'output'; // target for log. Values: 'console', 'output', 'id' of html tag
+alasql.options.logprompt = true; // Print SQL at log
+
+alasql.options.progress = false; // Callback for async queries progress
+
+// Default modifier
+// values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX
+alasql.options.modifier = undefined;
+// How many rows to lookup to define columns
+alasql.options.columnlookup = 10;
+// Create vertex if not found
+alasql.options.autovertex = true;
+
+// Use dbo as current database (for partial T-SQL comaptibility)
+alasql.options.usedbo = true;
+
+// AUTOCOMMIT ON | OFF
+alasql.options.autocommit = true;
+
+// Use cache
+alasql.options.cache = true;
+
+// Compatibility flags
+alasql.options.tsql = true;
+
+alasql.options.mysql = true;
+
+alasql.options.postgres = true;
+
+alasql.options.oracle = true;
+
+alasql.options.sqlite = true;
+
+alasql.options.orientdb = true;
+
+// for SET NOCOUNT OFF
+alasql.options.nocount = false;
+
+// Check for NaN and convert it to undefined
+alasql.options.nan = false;
+
+alasql.options.joinstar = 'overwrite'; // Option for SELECT * FROM a,b
+
+//alasql.options.worker = false;
+
+// Variables
+alasql.vars = {};
+
+alasql.declares = {};
+
+alasql.prompthistory = [];
+
+alasql.plugins = {}; // If plugin already loaded
+
+alasql.from = {}; // FROM functions
+
+alasql.into = {}; // INTO functions
+
+alasql.fn = {};
+
+alasql.aggr = {};
+
+alasql.busy = 0;
+
+// Cache
+alasql.MAXSQLCACHESIZE = 10000;
+alasql.DEFAULTDATABASEID = 'alasql';
+
+/* WebWorker */
+alasql.lastid = 0;
+
+alasql.buffer = {};
+
+alasql["private"] = {
+ externalXlsxLib: null,
+};
+
+alasql.setXLSX = function(XLSX) {
+ alasql["private"].externalXlsxLib = XLSX;
+};
+
+/**
+ Select current database
+ @param {string} databaseid Selected database identificator
+ */
+alasql.use = function(databaseid) {
+ if (!databaseid) {
+ databaseid = alasql.DEFAULTDATABASEID;
+ }
+ if (alasql.useid === databaseid) {
+ return;
+ }
+ alasql.useid = databaseid;
+ var db = alasql.databases[alasql.useid];
+ alasql.tables = db.tables;
+ // alasql.fn = db.fn;
+ db.resetSqlCache();
+ if (alasql.options.usedbo) {
+ alasql.databases.dbo = db; // Operator???
+ }
+};
+
+alasql.autoval = function(tablename, colname, getNext, databaseid) {
+ var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid];
+
+ if (!db.tables[tablename]) {
+ throw new Error('Tablename not found: ' + tablename);
+ }
+
+ if (!db.tables[tablename].identities[colname]) {
+ throw new Error('Colname not found: ' + colname);
+ }
+
+ if (getNext) {
+ return db.tables[tablename].identities[colname].value || null;
+ }
+
+ return (
+ db.tables[tablename].identities[colname].value -
+ db.tables[tablename].identities[colname].step || null
+ );
+};
+
+/**
+ Run single SQL statement on current database
+ */
+alasql.exec = function(sql, params, cb, scope) {
+ // Avoid setting params if not needed even with callback
+ if (typeof params === 'function') {
+ scope = cb;
+ cb = params;
+ params = {};
+ }
+
+ delete alasql.error;
+ params = params || {};
+ if (alasql.options.errorlog) {
+ try {
+ return alasql.dexec(alasql.useid, sql, params, cb, scope);
+ } catch (err) {
+ alasql.error = err;
+ if (cb) {
+ cb(null, alasql.error);
+ }
+ }
+ } else {
+ return alasql.dexec(alasql.useid, sql, params, cb, scope);
+ }
+};
+
+/**
+ Run SQL statement on specific database
+ */
+alasql.dexec = function(databaseid, sql, params, cb, scope) {
+ var db = alasql.databases[databaseid];
+ // if(db.databaseid != databaseid) console.trace('got!');
+
+ var hh;
+ // Create hash
+ if (alasql.options.cache) {
+ hh = hash(sql);
+ var statement = db.sqlCache[hh];
+ // If database structure was not changed since last time return cache
+ if (statement && db.dbversion === statement.dbversion) {
+ return statement(params, cb);
+ }
+ }
+
+ // Create AST
+ var ast = alasql.parse(sql);
+ if (!ast.statements) {
+ return;
+ }
+ if (0 === ast.statements.length) {
+ return 0;
+ } else if (1 === ast.statements.length) {
+ if (ast.statements[0].compile) {
+ // Compile and Execute
+ var statement = ast.statements[0].compile(databaseid, params);
+ if (!statement) {
+ return;
+ }
+ statement.sql = sql;
+ statement.dbversion = db.dbversion;
+
+ if (alasql.options.cache) {
+ // Secure sqlCache size
+ if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
+ db.resetSqlCache();
+ }
+ db.sqlCacheSize++;
+ db.sqlCache[hh] = statement;
+ }
+ var res = (alasql.res = statement(params, cb, scope));
+ return res;
+ } else {
+
+ alasql.precompile(ast.statements[0], alasql.useid, params);
+ var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));
+ return res;
+ }
+ } else {
+ // Multiple statements
+ if (cb) {
+ alasql.adrun(databaseid, ast, params, cb, scope);
+ } else {
+ return alasql.drun(databaseid, ast, params, cb, scope);
+ }
+ }
+};
+
+/**
+ Run multiple statements and return array of results sync
+ */
+alasql.drun = function(databaseid, ast, params, cb, scope) {
+ var useid = alasql.useid;
+
+ if (useid !== databaseid) {
+ alasql.use(databaseid);
+ }
+
+ var res = [];
+ for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {
+ if (ast.statements[i]) {
+ if (ast.statements[i].compile) {
+ var statement = ast.statements[i].compile(alasql.useid);
+ res.push((alasql.res = statement(params, null, scope)));
+ } else {
+ alasql.precompile(ast.statements[i], alasql.useid, params);
+ res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));
+ }
+ }
+ }
+ if (useid !== databaseid) {
+ alasql.use(useid);
+ }
+
+ if (cb) {
+ cb(res);
+ }
+
+ alasql.res = res;
+
+ return res;
+};
+
+/**
+ Run multiple statements and return array of results async
+ */
+alasql.adrun = function(databaseid, ast, params, cb, scope) {
+ var idx = 0;
+ var noqueries = ast.statements.length;
+ if (alasql.options.progress !== false) {
+ alasql.options.progress(noqueries, idx++);
+ }
+
+ // alasql.busy++;
+ var useid = alasql.useid;
+ if (useid !== databaseid) {
+ alasql.use(databaseid);
+ }
+ var res = [];
+
+ function adrunone(data) {
+ if (data !== undefined) {
+ res.push(data);
+ }
+ var astatement = ast.statements.shift();
+ if (!astatement) {
+ if (useid !== databaseid) {
+ alasql.use(useid);
+ }
+ cb(res);
+ // alasql.busy--;
+ // if(alasql.busy<0) alasql.busy = 0;
+ } else {
+ if (astatement.compile) {
+ var statement = astatement.compile(alasql.useid);
+ statement(params, adrunone, scope);
+ if (alasql.options.progress !== false) {
+ alasql.options.progress(noqueries, idx++);
+ }
+ } else {
+ alasql.precompile(ast.statements[0], alasql.useid, params);
+ astatement.execute(alasql.useid, params, adrunone);
+ if (alasql.options.progress !== false) {
+ alasql.options.progress(noqueries, idx++);
+ }
+ }
+ }
+ }
+
+ adrunone(); /** @todo Check, why data is empty here */
+};
+
+/**
+ Compile statement to JavaScript function
+ @param {string} sql SQL statement
+ @param {string} databaseid Database identificator
+ @return {functions} Compiled statement functions
+*/
+alasql.compile = function(sql, databaseid) {
+ databaseid = databaseid || alasql.useid;
+
+ var ast = alasql.parse(sql); // Create AST
+
+ if (1 === ast.statements.length) {
+ var statement = ast.statements[0].compile(databaseid);
+ statement.promise = function(params) {
+ return new Promise(function(resolve, reject) {
+ statement(params, function(data, err) {
+ if (err) {
+ reject(err);
+ } else {
+ resolve(data);
+ }
+ });
+ });
+ };
+
+ return statement;
+
+ } else {
+ throw new Error('Cannot compile, because number of statements in SQL is not equal to 1');
+ }
+};
+
+//
+// Promises for AlaSQL
+//
+
+if (!utils.global.Promise) {
+ if (utils.isNode) {
+ /*not-for-browser/*
+ utils.global.Promise = require('es6-promise').Promise;
+ //*/
+ } else {
+ /*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license Licensed under MIT license
+ * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE
+ * @version 3.2.1
+ */
+ (function() {
+ 'use strict';
+ function t(t) {
+ return 'function' == typeof t || ('object' == typeof t && null !== t);
+ }
+ function e(t) {
+ return 'function' == typeof t;
+ }
+ function n(t) {
+ G = t;
+ }
+ function r(t) {
+ Q = t;
+ }
+ function o() {
+ return function() {
+ process.nextTick(a);
+ };
+ }
+ function i() {
+ return function() {
+ B(a);
+ };
+ }
+ function s() {
+ var t = 0,
+ e = new X(a),
+ n = document.createTextNode('');
+ return (
+ e.observe(n, {characterData: !0}),
+ function() {
+ n.data = t = ++t % 2;
+ }
+ );
+ }
+ function u() {
+ var t = new MessageChannel();
+ return (
+ (t.port1.onmessage = a),
+ function() {
+ t.port2.postMessage(0);
+ }
+ );
+ }
+ function c() {
+ return function() {
+ setTimeout(a, 1);
+ };
+ }
+ function a() {
+ for (var t = 0; J > t; t += 2) {
+ var e = tt[t],
+ n = tt[t + 1];
+ e(n), (tt[t] = void 0), (tt[t + 1] = void 0);
+ }
+ J = 0;
+ }
+ function f() {
+ try {
+ var t = require,
+ e = t('vertx');
+ return (B = e.runOnLoop || e.runOnContext, i());
+ } catch (n) {
+ return c();
+ }
+ }
+ function l(t, e) {
+ var n = this,
+ r = new this.constructor(p);
+ void 0 === r[rt] && k(r);
+ var o = n._state;
+ if (o) {
+ var i = arguments[o - 1];
+ Q(function() {
+ x(o, r, i, n._result);
+ });
+ } else E(n, r, t, e);
+ return r;
+ }
+ function h(t) {
+ var e = this;
+ if (t && 'object' == typeof t && t.constructor === e) return t;
+ var n = new e(p);
+ return (g(n, t), n);
+ }
+ function p() {}
+ function _() {
+ return new TypeError('You cannot resolve a promise with itself');
+ }
+ function d() {
+ return new TypeError('A promises callback cannot return that same promise.');
+ }
+ function v(t) {
+ try {
+ return t.then;
+ } catch (e) {
+ return (ut.error = e, ut);
+ }
+ }
+ function y(t, e, n, r) {
+ try {
+ t.call(e, n, r);
+ } catch (o) {
+ return o;
+ }
+ }
+ function m(t, e, n) {
+ Q(function(t) {
+ var r = !1,
+ o = y(
+ n,
+ e,
+ function(n) {
+ r || ((r = !0), e !== n ? g(t, n) : S(t, n));
+ },
+ function(e) {
+ r || ((r = !0), j(t, e));
+ },
+ 'Settle: ' + (t._label || ' unknown promise')
+ );
+ !r && o && ((r = !0), j(t, o));
+ }, t);
+ }
+ function b(t, e) {
+ e._state === it
+ ? S(t, e._result)
+ : e._state === st
+ ? j(t, e._result)
+ : E(
+ e,
+ void 0,
+ function(e) {
+ g(t, e);
+ },
+ function(e) {
+ j(t, e);
+ }
+ );
+ }
+ function w(t, n, r) {
+ n.constructor === t.constructor && r === et && constructor.resolve === nt
+ ? b(t, n)
+ : r === ut
+ ? j(t, ut.error)
+ : void 0 === r
+ ? S(t, n)
+ : e(r)
+ ? m(t, n, r)
+ : S(t, n);
+ }
+ function g(e, n) {
+ e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n);
+ }
+ function A(t) {
+ t._onerror && t._onerror(t._result), T(t);
+ }
+ function S(t, e) {
+ t._state === ot &&
+ ((t._result = e), (t._state = it), 0 !== t._subscribers.length && Q(T, t));
+ }
+ function j(t, e) {
+ t._state === ot && ((t._state = st), (t._result = e), Q(A, t));
+ }
+ function E(t, e, n, r) {
+ var o = t._subscribers,
+ i = o.length;
+ (t._onerror = null),
+ (o[i] = e),
+ (o[i + it] = n),
+ (o[i + st] = r),
+ 0 === i && t._state && Q(T, t);
+ }
+ function T(t) {
+ var e = t._subscribers,
+ n = t._state;
+ if (0 !== e.length) {
+ for (var r, o, i = t._result, s = 0; s < e.length; s += 3)
+ (r = e[s]), (o = e[s + n]), r ? x(n, r, o, i) : o(i);
+ t._subscribers.length = 0;
+ }
+ }
+ function M() {
+ this.error = null;
+ }
+ function P(t, e) {
+ try {
+ return t(e);
+ } catch (n) {
+ return (ct.error = n, ct);
+ }
+ }
+ function x(t, n, r, o) {
+ var i,
+ s,
+ u,
+ c,
+ a = e(r);
+ if (a) {
+ if (
+ ((i = P(r, o)),
+ i === ct ? ((c = !0), (s = i.error), (i = null)) : (u = !0),
+ n === i)
+ )
+ return void j(n, d());
+ } else (i = o), (u = !0);
+ n._state !== ot ||
+ (a && u ? g(n, i) : c ? j(n, s) : t === it ? S(n, i) : t === st && j(n, i));
+ }
+ function C(t, e) {
+ try {
+ e(
+ function(e) {
+ g(t, e);
+ },
+ function(e) {
+ j(t, e);
+ }
+ );
+ } catch (n) {
+ j(t, n);
+ }
+ }
+ function O() {
+ return at++;
+ }
+ function k(t) {
+ (t[rt] = at++), (t._state = void 0), (t._result = void 0), (t._subscribers = []);
+ }
+ function Y(t) {
+ return new _t(this, t).promise;
+ }
+ function q(t) {
+ var e = this;
+ return new e(
+ I(t)
+ ? function(n, r) {
+ for (var o = t.length, i = 0; o > i; i++)
+ e.resolve(t[i]).then(n, r);
+ }
+ : function(t, e) {
+ e(new TypeError('You must pass an array to race.'));
+ }
+ );
+ }
+ function F(t) {
+ var e = this,
+ n = new e(p);
+ return (j(n, t), n);
+ }
+ function D() {
+ throw new TypeError(
+ 'You must pass a resolver function as the first argument to the promise constructor'
+ );
+ }
+ function K() {
+ throw new TypeError(
+ "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
+ );
+ }
+ function L(t) {
+ (this[rt] = O()),
+ (this._result = this._state = void 0),
+ (this._subscribers = []),
+ p !== t &&
+ ('function' != typeof t && D(), this instanceof L ? C(this, t) : K());
+ }
+ function N(t, e) {
+ (this._instanceConstructor = t),
+ (this.promise = new t(p)),
+ this.promise[rt] || k(this.promise),
+ Array.isArray(e)
+ ? ((this._input = e),
+ (this.length = e.length),
+ (this._remaining = e.length),
+ (this._result = new Array(this.length)),
+ 0 === this.length
+ ? S(this.promise, this._result)
+ : ((this.length = this.length || 0),
+ this._enumerate(),
+ 0 === this._remaining && S(this.promise, this._result)))
+ : j(this.promise, U());
+ }
+ function U() {
+ return new Error('Array Methods must be provided an Array');
+ }
+ function W() {
+ var t;
+ if ('undefined' != typeof global) t = global;
+ else if ('undefined' != typeof self) t = self;
+ else
+ try {
+ t = Function('return this')();
+ } catch (e) {
+ throw new Error(
+ 'polyfill failed because global object is unavailable in this environment'
+ );
+ }
+ var n = t.Promise;
+ (!n ||
+ '[object Promise]' !== Object.prototype.toString.call(n.resolve()) ||
+ n.cast) &&
+ (t.Promise = pt);
+ }
+ var z;
+ z = Array.isArray
+ ? Array.isArray
+ : function(t) {
+ return '[object Array]' === Object.prototype.toString.call(t);
+ };
+ var B,
+ G,
+ H,
+ I = z,
+ J = 0,
+ Q = function(t, e) {
+ (tt[J] = t), (tt[J + 1] = e), (J += 2), 2 === J && (G ? G(a) : H());
+ },
+ R = 'undefined' != typeof window ? window : void 0,
+ V = R || {},
+ X = V.MutationObserver || V.WebKitMutationObserver,
+ Z =
+ 'undefined' == typeof self &&
+ 'undefined' != typeof process &&
+ '[object process]' === {}.toString.call(process),
+ $ =
+ 'undefined' != typeof Uint8ClampedArray &&
+ 'undefined' != typeof importScripts &&
+ 'undefined' != typeof MessageChannel,
+ tt = new Array(1e3);
+ H = Z
+ ? o()
+ : X
+ ? s()
+ : $
+ ? u()
+ : void 0 === R && 'function' == typeof require
+ ? f()
+ : c();
+ var et = l,
+ nt = h,
+ rt = Math.random()
+ .toString(36)
+ .substring(16),
+ ot = void 0,
+ it = 1,
+ st = 2,
+ ut = new M(),
+ ct = new M(),
+ at = 0,
+ ft = Y,
+ lt = q,
+ ht = F,
+ pt = L;
+ (L.all = ft),
+ (L.race = lt),
+ (L.resolve = nt),
+ (L.reject = ht),
+ (L._setScheduler = n),
+ (L._setAsap = r),
+ (L._asap = Q),
+ (L.prototype = {
+ constructor: L,
+ then: et,
+ "catch": function(t) {
+ return this.then(null, t);
+ },
+ });
+ var _t = N;
+ (N.prototype._enumerate = function() {
+ for (var t = this.length, e = this._input, n = 0; this._state === ot && t > n; n++)
+ this._eachEntry(e[n], n);
+ }),
+ (N.prototype._eachEntry = function(t, e) {
+ var n = this._instanceConstructor,
+ r = n.resolve;
+ if (r === nt) {
+ var o = v(t);
+ if (o === et && t._state !== ot) this._settledAt(t._state, e, t._result);
+ else if ('function' != typeof o) this._remaining--, (this._result[e] = t);
+ else if (n === pt) {
+ var i = new n(p);
+ w(i, t, o), this._willSettleAt(i, e);
+ } else
+ this._willSettleAt(
+ new n(function(e) {
+ e(t);
+ }),
+ e
+ );
+ } else this._willSettleAt(r(t), e);
+ }),
+ (N.prototype._settledAt = function(t, e, n) {
+ var r = this.promise;
+ r._state === ot &&
+ (this._remaining--, t === st ? j(r, n) : (this._result[e] = n)),
+ 0 === this._remaining && S(r, this._result);
+ }),
+ (N.prototype._willSettleAt = function(t, e) {
+ var n = this;
+ E(
+ t,
+ void 0,
+ function(t) {
+ n._settledAt(it, e, t);
+ },
+ function(t) {
+ n._settledAt(st, e, t);
+ }
+ );
+ });
+ var dt = W,
+ vt = {Promise: pt, polyfill: dt};
+ 'function' == typeof define && define.amd
+ ? define(function() {
+ return vt;
+ })
+ : 'undefined' != typeof module && module.exports
+ ? (module.exports = vt)
+ : 'undefined' != typeof this && (this.ES6Promise = vt),
+ dt();
+ }.call(this));
+
+ }
+}
+
+var promiseExec = function(sql, params, counterStep, counterTotal) {
+ return new utils.global.Promise(function(resolve, reject) {
+ alasql(sql, params, function(data, err) {
+ if (err) {
+ reject(err);
+ } else {
+ if (counterStep && counterTotal && alasql.options.progress !== false) {
+ alasql.options.progress(counterStep, counterTotal);
+ }
+ resolve(data);
+ }
+ });
+ });
+};
+
+var promiseAll = function(sqlParamsArray) {
+ if (sqlParamsArray.length < 1) {
+ return;
+ }
+
+ var active, sql, params;
+
+ var execArray = [];
+
+ for (var i = 0; i < sqlParamsArray.length; i++) {
+ active = sqlParamsArray[i];
+
+ if (typeof active === 'string') {
+ active = [active];
+ }
+
+ if (!utils.isArray(active) || active.length < 1 || 2 < active.length) {
+ throw new Error('Error in .promise parameter');
+ }
+
+ sql = active[0];
+ params = active[1] || undefined;
+
+ execArray.push(promiseExec(sql, params, i, sqlParamsArray.length));
+ }
+
+ return utils.global.Promise.all(execArray);
+};
+
+alasql.promise = function(sql, params) {
+ if (typeof Promise === 'undefined') {
+ throw new Error('Please include a Promise/A+ library');
+ }
+
+ if (typeof sql === 'string') {
+ return promiseExec(sql, params);
+ }
+
+ if (!utils.isArray(sql) || sql.length < 1 || typeof params !== 'undefined') {
+ throw new Error('Error in .promise parameters');
+ }
+ return promiseAll(sql);
+};
+
+/*
+//
+// Database class for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Main Database class
+
+/**
+ @class Database
+ */
+
+var Database = (alasql.Database = function(databaseid) {
+ var self = this;
+
+ // self.prototype = this;
+
+ if (self === alasql) {
+ if (databaseid) {
+ // if(alasql.databases[databaseid]) {
+ self = alasql.databases[databaseid];
+ // } else {
+ alasql.databases[databaseid] = self;
+ // }
+ if (!self) {
+ throw new Error('Database "' + databaseid + '" not found');
+ }
+ } else {
+ // Create new database (or get alasql?)
+ self = alasql.databases.alasql;
+ // For SQL Server examples, USE tempdb
+ if (alasql.options.tsql) {
+ alasql.databases.tempdb = alasql.databases.alasql;
+ }
+ // self = new Database(databaseid); // to call without new
+ }
+ }
+ if (!databaseid) {
+ databaseid = 'db' + alasql.databasenum++; // Random name
+ }
+
+ // Step 1
+ self.databaseid = databaseid;
+ alasql.databases[databaseid] = self;
+ self.dbversion = 0;
+
+ //Steps 2-5
+ self.tables = {};
+ self.views = {};
+ self.triggers = {};
+ self.indices = {};
+
+ // Step 6: Objects storage
+ self.objects = {};
+ self.counter = 0;
+
+ self.resetSqlCache();
+ return self;
+});
+
+/**
+ Reset SQL statements cache
+ */
+
+Database.prototype.resetSqlCache = function() {
+ this.sqlCache = {}; // Cache for compiled SQL statements
+ this.sqlCacheSize = 0;
+};
+
+// Main SQL function
+
+/**
+ Run SQL statement on database
+ @param {string} sql SQL statement
+ @param [object] params Parameters
+ @param {function} cb callback
+ */
+
+Database.prototype.exec = function(sql, params, cb) {
+ return alasql.dexec(this.databaseid, sql, params, cb);
+};
+
+Database.prototype.autoval = function(tablename, colname, getNext) {
+ return alasql.autoval(tablename, colname, getNext, this.databaseid);
+};
+
+// Aliases like MS SQL
+
+/*
+//
+// Transactio class for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+Database.prototype.transaction = function(cb) {
+ var tx = new alasql.Transaction(this.databaseid);
+ var res = cb(tx);
+ return res;
+};
+
+// Transaction class (for WebSQL compatibility)
+
+/**
+ Transaction class
+ @class Transaction
+ */
+
+var Transaction = (alasql.Transaction = function(databaseid) {
+ this.transactionid = Date.now();
+ this.databaseid = databaseid;
+ this.commited = false;
+ this.dbversion = alasql.databases[databaseid].dbversion;
+ // this.bank = cloneDeep(alasql.databases[databaseid]);
+ this.bank = JSON.stringify(alasql.databases[databaseid]);
+ // TODO CLone Tables with insertfns
+
+ return this;
+});
+
+// Main class
+
+// Commit
+
+/**
+ Commit transaction
+ */
+Transaction.prototype.commit = function() {
+ this.commited = true;
+ alasql.databases[this.databaseid].dbversion = Date.now();
+ delete this.bank;
+};
+
+// Rollback
+/**
+ Rollback transaction
+ */
+Transaction.prototype.rollback = function() {
+ if (!this.commited) {
+ alasql.databases[this.databaseid] = JSON.parse(this.bank);
+ // alasql.databases[this.databaseid].tables = this.bank;
+ // alasql.databases[this.databaseid].dbversion = this.dbversion;
+ delete this.bank;
+ } else {
+ throw new Error('Transaction already commited');
+ }
+};
+
+// Transactions stub
+
+/**
+ Execute SQL statement
+ @param {string} sql SQL statement
+ @param {object} params Parameters
+ @param {function} cb Callback function
+ @return result
+ */
+Transaction.prototype.exec = function(sql, params, cb) {
+
+ return alasql.dexec(this.databaseid, sql, params, cb);
+};
+
+Transaction.prototype.executeSQL = Transaction.prototype.exec;
+
+/*
+//
+// Table class for Alasql.js
+// Date: 14.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Table class
+var Table = (alasql.Table = function(params) {
+ // Step 1: Data array
+ this.data = [];
+
+ // Step 2: Columns
+ this.columns = [];
+ this.xcolumns = {};
+
+ // Step 3: indices
+ this.inddefs = {};
+ this.indices = {};
+ this.uniqs = {};
+ this.uniqdefs = {};
+
+ // Step 4: identities
+ this.identities = {};
+
+ // Step 5: checkfn...
+ this.checks = [];
+ this.checkfns = []; // For restore... to be done...
+
+ // Step 6: INSERT/DELETE/UPDATE
+
+ // Step 7: Triggers...
+ // Create trigger hubs
+ this.beforeinsert = {};
+ this.afterinsert = {};
+ this.insteadofinsert = {};
+
+ this.beforedelete = {};
+ this.afterdelete = {};
+ this.insteadofdelete = {};
+
+ this.beforeupdate = {};
+ this.afterupdate = {};
+ this.insteadofupdate = {};
+
+ // Done
+ extend(this, params);
+});
+
+Table.prototype.indexColumns = function() {
+ var self = this;
+ self.xcolumns = {};
+ self.columns.forEach(function(col) {
+ self.xcolumns[col.columnid] = col;
+ });
+};
+
+/*
+//
+// View class for Alasql.js
+// Date: 14.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Table class
+var View = (alasql.View = function(params) {
+ // Columns
+ this.columns = [];
+ this.xcolumns = {};
+ // Data array
+ this.query = [];
+
+ extend(this, params);
+});
+
+/*
+//
+// Query class for Alasql.js
+// Date: 14.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Table class
+
+/**
+ @class Query Main query class
+ */
+var Query = (alasql.Query = function(params) {
+ this.alasql = alasql;
+
+ // Columns
+ this.columns = [];
+ this.xcolumns = {};
+ this.selectGroup = [];
+ this.groupColumns = {};
+ // Data array
+ extend(this, params);
+});
+
+/**
+ @class Recordset data object
+ */
+var Recordset = (alasql.Recordset = function(params) {
+ // Data array
+ extend(this, params);
+});
+
+/*
+//
+// Parser helper for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+var yy = (alasqlparser.yy = alasql.yy = {});
+
+// Utility
+yy.extend = extend;
+// Option for case sensitive
+yy.casesensitive = alasql.options.casesensitive;
+
+// Base class for all yy classes
+var Base = (yy.Base = function(params) {
+ return yy.extend(this, params);
+});
+
+Base.prototype.toString = function() {};
+Base.prototype.toType = function() {};
+Base.prototype.toJS = function() {};
+
+Base.prototype.compile = returnUndefined;
+Base.prototype.exec = function() {};
+
+Base.prototype.compile = returnUndefined;
+Base.prototype.exec = function() {};
+
+/*
+//
+// Statements class for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// Statements container
+yy.Statements = function(params) {
+ return yy.extend(this, params);
+};
+
+yy.Statements.prototype.toString = function() {
+ return this.statements
+ .map(function(st) {
+ return st.toString();
+ })
+ .join('; ');
+};
+
+// Compile array of statements into single statement
+yy.Statements.prototype.compile = function(db) {
+ var statements = this.statements.map(function(st) {
+ return st.compile(db);
+ });
+ if (statements.length === 1) {
+ return statements[0];
+ } else {
+ return function(params, cb) {
+ var res = statements.map(function(st) {
+ return st(params);
+ });
+ if (cb) {
+ cb(res);
+ }
+ return res;
+ };
+ }
+};
+
+/* global alasql */
+/* global yy */
+/*
+//
+// SEARCH for Alasql.js
+// Date: 04.05.2015
+// (c) 2015, Andrey Gershun
+//
+*/
+
+function doSearch(databaseid, params, cb) {
+ var res;
+ var stope = {};
+ var fromdata;
+ var selectors = cloneDeep(this.selectors);
+
+ function processSelector(selectors, sidx, value) {
+ // var val;
+
+ var val, // temp values use many places
+ nest, // temp value used many places
+ r, // temp value used many places
+ sel = selectors[sidx];
+
+ // if(!alasql.srch[sel.srchid]) {
+ // throw new Error('Selector "'+sel.srchid+'" not found');
+ // };
+
+ var SECURITY_BREAK = 100000;
+
+ if (sel.selid) {
+ // TODO Process Selector
+ if (sel.selid === 'PATH') {
+ var queue = [{node: value, stack: []}];
+ var visited = {};
+ //var path = [];
+ var objects = alasql.databases[alasql.useid].objects;
+ while (queue.length > 0) {
+ var q = queue.shift();
+ var node = q.node;
+ var stack = q.stack;
+ var r = processSelector(sel.args, 0, node);
+ if (r.length > 0) {
+ if (sidx + 1 + 1 > selectors.length) {
+ return stack;
+ } else {
+ var rv = [];
+ if (stack && stack.length > 0) {
+ stack.forEach(function(stv) {
+ rv = rv.concat(processSelector(selectors, sidx + 1, stv));
+ });
+ }
+ return rv;
+ // return processSelector(selectors,sidx+1,stack);
+ }
+ } else {
+ if (typeof visited[node.$id] !== 'undefined') {
+ continue;
+ } else {
+
+ visited[node.$id] = true;
+ if (node.$out && node.$out.length > 0) {
+ node.$out.forEach(function(edgeid) {
+ var edge = objects[edgeid];
+ var stack2 = stack.concat(edge);
+ stack2.push(objects[edge.$out[0]]);
+ queue.push({
+ node: objects[edge.$out[0]],
+ stack: stack2,
+ });
+ });
+ }
+ }
+ }
+ }
+ // Else return fail
+ return [];
+ }
+ if (sel.selid === 'NOT') {
+ var nest = processSelector(sel.args, 0, value);
+
+ if (nest.length > 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ return processSelector(selectors, sidx + 1, value);
+ }
+ }
+ } else if (sel.selid === 'DISTINCT') {
+ var nest;
+ if (typeof sel.args === 'undefined' || sel.args.length === 0) {
+ nest = distinctArray(value);
+ } else {
+ nest = processSelector(sel.args, 0, value);
+ }
+ if (nest.length === 0) {
+ return [];
+ } else {
+ var res = distinctArray(nest);
+ if (sidx + 1 + 1 > selectors.length) {
+ return res;
+ } else {
+ return processSelector(selectors, sidx + 1, res);
+ }
+ }
+ } else if (sel.selid === 'AND') {
+ var res = true;
+ sel.args.forEach(function(se) {
+ res = res && processSelector(se, 0, value).length > 0;
+ });
+ if (!res) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ return processSelector(selectors, sidx + 1, value);
+ }
+ }
+ } else if (sel.selid === 'OR') {
+ var res = false;
+ sel.args.forEach(function(se) {
+ res = res || processSelector(se, 0, value).length > 0;
+ });
+ if (!res) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ return processSelector(selectors, sidx + 1, value);
+ }
+ }
+ } else if (sel.selid === 'ALL') {
+ var nest = processSelector(sel.args[0], 0, value);
+ if (nest.length === 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return nest;
+ } else {
+ return processSelector(selectors, sidx + 1, nest);
+ }
+ }
+ } else if (sel.selid === 'ANY') {
+ var nest = processSelector(sel.args[0], 0, value);
+
+ if (nest.length === 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [nest[0]];
+ } else {
+ return processSelector(selectors, sidx + 1, [nest[0]]);
+ }
+ }
+ } else if (sel.selid === 'UNIONALL') {
+ var nest = [];
+ sel.args.forEach(function(se) {
+ nest = nest.concat(processSelector(se, 0, value));
+ });
+ if (nest.length === 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return nest;
+ } else {
+ return processSelector(selectors, sidx + 1, nest);
+ }
+ }
+ } else if (sel.selid === 'UNION') {
+ var nest = [];
+ sel.args.forEach(function(se) {
+ nest = nest.concat(processSelector(se, 0, value));
+ });
+ var nest = distinctArray(nest);
+ if (nest.length === 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return nest;
+ } else {
+ return processSelector(selectors, sidx + 1, nest);
+ }
+ }
+ } else if (sel.selid === 'IF') {
+ var nest = processSelector(sel.args, 0, value);
+
+ if (nest.length === 0) {
+ return [];
+ } else {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ return processSelector(selectors, sidx + 1, value);
+ }
+ }
+ } else if (sel.selid === 'REPEAT') {
+
+ var lvar,
+ lmax,
+ lmin = sel.args[0].value;
+ if (!sel.args[1]) {
+ lmax = lmin; // Add security break
+ } else {
+ lmax = sel.args[1].value;
+ }
+ if (sel.args[2]) {
+ lvar = sel.args[2].variable;
+ }
+ //var lsel = sel.sels;
+
+ var retval = [];
+
+ if (lmin === 0) {
+ if (sidx + 1 + 1 > selectors.length) {
+ retval = [value];
+ } else {
+ if (lvar) {
+ alasql.vars[lvar] = 0;
+ }
+ retval = retval.concat(processSelector(selectors, sidx + 1, value));
+ }
+ }
+
+ // var nests = processSelector(sel.sels,0,value).slice();
+ if (lmax > 0) {
+ var nests = [{value: value, lvl: 1}];
+
+ var i = 0;
+ while (nests.length > 0) {
+ var nest = nests[0];
+
+ nests.shift();
+ if (nest.lvl <= lmax) {
+ if (lvar) {
+ alasql.vars[lvar] = nest.lvl;
+ }
+
+ var nest1 = processSelector(sel.sels, 0, nest.value);
+
+ nest1.forEach(function(n) {
+ nests.push({value: n, lvl: nest.lvl + 1});
+ });
+ if (nest.lvl >= lmin) {
+ if (sidx + 1 + 1 > selectors.length) {
+ retval = retval.concat(nest1);
+ //return nests;
+ } else {
+ nest1.forEach(function(n) {
+ retval = retval.concat(
+ processSelector(selectors, sidx + 1, n)
+ );
+ });
+ }
+ }
+ }
+ // Security brake
+ i++;
+ if (i > SECURITY_BREAK) {
+ throw new Error('Security brake. Number of iterations = ' + i);
+ }
+ }
+ }
+ return retval;
+ } else if (sel.selid === 'OF') {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ var r1 = [];
+ Object.keys(value).forEach(function(keyv) {
+ alasql.vars[sel.args[0].variable] = keyv;
+ r1 = r1.concat(processSelector(selectors, sidx + 1, value[keyv]));
+ });
+ return r1;
+ }
+ } else if (sel.selid === 'TO') {
+
+ var oldv = alasql.vars[sel.args[0]];
+ var newv = [];
+ if (oldv !== undefined) {
+
+ newv = oldv.slice(0);
+
+ } else {
+ newv = [];
+ }
+ newv.push(value);
+
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ alasql.vars[sel.args[0]] = newv;
+ var r1 = processSelector(selectors, sidx + 1, value);
+
+ alasql.vars[sel.args[0]] = oldv;
+ return r1;
+ }
+
+ } else if (sel.selid === 'ARRAY') {
+ var nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ val = nest;
+ } else {
+ return [];
+ }
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'SUM') {
+ var nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ var val = nest.reduce(function(sum, current) {
+ return sum + current;
+ }, 0);
+ } else {
+ return [];
+ }
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'AVG') {
+ nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ val =
+ nest.reduce(function(sum, current) {
+ return sum + current;
+ }, 0) / nest.length;
+ } else {
+ return [];
+ }
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'COUNT') {
+ nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ val = nest.length;
+ } else {
+ return [];
+ }
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'FIRST') {
+ nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ val = nest[0];
+ } else {
+ return [];
+ }
+
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'LAST') {
+ nest = processSelector(sel.args, 0, value);
+ if (nest.length > 0) {
+ val = nest[nest.length - 1];
+ } else {
+ return [];
+ }
+
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'MIN') {
+ nest = processSelector(sel.args, 0, value);
+ if (nest.length === 0) {
+ return [];
+ }
+ var val = nest.reduce(function(min, current) {
+ return Math.min(min, current);
+ }, Infinity);
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'MAX') {
+ var nest = processSelector(sel.args, 0, value);
+ if (nest.length === 0) {
+ return [];
+ }
+ var val = nest.reduce(function(max, current) {
+ return Math.max(max, current);
+ }, -Infinity);
+ if (sidx + 1 + 1 > selectors.length) {
+ return [val];
+ } else {
+ return processSelector(selectors, sidx + 1, val);
+ }
+ } else if (sel.selid === 'PLUS') {
+ var retval = [];
+ // retval = retval.concat(processSelector(selectors,sidx+1,n))
+ var nests = processSelector(sel.args, 0, value).slice();
+ if (sidx + 1 + 1 > selectors.length) {
+ retval = retval.concat(nests);
+ } else {
+ nests.forEach(function(n) {
+ retval = retval.concat(processSelector(selectors, sidx + 1, n));
+ });
+ }
+
+ var i = 0;
+ while (nests.length > 0) {
+ // nest = nests[0];
+ // nests.shift();
+ var nest = nests.shift();
+
+ nest = processSelector(sel.args, 0, nest);
+
+ nests = nests.concat(nest);
+
+ if (sidx + 1 + 1 > selectors.length) {
+ retval = retval.concat(nest);
+ //return retval;
+ } else {
+ nest.forEach(function(n) {
+
+ var rn = processSelector(selectors, sidx + 1, n);
+
+ retval = retval.concat(rn);
+ });
+ }
+
+ // Security brake
+ i++;
+ if (i > SECURITY_BREAK) {
+ throw new Error('Security brake. Number of iterations = ' + i);
+ }
+ }
+ return retval;
+
+ } else if (sel.selid === 'STAR') {
+ var retval = [];
+ retval = processSelector(selectors, sidx + 1, value);
+ var nests = processSelector(sel.args, 0, value).slice();
+ if (sidx + 1 + 1 > selectors.length) {
+ retval = retval.concat(nests);
+ //return nests;
+ } else {
+ nests.forEach(function(n) {
+ retval = retval.concat(processSelector(selectors, sidx + 1, n));
+ });
+ }
+ var i = 0;
+ while (nests.length > 0) {
+ var nest = nests[0];
+ nests.shift();
+
+ nest = processSelector(sel.args, 0, nest);
+
+ nests = nests.concat(nest);
+
+ if (sidx + 1 + 1 <= selectors.length) {
+ nest.forEach(function(n) {
+ retval = retval.concat(processSelector(selectors, sidx + 1, n));
+ });
+ }
+
+ // Security brake
+ i++;
+ if (i > SECURITY_BREAK) {
+ throw new Error('Loop brake. Number of iterations = ' + i);
+ }
+ }
+
+ return retval;
+ } else if (sel.selid === 'QUESTION') {
+ var retval = [];
+ retval = retval.concat(processSelector(selectors, sidx + 1, value));
+ var nest = processSelector(sel.args, 0, value);
+ if (sidx + 1 + 1 <= selectors.length) {
+ nest.forEach(function(n) {
+ retval = retval.concat(processSelector(selectors, sidx + 1, n));
+ });
+ }
+ return retval;
+ } else if (sel.selid === 'WITH') {
+ var nest = processSelector(sel.args, 0, value);
+
+ if (nest.length === 0) {
+ return [];
+ } else {
+
+ var r = {status: 1, values: nest};
+ }
+ } else if (sel.selid === 'ROOT') {
+ if (sidx + 1 + 1 > selectors.length) {
+ return [value];
+ } else {
+ return processSelector(selectors, sidx + 1, fromdata);
+ }
+ } else {
+ throw new Error('Wrong selector ' + sel.selid);
+ }
+ } else if (sel.srchid) {
+ var r = alasql.srch[sel.srchid.toUpperCase()](value, sel.args, stope, params);
+
+ } else {
+ throw new Error('Selector not found');
+ }
+
+ if (typeof r === 'undefined') {
+ r = {status: 1, values: [value]};
+ }
+
+ var res = [];
+ if (r.status === 1) {
+ var arr = r.values;
+
+ if (sidx + 1 + 1 > selectors.length) {
+ // if(sidx+1+1 > selectors.length) {
+ res = arr;
+
+ } else {
+ for (var i = 0; i < r.values.length; i++) {
+ res = res.concat(processSelector(selectors, sidx + 1, arr[i]));
+ }
+ }
+ }
+ return res;
+ }
+
+ if (selectors !== undefined && selectors.length > 0) {
+
+ if (
+ selectors &&
+ selectors[0] &&
+ selectors[0].srchid === 'PROP' &&
+ selectors[0].args &&
+ selectors[0].args[0]
+ ) {
+
+ if (selectors[0].args[0].toUpperCase() === 'XML') {
+ stope.mode = 'XML';
+ selectors.shift();
+ } else if (selectors[0].args[0].toUpperCase() === 'HTML') {
+ stope.mode = 'HTML';
+ selectors.shift();
+ } else if (selectors[0].args[0].toUpperCase() === 'JSON') {
+ stope.mode = 'JSON';
+ selectors.shift();
+ }
+ }
+ if (selectors.length > 0 && selectors[0].srchid === 'VALUE') {
+ stope.value = true;
+ selectors.shift();
+ }
+ }
+
+ if (this.from instanceof yy.Column) {
+ var dbid = this.from.databaseid || databaseid;
+ fromdata = alasql.databases[dbid].tables[this.from.columnid].data;
+ //selectors.unshift({srchid:'CHILD'});
+ } else if (this.from instanceof yy.FuncValue && alasql.from[this.from.funcid.toUpperCase()]) {
+ var args = this.from.args.map(function(arg) {
+ var as = arg.toJS();
+
+ var fn = new Function('params,alasql', 'var y;return ' + as).bind(this);
+ return fn(params, alasql);
+ });
+
+ fromdata = alasql.from[this.from.funcid.toUpperCase()].apply(this, args);
+
+ } else if (typeof this.from === 'undefined') {
+ fromdata = alasql.databases[databaseid].objects;
+ } else {
+ var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
+ fromdata = fromfn(params, alasql);
+ // Check for Mogo Collections
+ if (
+ typeof Mongo === 'object' &&
+ typeof Mongo.Collection !== 'object' &&
+ fromdata instanceof Mongo.Collection
+ ) {
+ fromdata = fromdata.find().fetch();
+ }
+
+ // if(typeof fromdata == 'object' && Array.isArray(fromdata)) {
+ // selectors.unshift({srchid:'CHILD'});
+ // }
+ }
+
+ // If source data is array than first step is to run over array
+ // var selidx = 0;
+ // var selvalue = fromdata;
+
+ if (selectors !== undefined && selectors.length > 0) {
+ // Init variables for TO() selectors
+
+ if (false) {
+ selectors.forEach(function(selector) {
+ if (selector.srchid === 'TO') {
+ //* @todo move to TO selector
+ alasql.vars[selector.args[0]] = [];
+ // TODO - process nested selectors
+ }
+ });
+ }
+
+ res = processSelector(selectors, 0, fromdata);
+ } else {
+ res = fromdata;
+ }
+
+ if (this.into) {
+ var a1, a2;
+ if (typeof this.into.args[0] !== 'undefined') {
+ a1 = new Function('params,alasql', 'var y;return ' + this.into.args[0].toJS())(
+ params,
+ alasql
+ );
+ }
+ if (typeof this.into.args[1] !== 'undefined') {
+ a2 = new Function('params,alasql', 'var y;return ' + this.into.args[1].toJS())(
+ params,
+ alasql
+ );
+ }
+ res = alasql.into[this.into.funcid.toUpperCase()](a1, a2, res, [], cb);
+ } else {
+ if (stope.value && res.length > 0) {
+ res = res[0];
+ }
+ if (cb) {
+ res = cb(res);
+ }
+ }
+ return res;
+}
+
+/**
+ Search class
+ @class
+ @example
+ SEARCH SUM(/a) FROM ? -- search over parameter object
+*/
+
+yy.Search = function(params) {
+ return yy.extend(this, params);
+};
+
+yy.Search.prototype.toString = function() {
+ var s = 'SEARCH' + ' ';
+ if (this.selectors) {
+ s += this.selectors.toString();
+ }
+ if (this.from) {
+ s += 'FROM' + ' ' + this.from.toString();
+ }
+
+ return s;
+};
+
+yy.Search.prototype.toJS = function(context) {
+
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+ // var s = '';
+ return s;
+};
+
+yy.Search.prototype.compile = function(databaseid) {
+ var dbid = databaseid;
+ var self = this;
+
+ var statement = function(params, cb) {
+
+ var res;
+ doSearch.bind(self)(dbid, params, function(data) {
+
+ res = modify(statement.query, data);
+
+ if (cb) {
+ res = cb(res);
+ }
+ });
+
+ // if(cb) res = cb(res);
+ return res;
+ };
+ statement.query = {};
+ return statement;
+};
+
+// List of search functions
+alasql.srch = {};
+
+alasql.srch.PROP = function(val, args, stope) {
+
+ if (stope.mode === 'XML') {
+ var arr = [];
+ val.children.forEach(function(v) {
+ if (v.name.toUpperCase() === args[0].toUpperCase()) {
+ arr.push(v);
+ }
+ });
+ if (arr.length > 0) {
+ return {status: 1, values: arr};
+ } else {
+ return {status: -1, values: []};
+ }
+ } else {
+ if (
+ typeof val !== 'object' ||
+ val === null ||
+ typeof args !== 'object' ||
+ typeof val[args[0]] === 'undefined'
+ ) {
+ return {status: -1, values: []};
+ } else {
+ return {status: 1, values: [val[args[0]]]};
+ }
+ }
+};
+
+alasql.srch.APROP = function(val, args) {
+ if (
+ typeof val !== 'object' ||
+ val === null ||
+ typeof args !== 'object' ||
+ typeof val[args[0]] === 'undefined'
+ ) {
+ return {status: 1, values: [undefined]};
+ } else {
+ return {status: 1, values: [val[args[0]]]};
+ }
+};
+
+// Test expression
+alasql.srch.EQ = function(val, args, stope, params) {
+ var exprs = args[0].toJS('x', '');
+ var exprfn = new Function('x,alasql,params', 'return ' + exprs);
+ if (val === exprfn(val, alasql, params)) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Test expression
+alasql.srch.LIKE = function(val, args, stope, params) {
+ var exprs = args[0].toJS('x', '');
+ var exprfn = new Function('x,alasql,params', 'return ' + exprs);
+ if (
+ val.toUpperCase().match(
+ new RegExp(
+ '^' +
+ exprfn(val, alasql, params)
+ .toUpperCase()
+ .replace(/%/g, '.*')
+ .replace(/\?|_/g, '.') +
+ '$'
+ ),
+ 'g'
+ )
+ ) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.ATTR = function(val, args, stope) {
+ if (stope.mode === 'XML') {
+ if (typeof args === 'undefined') {
+ return {status: 1, values: [val.attributes]};
+ } else {
+ if (
+ typeof val === 'object' &&
+ typeof val.attributes === 'object' &&
+ typeof val.attributes[args[0]] !== 'undefined'
+ ) {
+ return {status: 1, values: [val.attributes[args[0]]]};
+ } else {
+ return {status: -1, values: []};
+ }
+ }
+ } else {
+ throw new Error('ATTR is not using in usual mode');
+ }
+};
+
+alasql.srch.CONTENT = function(val, args, stope) {
+ if (stope.mode === 'XML') {
+ return {status: 1, values: [val.content]};
+ } else {
+ throw new Error('ATTR is not using in usual mode');
+ }
+};
+
+alasql.srch.SHARP = function(val, args) {
+ var obj = alasql.databases[alasql.useid].objects[args[0]];
+ if (typeof val !== 'undefined' && val === obj) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.PARENT = function(/*val,args,stope*/) {
+ // TODO: implement
+ console.error('PARENT not implemented', arguments);
+
+ return {status: -1, values: []};
+};
+
+alasql.srch.CHILD = function(val, args, stope) {
+
+ if (typeof val === 'object') {
+ if (Array.isArray(val)) {
+ return {status: 1, values: val};
+ } else {
+ if (stope.mode === 'XML') {
+ return {
+ status: 1,
+ values: Object.keys(val.children).map(function(key) {
+ return val.children[key];
+ }),
+ };
+ } else {
+ return {
+ status: 1,
+ values: Object.keys(val).map(function(key) {
+ return val[key];
+ }),
+ };
+ }
+ }
+ } else {
+ // If primitive value
+ return {status: 1, values: []};
+ }
+};
+
+// Return all keys
+alasql.srch.KEYS = function(val) {
+ if (typeof val === 'object' && val !== null) {
+ return {status: 1, values: Object.keys(val)};
+ } else {
+ // If primitive value
+ return {status: 1, values: []};
+ }
+};
+
+// Test expression
+alasql.srch.WHERE = function(val, args, stope, params) {
+ var exprs = args[0].toJS('x', '');
+ var exprfn = new Function('x,alasql,params', 'return ' + exprs);
+ if (exprfn(val, alasql, params)) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.NAME = function(val, args) {
+ if (val.name === args[0]) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.CLASS = function(val, args) {
+
+ // Please avoid `===` here
+ if (val.$class == args) {
+ // jshint ignore:line
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.VERTEX = function(val) {
+ if (val.$node === 'VERTEX') {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.INSTANCEOF = function(val, args) {
+ if (val instanceof alasql.fn[args[0]]) {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.EDGE = function(val) {
+ if (val.$node === 'EDGE') {
+ return {status: 1, values: [val]};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.EX = function(val, args, stope, params) {
+ var exprs = args[0].toJS('x', '');
+ var exprfn = new Function('x,alasql,params', 'return ' + exprs);
+ return {status: 1, values: [exprfn(val, alasql, params)]};
+};
+
+// Transform expression
+alasql.srch.RETURN = function(val, args, stope, params) {
+ var res = {};
+ if (args && args.length > 0) {
+ args.forEach(function(arg) {
+ var exprs = arg.toJS('x', '');
+ var exprfn = new Function('x,alasql,params', 'return ' + exprs);
+ if (typeof arg.as === 'undefined') {
+ arg.as = arg.toString();
+ }
+ res[arg.as] = exprfn(val, alasql, params);
+ });
+ }
+ return {status: 1, values: [res]};
+};
+
+// Transform expression
+alasql.srch.REF = function(val) {
+ return {status: 1, values: [alasql.databases[alasql.useid].objects[val]]};
+};
+
+// Transform expression
+alasql.srch.OUT = function(val) {
+ if (val.$out && val.$out.length > 0) {
+ var res = val.$out.map(function(v) {
+ return alasql.databases[alasql.useid].objects[v];
+ });
+ return {status: 1, values: res};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.OUTOUT = function(val) {
+ if (val.$out && val.$out.length > 0) {
+ var res = [];
+ val.$out.forEach(function(v) {
+ var av = alasql.databases[alasql.useid].objects[v];
+ if (av && av.$out && av.$out.length > 0) {
+ av.$out.forEach(function(vv) {
+ res = res.concat(alasql.databases[alasql.useid].objects[vv]);
+ });
+ }
+ });
+ return {status: 1, values: res};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.IN = function(val) {
+ if (val.$in && val.$in.length > 0) {
+ var res = val.$in.map(function(v) {
+ return alasql.databases[alasql.useid].objects[v];
+ });
+ return {status: 1, values: res};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+alasql.srch.ININ = function(val) {
+ if (val.$in && val.$in.length > 0) {
+ var res = [];
+ val.$in.forEach(function(v) {
+ var av = alasql.databases[alasql.useid].objects[v];
+ if (av && av.$in && av.$in.length > 0) {
+ av.$in.forEach(function(vv) {
+ res = res.concat(alasql.databases[alasql.useid].objects[vv]);
+ });
+ }
+ });
+ return {status: 1, values: res};
+ } else {
+ return {status: -1, values: []};
+ }
+};
+
+// Transform expression
+alasql.srch.AS = function(val, args) {
+ alasql.vars[args[0]] = val;
+ return {status: 1, values: [val]};
+};
+
+// Transform expression
+alasql.srch.AT = function(val, args) {
+ var v = alasql.vars[args[0]];
+ return {status: 1, values: [v]};
+};
+
+// Transform expression
+alasql.srch.CLONEDEEP = function(val) {
+ // TODO something wrong
+ var z = cloneDeep(val);
+ return {status: 1, values: [z]};
+};
+
+// // Transform expression
+// alasql.srch.DELETE = function(val,args) {
+
+// };
+
+// Transform expression
+alasql.srch.SET = function(val, args, stope, params) {
+
+ var s = args
+ .map(function(st) {
+
+ if (st.method === '@') {
+ return "alasql.vars['" + st.variable + "']=" + st.expression.toJS('x', '');
+ } else if (st.method === '$') {
+ return "params['" + st.variable + "']=" + st.expression.toJS('x', '');
+ } else {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ }
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', s);
+
+ setfn(val, params, alasql);
+
+ return {status: 1, values: [val]};
+};
+
+alasql.srch.ROW = function(val, args, stope, params) {
+ var s = 'var y;return [';
+
+ s += args
+ .map(function(arg) {
+ return arg.toJS('x', '');
+ })
+ .join(',');
+ s += ']';
+ var setfn = new Function('x,params,alasql', s);
+ var rv = setfn(val, params, alasql);
+
+ return {status: 1, values: [rv]};
+};
+
+alasql.srch.D3 = function(val) {
+ if (val.$node !== 'VERTEX' && val.$node === 'EDGE') {
+ val.source = val.$in[0];
+ val.target = val.$out[0];
+ }
+
+ return {status: 1, values: [val]};
+};
+
+var compileSearchOrder = function(order) {
+ if (order) {
+
+ if (
+ order &&
+ order.length === 1 &&
+ order[0].expression &&
+ typeof order[0].expression === 'function'
+ ) {
+
+ var func = order[0].expression;
+
+ return function(a, b) {
+ var ra = func(a),
+ rb = func(b);
+ if (ra > rb) {
+ return 1;
+ }
+ if (ra === rb) {
+ return 0;
+ }
+ return -1;
+ };
+ }
+
+ var s = '';
+ var sk = '';
+ order.forEach(function(ord) {
+
+ // Date conversion
+ var dg = '';
+
+ if (ord.expression instanceof yy.NumValue) {
+ ord.expression = self.columns[ord.expression.value - 1];
+ }
+
+ if (ord.expression instanceof yy.Column) {
+ var columnid = ord.expression.columnid;
+
+ if (alasql.options.valueof) {
+ dg = '.valueOf()'; // TODO Check
+ }
+ // COLLATE NOCASE
+ if (ord.nocase) {
+ dg += '.toUpperCase()';
+ }
+
+ if (columnid === '_') {
+ s +=
+ 'if(a' +
+ dg +
+ (ord.direction === 'ASC' ? '>' : '<') +
+ 'b' +
+ dg +
+ ')return 1;';
+ s += 'if(a' + dg + '==b' + dg + '){';
+ } else {
+ s +=
+ "if((a['" +
+ columnid +
+ "']||'')" +
+ dg +
+ (ord.direction === 'ASC' ? '>' : '<') +
+ "(b['" +
+ columnid +
+ "']||'')" +
+ dg +
+ ')return 1;';
+ s +=
+ "if((a['" +
+ columnid +
+ "']||'')" +
+ dg +
+ "==(b['" +
+ columnid +
+ "']||'')" +
+ dg +
+ '){';
+ }
+ } else {
+ dg = '.valueOf()';
+ // COLLATE NOCASE
+ if (ord.nocase) {
+ dg += '.toUpperCase()';
+ }
+ s +=
+ 'if((' +
+ ord.toJS('a', '') +
+ "||'')" +
+ dg +
+ (ord.direction === 'ASC' ? '>(' : '<(') +
+ ord.toJS('b', '') +
+ "||'')" +
+ dg +
+ ')return 1;';
+ s +=
+ 'if((' +
+ ord.toJS('a', '') +
+ "||'')" +
+ dg +
+ '==(' +
+ ord.toJS('b', '') +
+ "||'')" +
+ dg +
+ '){';
+ }
+
+ // TODO Add date comparision
+ // s += 'if(a[\''+columnid+"']"+dg+(ord.direction == 'ASC'?'>':'<')+'b[\''+columnid+"']"+dg+')return 1;';
+ // s += 'if(a[\''+columnid+"']"+dg+'==b[\''+columnid+"']"+dg+'){';
+ // }
+ sk += '}';
+ });
+ s += 'return 0;';
+ s += sk + 'return -1';
+
+ return new Function('a,b', s);
+ }
+};
+
+alasql.srch.ORDERBY = function(val, args /*,stope*/) {
+
+ var res = val.sort(compileSearchOrder(args));
+ return {status: 1, values: res};
+};
+
+// Main query procedure
+function queryfn(query, oldscope, cb, A, B) {
+ var aaa = query.sources.length;
+
+ var ms;
+ query.sourceslen = query.sources.length;
+ var slen = query.sourceslen;
+ query.query = query; // TODO Remove to prevent memory leaks
+ query.A = A;
+ query.B = B;
+ query.cb = cb;
+ query.oldscope = oldscope;
+
+ // Run all subqueries before main statement
+ if (query.queriesfn) {
+ query.sourceslen += query.queriesfn.length;
+ slen += query.queriesfn.length;
+
+ query.queriesdata = [];
+
+ query.queriesfn.forEach(function(q, idx) {
+ // if(query.explain) ms = Date.now();
+
+ // var res = flatArray(q(query.params,null,queryfn2,(-idx-1),query));
+
+ // var res = flatArray(queryfn(q.query,null,queryfn2,(-idx-1),query));
+
+ q.query.params = query.params;
+ // query.queriesdata[idx] =
+
+ // if(false) {
+ // queryfn(q.query,query.oldscope,queryfn2,(-idx-1),query);
+ // } else {
+ queryfn2([], -idx - 1, query);
+ // }
+
+ // query.explaination.push({explid: query.explid++, description:'Query '+idx,ms:Date.now()-ms});
+ // query.queriesdata[idx] = res;
+ // return res;
+ });
+
+ }
+
+ var scope;
+ if (!oldscope) scope = {};
+ else scope = cloneDeep(oldscope);
+ query.scope = scope;
+
+ // First - refresh data sources
+
+ var result;
+ query.sources.forEach(function(source, idx) {
+ // source.data = query.database.tables[source.tableid].data;
+
+ source.query = query;
+ var rs = source.datafn(query, query.params, queryfn2, idx, alasql);
+
+ if (typeof rs !== 'undefined') {
+ // TODO - this is a hack: check if result is array - check all cases and
+ // make it more logical
+ if ((query.intofn || query.intoallfn) && Array.isArray(rs)) rs = rs.length;
+ result = rs;
+ }
+ //
+ // Ugly hack to use in query.wherefn and source.srcwherefns functions
+ // constructions like this.queriesdata['test'].
+ // I can elimite it with source.srcwherefn.bind(this)()
+ // but it may be slow.
+ //
+ source.queriesdata = query.queriesdata;
+ });
+ if (query.sources.length == 0 || 0 === slen) result = queryfn3(query);
+
+ return result;
+}
+
+function queryfn2(data, idx, query) {
+
+ //console.trace();
+
+ if (idx >= 0) {
+ var source = query.sources[idx];
+ source.data = data;
+ if (typeof source.data == 'function') {
+ source.getfn = source.data;
+ source.dontcache = source.getfn.dontcache;
+
+ // var prevsource = query.sources[h-1];
+ if (
+ source.joinmode == 'OUTER' ||
+ source.joinmode == 'RIGHT' ||
+ source.joinmode == 'ANTI'
+ ) {
+ source.dontcache = false;
+ }
+ source.data = {};
+ }
+ } else {
+ // subqueries
+
+ query.queriesdata[-idx - 1] = flatArray(data);
+
+ }
+
+ query.sourceslen--;
+ if (query.sourceslen > 0) return;
+
+ return queryfn3(query);
+}
+
+function queryfn3(query) {
+ var scope = query.scope,
+ jlen;
+
+ // Preindexation of data sources
+ // if(!oldscope) {
+ preIndex(query);
+ // }
+
+ // query.sources.forEach(function(source) {
+
+ // });
+
+ // Prepare variables
+ query.data = [];
+ query.xgroups = {};
+ query.groups = [];
+
+ // Level of Joins
+ var h = 0;
+
+ // Start walking over data
+
+ doJoin(query, scope, h);
+
+ // If groupping, then filter groups with HAVING function
+
+ if (query.groupfn) {
+ query.data = [];
+ if (0 === query.groups.length) {
+ var g = {};
+ if (query.selectGroup.length > 0) {
+
+ query.selectGroup.forEach(function(sg) {
+ if (sg.aggregatorid == 'COUNT' || sg.aggregatorid == 'SUM') {
+ g[sg.nick] = 0;
+ } else {
+ g[sg.nick] = undefined;
+ }
+ });
+ }
+ query.groups = [g];
+
+ }
+
+ // ******
+
+ if (query.aggrKeys.length > 0) {
+ var gfns = '';
+ query.aggrKeys.forEach(function(col) {
+ gfns +=
+ "g['" +
+ col.nick +
+ "']=alasql.aggr['" +
+ col.funcid +
+ "'](undefined,g['" +
+ col.nick +
+ "'],3);";
+ // gfns += 'return g[\''+col.nick+'\];';
+ });
+
+ var gfn = new Function('g,params,alasql', 'var y;' + gfns);
+ }
+
+ // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),'
+ // +'\'__REDUCE__'+colas+'\':acc,';
+
+ // *******
+
+ // debugger;
+ // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) {
+
+ // } else {
+ for (var i = 0, ilen = query.groups.length; i < ilen; i++) {
+ var g = query.groups[i];
+
+ if (gfn) gfn(g, query.params, alasql);
+
+ if (!query.havingfn || query.havingfn(g, query.params, alasql)) {
+
+ var d = query.selectgfn(g, query.params, alasql);
+ query.data.push(d);
+ }
+ }
+ // }
+
+ // query.groups = query.groups.filter();
+ }
+ // Remove distinct values
+ doDistinct(query);
+
+ // UNION / UNION ALL
+ if (query.unionallfn) {
+ // TODO Simplify this part of program
+ var ud, nd;
+ if (query.corresponding) {
+ if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = undefined;
+ ud = query.unionallfn(query.params);
+ } else {
+ if (!query.unionallfn.query.modifier) query.unionallfn.query.modifier = 'RECORDSET';
+ nd = query.unionallfn(query.params);
+ ud = [];
+ ilen = nd.data.length;
+ for (var i = 0; i < ilen; i++) {
+ var r = {};
+ for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {
+ r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
+ }
+ ud.push(r);
+ }
+ }
+ query.data = query.data.concat(ud);
+ } else if (query.unionfn) {
+ if (query.corresponding) {
+ if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'ARRAY';
+ ud = query.unionfn(query.params);
+ } else {
+ if (!query.unionfn.query.modifier) query.unionfn.query.modifier = 'RECORDSET';
+ nd = query.unionfn(query.params);
+ ud = [];
+ ilen = nd.data.length;
+ for (var i = 0; i < ilen; i++) {
+ r = {};
+ jlen = Math.min(query.columns.length, nd.columns.length);
+ for (var j = 0; j < jlen; j++) {
+ r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
+ }
+ ud.push(r);
+ }
+ }
+
+ query.data = arrayUnionDeep(query.data, ud);
+ } else if (query.exceptfn) {
+ if (query.corresponding) {
+ if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'ARRAY';
+ var ud = query.exceptfn(query.params);
+ } else {
+ if (!query.exceptfn.query.modifier) query.exceptfn.query.modifier = 'RECORDSET';
+ var nd = query.exceptfn(query.params);
+ var ud = [];
+ for (var i = 0, ilen = nd.data.length; i < ilen; i++) {
+ var r = {};
+ for (var j = Math.min(query.columns.length, nd.columns.length) - 1; 0 <= j; j--) {
+ r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
+ }
+ ud.push(r);
+ }
+ }
+
+ query.data = arrayExceptDeep(query.data, ud);
+ } else if (query.intersectfn) {
+ if (query.corresponding) {
+ if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = undefined;
+ ud = query.intersectfn(query.params);
+ } else {
+ if (!query.intersectfn.query.modifier) query.intersectfn.query.modifier = 'RECORDSET';
+ nd = query.intersectfn(query.params);
+ ud = [];
+ ilen = nd.data.length;
+ for (i = 0; i < ilen; i++) {
+ r = {};
+ jlen = Math.min(query.columns.length, nd.columns.length);
+ for (j = 0; j < jlen; j++) {
+ r[query.columns[j].columnid] = nd.data[i][nd.columns[j].columnid];
+ }
+ ud.push(r);
+ }
+ }
+
+ query.data = arrayIntersectDeep(query.data, ud);
+ }
+
+ // Ordering
+ if (query.orderfn) {
+ if (query.explain) var ms = Date.now();
+ query.data = query.data.sort(query.orderfn);
+ if (query.explain) {
+ query.explaination.push({
+ explid: query.explid++,
+ description: 'QUERY BY',
+ ms: Date.now() - ms,
+ });
+ }
+ }
+
+ // Reduce to limit and offset
+ doLimit(query);
+
+ // Remove Angular.js artifacts and other unnecessary columns
+ // Issue #25
+
+ // TODO: Check what artefacts rest from Angular.js
+ if (typeof angular != 'undefined') {
+ query.removeKeys.push('$$hashKey');
+ }
+
+ if (query.removeKeys.length > 0) {
+ var removeKeys = query.removeKeys;
+
+ // Remove from data
+ jlen = removeKeys.length;
+ if (jlen > 0) {
+ ilen = query.data.length;
+ for (i = 0; i < ilen; i++) {
+ for (j = 0; j < jlen; j++) {
+ delete query.data[i][removeKeys[j]];
+ }
+ }
+ }
+
+ // Remove from columns list
+ if (query.columns.length > 0) {
+ query.columns = query.columns.filter(function(column) {
+ var found = false;
+ removeKeys.forEach(function(key) {
+ if (column.columnid == key) found = true;
+ });
+ return !found;
+ });
+ }
+ }
+
+ if (typeof query.removeLikeKeys != 'undefined' && query.removeLikeKeys.length > 0) {
+ var removeLikeKeys = query.removeLikeKeys;
+
+ // Remove unused columns
+ // SELECT * REMOVE COLUMNS LIKE "%b"
+ for (var i = 0, ilen = query.data.length; i < ilen; i++) {
+ r = query.data[i];
+ for (var k in r) {
+ for (j = 0; j < query.removeLikeKeys.length; j++) {
+ if (alasql.utils.like(query.removeLikeKeys[j], k)) {
+ // if(k.match(query.removeLikeKeys[j])) {
+ delete r[k];
+ }
+ }
+ }
+ }
+
+ if (query.columns.length > 0) {
+ query.columns = query.columns.filter(function(column) {
+ var found = false;
+ removeLikeKeys.forEach(function(key) {
+ // if(column.columnid.match(key)) found = true;
+ if (alasql.utils.like(key, column.columnid)) {
+ found = true;
+ }
+ });
+ return !found;
+ });
+ }
+ }
+
+ if (query.pivotfn) query.pivotfn();
+ if (query.unpivotfn) query.unpivotfn();
+
+ if (query.intoallfn) {
+
+ // var res = query.intoallfn(query.columns,query.cb,query.A, query.B, alasql);
+ var res = query.intoallfn(query.columns, query.cb, query.params, query.alasql);
+
+ // if(query.cb) res = query.cb(res,query.A, query.B);
+
+ // debugger;
+ return res;
+ } else if (query.intofn) {
+ ilen = query.data.length;
+ for (i = 0; i < ilen; i++) {
+ query.intofn(query.data[i], i, query.params, query.alasql);
+ }
+
+ if (query.cb) query.cb(query.data.length, query.A, query.B);
+ return query.data.length;
+ } else {
+
+ res = query.data;
+ if (query.cb) res = query.cb(query.data, query.A, query.B);
+ return res;
+ }
+}
+
+// Limiting
+function doLimit(query) {
+
+ if (query.limit) {
+ var offset = 0;
+ if (query.offset) {
+ offset = query.offset | 0 || 0;
+ offset = offset < 0 ? 0 : offset;
+ }
+ var limit;
+ if (query.percent) {
+ limit = (((query.data.length * query.limit) / 100) | 0) + offset;
+ } else {
+ limit = (query.limit | 0) + offset;
+ }
+ query.data = query.data.slice(offset, limit);
+ }
+}
+
+// Distinct
+function doDistinct(query) {
+ if (query.distinct) {
+ var uniq = {};
+ // TODO: Speedup, because Object.keys is slow**
+ // TODO: Problem with DISTINCT on objects
+ var keys = Object.keys(query.data[0] || []);
+ for (var i = 0, ilen = query.data.length; i < ilen; i++) {
+ var uix = keys
+ .map(function(k) {
+ return query.data[i][k];
+ })
+ .join('`');
+ uniq[uix] = query.data[i];
+ }
+ query.data = [];
+ for (var key in uniq) {
+ query.data.push(uniq[key]);
+ }
+ }
+}
+
+// Optimization: preliminary indexation of joins
+var preIndex = function(query) {
+
+ // Loop over all sources
+ // Todo: make this loop smaller and more graspable
+ for (var k = 0, klen = query.sources.length; k < klen; k++) {
+ var source = query.sources[k];
+ delete source.ix;
+ // If there is indexation rule
+
+ if (k > 0 && source.optimization == 'ix' && source.onleftfn && source.onrightfn) {
+ // If there is no table.indices - create it
+ if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) {
+ if (!alasql.databases[source.databaseid].tables[source.tableid].indices)
+ query.database.tables[source.tableid].indices = {};
+ // Check if index already exists
+ var ixx =
+ alasql.databases[source.databaseid].tables[source.tableid].indices[
+ hash(source.onrightfns + '`' + source.srcwherefns)
+ ];
+ if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) {
+ source.ix = ixx;
+ }
+ }
+
+ if (!source.ix) {
+ source.ix = {};
+ // Walking over source data
+ var scope = {};
+ var i = 0;
+ var ilen = source.data.length;
+ var dataw;
+ // while(source.getfn i= query.sources.length) {
+ // Todo: check if this runs once too many
+
+ // Then apply where and select
+
+ if (query.wherefn(scope, query.params, alasql)) {
+
+ // var res = query.selectfn(scope, query.params, alasql);
+
+ // If there is a GROUP BY then pipe to groupping function
+ if (query.groupfn) {
+ query.groupfn(scope, query.params, alasql);
+ } else {
+ // query.qwerty = 999;
+
+ query.data.push(query.selectfn(scope, query.params, alasql));
+ }
+ }
+ } else if (query.sources[h].applyselect) {
+
+ var source = query.sources[h];
+ source.applyselect(
+ query.params,
+ function(data) {
+ if (data.length > 0) {
+
+ for (var i = 0; i < data.length; i++) {
+ scope[source.alias] = data[i];
+ doJoin(query, scope, h + 1);
+ }
+ } else {
+ if (source.applymode == 'OUTER') {
+ scope[source.alias] = {};
+ doJoin(query, scope, h + 1);
+ }
+ }
+ },
+ scope
+ );
+
+ } else {
+ // STEP 1
+
+ var source = query.sources[h];
+ var nextsource = query.sources[h + 1];
+
+ // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "RIGHT"
+ // || source.joinmode == "OUTER" || source.joinmode == "SEMI") {
+ // Todo: check if this is smart
+ if (true) {
+ //source.joinmode != "ANTI") {
+
+ var tableid = source.alias || source.tableid;
+ var pass = false; // For LEFT JOIN
+ var data = source.data;
+ var opt = false;
+
+ // Reduce data for looping if there is optimization hint
+ if (!source.getfn || (source.getfn && !source.dontcache)) {
+ if (
+ source.joinmode != 'RIGHT' &&
+ source.joinmode != 'OUTER' &&
+ source.joinmode != 'ANTI' &&
+ source.optimization == 'ix'
+ ) {
+ data = source.ix[source.onleftfn(scope, query.params, alasql)] || [];
+ opt = true;
+
+ }
+ }
+
+ // Main cycle
+ var i = 0;
+ if (typeof data == 'undefined') {
+ throw new Error('Data source number ' + h + ' in undefined');
+ }
+ var ilen = data.length;
+ var dataw;
+
+ while (
+ (dataw = data[i]) ||
+ (!opt && (source.getfn && (dataw = source.getfn(i)))) ||
+ i < ilen
+ ) {
+ if (!opt && source.getfn && !source.dontcache) data[i] = dataw;
+
+ scope[tableid] = dataw;
+ // Reduce with ON and USING clause
+ if (
+ !source.onleftfn ||
+ source.onleftfn(scope, query.params, alasql) ==
+ source.onrightfn(scope, query.params, alasql)
+ ) {
+ // For all non-standard JOINs like a-b=0
+ if (source.onmiddlefn(scope, query.params, alasql)) {
+ // Recursively call new join
+ // if(source.joinmode == "LEFT" || source.joinmode == "INNER" || source.joinmode == "OUTER" || source.joinmode == "RIGHT" ) {
+ if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') {
+
+ doJoin(query, scope, h + 1);
+ }
+
+ // if(source.data[i].f = 200) debugger;
+
+ // if(source.joinmode == "RIGHT" || source.joinmode == "ANTI" || source.joinmode == "OUTER") {
+ if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') {
+ dataw._rightjoin = true;
+ }
+
+ // for LEFT JOIN
+ pass = true;
+ }
+ }
+ i++;
+ }
+
+ // Additional join for LEFT JOINS
+ if (
+ (source.joinmode == 'LEFT' ||
+ source.joinmode == 'OUTER' ||
+ source.joinmode == 'SEMI') &&
+ !pass
+ ) {
+ // Clear the scope after the loop
+ scope[tableid] = {};
+ doJoin(query, scope, h + 1);
+ }
+ }
+
+ // When there is no records
+ // if(data.length == 0 && query.groupfn) {
+ // scope[tableid] = undefined;
+ // doJoin(query,scope,h+1);
+ // }
+
+ // STEP 2
+
+ if (h == 0) {
+ for (var nh = h + 1; nh < query.sources.length; nh++) {
+ if (
+ nextsource.joinmode == 'OUTER' ||
+ nextsource.joinmode == 'RIGHT' ||
+ nextsource.joinmode == 'ANTI'
+ ) {
+ scope[source.alias] = {};
+
+ var j = 0;
+ var jlen = nextsource.data.length;
+ var dataw;
+
+ while (
+ (dataw = nextsource.data[j]) ||
+ (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
+ j < jlen
+ ) {
+ if (nextsource.getfn && !nextsource.dontcache) {
+ nextsource.data[j] = dataw;
+ }
+
+ if (dataw._rightjoin) {
+ delete dataw._rightjoin;
+ } else {
+ // delete dataw._rightjoin;
+
+ scope[nextsource.alias] = dataw;
+ doJoin(query, scope, nh + 1);
+ }
+ j++;
+ }
+ // debugger;
+ } else {
+
+ }
+ source = query.sources[nh];
+ nextsource = query.sources[nh + 1];
+ }
+ }
+
+ scope[tableid] = undefined;
+
+ }
+}
+
+function swapSources(query, h) {
+ var source = query.sources[h];
+ var nextsource = query.sources[h + 1];
+
+ var onleftfn = source.onleftfn;
+ var onleftfns = source.onleftfns;
+ var onrightfn = source.onrightfn;
+ var onrightfns = source.onrightfns;
+ var optimization = source.optimization;
+
+ source.onleftfn = nextsource.onrightfn;
+ source.onleftfns = nextsource.onrightfns;
+ source.onrightfn = nextsource.onleftfn;
+ source.onrightfns = nextsource.onleftfns;
+ source.optimization = nextsource.optimization;
+
+ nextsource.onleftfn = onleftfn;
+ nextsource.onleftfns = onleftfns;
+ nextsource.onrightfn = onrightfn;
+ nextsource.onrightfns = onrightfns;
+ nextsource.optimization = optimization;
+
+ query.sources[h] = nextsource;
+ query.sources[h + 1] = source;
+}
+
+/*
+//
+// Select run-time part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+//
+// Main part of SELECT procedure
+//
+
+/* global yy */
+
+yy.Select = function(params) {
+ return yy.extend(this, params);
+};
+yy.Select.prototype.toString = function() {
+ var s;
+ s = '';
+ if (this.explain) {
+ s += 'EXPLAIN ';
+ }
+ s += 'SELECT ';
+ if (this.modifier) {
+ s += this.modifier + ' ';
+ }
+ if (this.distinct) {
+ s += 'DISTINCT ';
+ }
+ if (this.top) {
+ s += 'TOP ' + this.top.value + ' ';
+ if (this.percent) {
+ s += 'PERCENT ';
+ }
+ }
+ s += this.columns
+ .map(function(col) {
+ var s;
+ s = col.toString();
+ if (typeof col.as !== 'undefined') {
+ s += ' AS ' + col.as;
+ }
+ return s;
+ })
+ .join(', ');
+ if (this.from) {
+ s +=
+ ' FROM ' +
+ this.from
+ .map(function(f) {
+ var ss;
+ ss = f.toString();
+ if (f.as) {
+ ss += ' AS ' + f.as;
+ }
+ return ss;
+ })
+ .join(',');
+ }
+ if (this.joins) {
+ s += this.joins
+ .map(function(jn) {
+ var ss;
+ ss = ' ';
+ if (jn.joinmode) {
+ ss += jn.joinmode + ' ';
+ }
+ if (jn.table) {
+ ss += 'JOIN ' + jn.table.toString();
+ } else if (jn.select) {
+ ss += 'JOIN (' + jn.select.toString() + ')';
+ } else if (jn instanceof alasql.yy.Apply) {
+ ss += jn.toString();
+ } else {
+ throw new Error('Wrong type in JOIN mode');
+ }
+ if (jn.as) {
+ ss += ' AS ' + jn.as;
+ }
+ if (jn.using) {
+ ss += ' USING ' + jn.using.toString();
+ }
+ if (jn.on) {
+ ss += ' ON ' + jn.on.toString();
+ }
+ return ss;
+ })
+ .join('');
+ }
+ if (this.where) {
+ s += ' WHERE ' + this.where.toString();
+ }
+ if (this.group && this.group.length > 0) {
+ s +=
+ ' GROUP BY ' +
+ this.group
+ .map(function(grp) {
+ return grp.toString();
+ })
+ .join(', ');
+ }
+ if (this.having) {
+ s += ' HAVING ' + this.having.toString();
+ }
+ if (this.order && this.order.length > 0) {
+ s +=
+ ' ORDER BY ' +
+ this.order
+ .map(function(ord) {
+ return ord.toString();
+ })
+ .join(', ');
+ }
+ if (this.limit) {
+ s += ' LIMIT ' + this.limit.value;
+ }
+ if (this.offset) {
+ s += ' OFFSET ' + this.offset.value;
+ }
+ if (this.union) {
+ s += ' UNION ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.union.toString();
+ }
+ if (this.unionall) {
+ s +=
+ ' UNION ALL ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.unionall.toString();
+ }
+ if (this.except) {
+ s += ' EXCEPT ' + (this.corresponding ? 'CORRESPONDING ' : '') + this.except.toString();
+ }
+ if (this.intersect) {
+ s +=
+ ' INTERSECT ' +
+ (this.corresponding ? 'CORRESPONDING ' : '') +
+ this.intersect.toString();
+ }
+ return s;
+};
+
+/**
+ Select statement in expression
+ */
+yy.Select.prototype.toJS = function(context) {
+
+ // if(this.expression.reduced) return 'true';
+ // return this.expression.toJS(context, tableid, defcols);
+
+ // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
+
+ var s =
+ 'alasql.utils.flatArray(this.queriesfn[' +
+ (this.queriesidx - 1) +
+ '](this.params,null,' +
+ context +
+ '))[0]';
+
+ return s;
+};
+
+// Compile SELECT statement
+yy.Select.prototype.compile = function(databaseid, params) {
+ var db = alasql.databases[databaseid];
+ // Create variable for query
+ var query = new Query();
+
+ // Array with columns to be removed
+ query.removeKeys = [];
+ query.aggrKeys = [];
+
+ query.explain = this.explain; // Explain
+ query.explaination = [];
+ query.explid = 1;
+
+ query.modifier = this.modifier;
+
+ query.database = db;
+ // 0. Precompile whereexists
+ this.compileWhereExists(query);
+
+ // 0. Precompile queries for IN, NOT IN, ANY and ALL operators
+ this.compileQueries(query);
+
+ query.defcols = this.compileDefCols(query, databaseid);
+
+ // 1. Compile FROM clause
+ query.fromfn = this.compileFrom(query);
+
+ // 2. Compile JOIN clauses
+ if (this.joins) {
+ this.compileJoins(query);
+ }
+
+ // todo?: 3. Compile SELECT clause
+
+ // For ROWNUM()
+ query.rownums = [];
+
+ this.compileSelectGroup0(query);
+
+ if (this.group || query.selectGroup.length > 0) {
+ query.selectgfns = this.compileSelectGroup1(query);
+ } else {
+ query.selectfns = this.compileSelect1(query, params);
+ }
+
+ // Remove columns clause
+ this.compileRemoveColumns(query);
+
+ // 5. Optimize WHERE and JOINS
+ if (this.where) {
+ this.compileWhereJoins(query);
+ }
+
+ // 4. Compile WHERE clause
+ query.wherefn = this.compileWhere(query);
+
+ // 6. Compile GROUP BY
+ if (this.group || query.selectGroup.length > 0) {
+ query.groupfn = this.compileGroup(query);
+ }
+
+ // 6. Compile HAVING
+ if (this.having) {
+ query.havingfn = this.compileHaving(query);
+ }
+
+ // 8. Compile ORDER BY clause
+ if (this.order) {
+ query.orderfn = this.compileOrder(query);
+ }
+
+ if (this.group || query.selectGroup.length > 0) {
+ query.selectgfn = this.compileSelectGroup2(query);
+ } else {
+ query.selectfn = this.compileSelect2(query);
+ }
+
+ // 7. Compile DISTINCT, LIMIT and OFFSET
+ query.distinct = this.distinct;
+
+ // 9. Compile PIVOT clause
+ if (this.pivot) query.pivotfn = this.compilePivot(query);
+ if (this.unpivot) query.pivotfn = this.compileUnpivot(query);
+
+ // 10. Compile TOP/LIMIT/OFFSET/FETCH cleuse
+ if (this.top) {
+ query.limit = this.top.value;
+ } else if (this.limit) {
+ query.limit = this.limit.value;
+ if (this.offset) {
+ query.offset = this.offset.value;
+ }
+ }
+
+ query.percent = this.percent;
+
+ // 9. Compile ordering function for UNION and UNIONALL
+ query.corresponding = this.corresponding; // If CORRESPONDING flag exists
+ if (this.union) {
+ query.unionfn = this.union.compile(databaseid);
+ if (this.union.order) {
+ query.orderfn = this.union.compileOrder(query);
+ } else {
+ query.orderfn = null;
+ }
+ } else if (this.unionall) {
+ query.unionallfn = this.unionall.compile(databaseid);
+ if (this.unionall.order) {
+ query.orderfn = this.unionall.compileOrder(query);
+ } else {
+ query.orderfn = null;
+ }
+ } else if (this.except) {
+ query.exceptfn = this.except.compile(databaseid);
+ if (this.except.order) {
+ query.orderfn = this.except.compileOrder(query);
+ } else {
+ query.orderfn = null;
+ }
+ } else if (this.intersect) {
+ query.intersectfn = this.intersect.compile(databaseid);
+ if (this.intersect.order) {
+ query.intersectfn = this.intersect.compileOrder(query);
+ } else {
+ query.orderfn = null;
+ }
+ }
+
+ // SELECT INTO
+ if (this.into) {
+ if (this.into instanceof yy.Table) {
+ //
+ // Save into the table in database
+ //
+ if (
+ alasql.options.autocommit &&
+ alasql.databases[this.into.databaseid || databaseid].engineid
+ ) {
+ // For external database when AUTOCOMMIT is ONs
+ query.intoallfns =
+ 'return alasql.engines["' +
+ alasql.databases[this.into.databaseid || databaseid].engineid +
+ '"]' +
+ '.intoTable("' +
+ (this.into.databaseid || databaseid) +
+ '","' +
+ this.into.tableid +
+ '",this.data, columns, cb);';
+ } else {
+ // Into AlaSQL tables
+ query.intofns =
+ "alasql.databases['" +
+ (this.into.databaseid || databaseid) +
+ "'].tables" +
+ "['" +
+ this.into.tableid +
+ "'].data.push(r);";
+ }
+ } else if (this.into instanceof yy.VarValue) {
+ //
+ // Save into local variable
+ // SELECT * INTO @VAR1 FROM ?
+ //
+ query.intoallfns =
+ 'alasql.vars["' +
+ this.into.variable +
+ '"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;';
+ } else if (this.into instanceof yy.FuncValue) {
+ //
+ // If this is INTO() function, then call it
+ // with one or two parameters
+ //
+ var qs = "return alasql.into['" + this.into.funcid.toUpperCase() + "'](";
+ if (this.into.args && this.into.args.length > 0) {
+ qs += this.into.args[0].toJS() + ',';
+ if (this.into.args.length > 1) {
+ qs += this.into.args[1].toJS() + ',';
+ } else {
+ qs += 'undefined,';
+ }
+ } else {
+ qs += 'undefined, undefined,';
+ }
+ query.intoallfns = qs + 'this.data,columns,cb)';
+
+ } else if (this.into instanceof yy.ParamValue) {
+ //
+ // Save data into parameters array
+ // like alasql('SELECT * INTO ? FROM ?',[outdata,srcdata]);
+ //
+ query.intofns = "params['" + this.into.param + "'].push(r)";
+ }
+
+ if (query.intofns) {
+ // Create intofn function
+
+ query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns);
+ } else if (query.intoallfns) {
+ // Create intoallfn function
+
+ query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns);
+ }
+ }
+
+ // Now, compile all togeather into one function with query object in scope
+ var statement = function(params, cb, oldscope) {
+ query.params = params;
+ // Note the callback function has the data and error reversed due to existing code in promiseExec which has the
+ // err and data swapped. This trickles down into alasql.exec and further. Rather than risk breaking the whole thing,
+ // the (data, err) standard is maintained here.
+ var res1 = queryfn(query, oldscope, function(res, err) {
+ if (err) {
+ return cb(err, null);
+ }
+ if (query.rownums.length > 0) {
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ for (var j = 0, jlen = query.rownums.length; j < jlen; j++) {
+ res[i][query.rownums[j]] = i + 1;
+ }
+ }
+ }
+
+ var res2 = modify(query, res);
+
+ if (cb) {
+ cb(res2);
+ }
+
+ return res2;
+ });
+
+ // if(typeof res1 != 'undefined') res1 = modify(query,res1);
+
+ return res1;
+ };
+
+ // statement.dbversion = ;
+
+ statement.query = query;
+ return statement;
+};
+
+/**
+ Modify res according modifier
+ @function
+ @param {object} query Query object
+ @param res {object|number|string|boolean} res Data to be converted
+ */
+function modify(query, res) {
+ // jshint ignore:line
+
+ /* If source is a primitive value then return it */
+ if (
+ typeof res === 'undefined' ||
+ typeof res === 'number' ||
+ typeof res === 'string' ||
+ typeof res === 'boolean'
+ ) {
+ return res;
+ }
+
+ var modifier = query.modifier || alasql.options.modifier;
+ var columns = query.columns;
+ if (typeof columns === 'undefined' || columns.length == 0) {
+ // Try to create columns
+ if (res.length > 0) {
+ var allcol = {};
+ for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) {
+ for (var key in res[i]) {
+ allcol[key] = true;
+ }
+ }
+
+ columns = Object.keys(allcol).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ } else {
+ // Cannot recognize columns
+ columns = [];
+ }
+ }
+
+ if (modifier === 'VALUE') {
+
+ if (res.length > 0) {
+ var key;
+ if (columns && columns.length > 0) {
+ key = columns[0].columnid;
+ } else {
+ key = Object.keys(res[0])[0];
+ }
+ res = res[0][key];
+ } else {
+ res = undefined;
+ }
+ } else if (modifier === 'ROW') {
+ if (res.length > 0) {
+ var key;
+ var a = [];
+ for (var key in res[0]) {
+ a.push(res[0][key]);
+ }
+ res = a;
+ } else {
+ res = undefined;
+ }
+ } else if (modifier === 'COLUMN') {
+ var ar = [];
+ if (res.length > 0) {
+ var key;
+ if (columns && columns.length > 0) {
+ key = columns[0].columnid;
+ } else {
+ key = Object.keys(res[0])[0];
+ }
+
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ ar.push(res[i][key]);
+ }
+ }
+ res = ar;
+ } else if (modifier === 'MATRIX') {
+ // Returns square matrix of rows
+ var ar = [];
+ for (var i = 0; i < res.length; i++) {
+ var a = [];
+ var r = res[i];
+ for (var j = 0; j < columns.length; j++) {
+ a.push(r[columns[j].columnid]);
+ }
+ ar.push(a);
+ }
+ res = ar;
+ } else if (modifier === 'INDEX') {
+ var ar = {};
+ var key, val;
+ if (columns && columns.length > 0) {
+ key = columns[0].columnid;
+ val = columns[1].columnid;
+ } else {
+ var okeys = Object.keys(res[0]);
+ key = okeys[0];
+ val = okeys[1];
+ }
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ ar[res[i][key]] = res[i][val];
+ }
+ res = ar;
+ // res = arrayOfArrays(res);
+ } else if (modifier === 'RECORDSET') {
+ res = new alasql.Recordset({columns: columns, data: res});
+ // res = arrayOfArrays(res);
+ } else if (modifier === 'TEXTSTRING') {
+ var key;
+ if (columns && columns.length > 0) {
+ key = columns[0].columnid;
+ } else {
+ key = Object.keys(res[0])[0];
+ }
+
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ res[i] = res[i][key];
+ }
+ res = res.join('\n');
+ // res = arrayOfArrays(res);
+ }
+ return res;
+}
+
+yy.Select.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+ // throw new Error('Insert statement is should be compiled')
+};
+
+/*
+//
+// EXISTS and other subqueries functions functions for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.ExistsValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.ExistsValue.prototype.toString = function() {
+ return 'EXISTS(' + this.value.toString() + ')';
+};
+
+yy.ExistsValue.prototype.toType = function() {
+ return 'boolean';
+};
+
+yy.ExistsValue.prototype.toJS = function(context, tableid, defcols) {
+
+ return 'this.existsfn[' + this.existsidx + '](params,null,' + context + ').data.length';
+};
+
+yy.Select.prototype.compileWhereExists = function(query) {
+ if (!this.exists) return;
+ query.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(query.database.databaseid);
+
+ // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+};
+
+yy.Select.prototype.compileQueries = function(query) {
+ if (!this.queries) return;
+ query.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(query.database.databaseid);
+
+ // if(!nq.query) nq.query = {};
+ nq.query.modifier = 'RECORDSET';
+ // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+};
+
+//
+// Prepare subqueries and exists
+//
+alasql.precompile = function(statement, databaseid, params) {
+
+ if (!statement) return;
+ statement.params = params;
+ if (statement.queries) {
+
+ statement.queriesfn = statement.queries.map(function(q) {
+ var nq = q.compile(databaseid || statement.database.databaseid);
+
+ // nq.query.modifier = undefined;
+ // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (statement.exists) {
+
+ statement.existsfn = statement.exists.map(function(ex) {
+ var nq = ex.compile(databaseid || statement.database.databaseid);
+
+ // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ // if(!nq.query.modifier) nq.query.modifier = 'ARRAY';
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+};
+
+/*
+//
+// Select compiler part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global yy, alasql, Mongo, returnTrue */
+
+yy.Select.prototype.compileFrom = function(query) {
+
+ var self = this;
+ query.sources = [];
+ // var tableid = this.from[0].tableid;
+ // var as = '';
+ // if(self.from[0].as) as = this.from[0].as;
+
+ query.aliases = {};
+ if (!self.from) return;
+
+ self.from.forEach(function(tq) {
+
+ var ps = '';
+
+ var alias = tq.as || tq.tableid;
+
+ if (tq instanceof yy.Table) {
+
+ query.aliases[alias] = {
+ tableid: tq.tableid,
+ databaseid: tq.databaseid || query.database.databaseid,
+ type: 'table',
+ };
+ } else if (tq instanceof yy.Select) {
+ query.aliases[alias] = {type: 'subquery'};
+ } else if (tq instanceof yy.Search) {
+ query.aliases[alias] = {type: 'subsearch'};
+ } else if (tq instanceof yy.ParamValue) {
+ query.aliases[alias] = {type: 'paramvalue'};
+ } else if (tq instanceof yy.FuncValue) {
+ query.aliases[alias] = {type: 'funcvalue'};
+ } else if (tq instanceof yy.VarValue) {
+ query.aliases[alias] = {type: 'varvalue'};
+ } else if (tq instanceof yy.FromData) {
+ query.aliases[alias] = {type: 'fromdata'};
+ } else if (tq instanceof yy.Json) {
+ query.aliases[alias] = {type: 'json'};
+ } else if (tq.inserted) {
+ query.aliases[alias] = {type: 'inserted'};
+ } else {
+ throw new Error('Wrong table at FROM');
+ }
+
+ var source = {
+ alias: alias,
+ databaseid: tq.databaseid || query.database.databaseid,
+ tableid: tq.tableid,
+ joinmode: 'INNER',
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ // columns: []
+ };
+
+ if (tq instanceof yy.Table) {
+ // Get columns from table
+ source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;
+
+ if (
+ alasql.options.autocommit &&
+ alasql.databases[source.databaseid].engineid &&
+ !alasql.databases[source.databaseid].tables[source.tableid].view
+ ) {
+
+ // TODO -- make view for external engine
+ source.datafn = function(query, params, cb, idx, alasql) {
+ return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(
+ source.databaseid,
+ source.tableid,
+ cb,
+ idx,
+ query
+ );
+ };
+ } else if (alasql.databases[source.databaseid].tables[source.tableid].view) {
+ source.datafn = function(query, params, cb, idx, alasql) {
+ var res = alasql.databases[source.databaseid].tables[source.tableid].select(
+ params
+ );
+ if (cb) res = cb(res, idx, query);
+ return res;
+ };
+ } else {
+
+ source.datafn = function(query, params, cb, idx, alasql) {
+ /*
+
+*/
+ var res = alasql.databases[source.databaseid].tables[source.tableid].data;
+
+ if (cb) res = cb(res, idx, query);
+
+ return res;
+ // return alasql.databases[source.databaseid].tables[source.tableid].data;
+ };
+ }
+ } else if (tq instanceof yy.Select) {
+ source.subquery = tq.compile(query.database.databaseid);
+ if (typeof source.subquery.query.modifier === 'undefined') {
+ source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets
+ }
+ source.columns = source.subquery.query.columns;
+
+ // tq.columns;
+
+ source.datafn = function(query, params, cb, idx, alasql) {
+ // return source.subquery(query.params, cb, idx, query);
+ var res;
+ source.subquery(query.params, function(data) {
+ res = data.data;
+ if (cb) res = cb(res, idx, query);
+ return res;
+ // return data.data;
+ });
+
+ return res;
+ };
+ } else if (tq instanceof yy.Search) {
+ source.subsearch = tq;
+ source.columns = [];
+
+ source.datafn = function(query, params, cb, idx, alasql) {
+ // return source.subquery(query.params, cb, idx, query);
+ var res;
+ source.subsearch.execute(query.database.databaseid, query.params, function(data) {
+ res = data;
+ if (cb) res = cb(res, idx, query);
+ return res;
+ // return data.data;
+ });
+
+ return res;
+ };
+ } else if (tq instanceof yy.ParamValue) {
+ ps = "var res = alasql.prepareFromData(params['" + tq.param + "']";
+
+ if (tq.array) ps += ',true';
+ ps += ');if(cb)res=cb(res,idx,query);return res';
+ source.datafn = new Function('query,params,cb,idx,alasql', ps);
+ } else if (tq.inserted) {
+ ps = 'var res = alasql.prepareFromData(alasql.inserted';
+ if (tq.array) ps += ',true';
+ ps += ');if(cb)res=cb(res,idx,query);return res';
+ source.datafn = new Function('query,params,cb,idx,alasql', ps);
+ } else if (tq instanceof yy.Json) {
+ ps = 'var res = alasql.prepareFromData(' + tq.toJS();
+
+ if (tq.array) ps += ',true';
+ ps += ');if(cb)res=cb(res,idx,query);return res';
+ source.datafn = new Function('query,params,cb,idx,alasql', ps);
+ } else if (tq instanceof yy.VarValue) {
+ ps = "var res = alasql.prepareFromData(alasql.vars['" + tq.variable + "']";
+
+ if (tq.array) ps += ',true';
+ ps += ');if(cb)res=cb(res,idx,query);return res';
+ source.datafn = new Function('query,params,cb,idx,alasql', ps);
+ } else if (tq instanceof yy.FuncValue) {
+ ps = "var res=alasql.from['" + tq.funcid.toUpperCase() + "'](";
+
+ if (tq.args && tq.args.length > 0) {
+ if (tq.args[0]) {
+ ps += tq.args[0].toJS('query.oldscope') + ',';
+ } else {
+ ps += 'null,';
+ }
+ if (tq.args[1]) {
+ ps += tq.args[1].toJS('query.oldscope') + ',';
+ } else {
+ ps += 'null,';
+ }
+ } else {
+ ps += 'null,null,';
+ }
+ ps += 'cb,idx,query';
+ ps += ');/*if(cb)res=cb(res,idx,query);*/return res';
+
+ source.datafn = new Function('query, params, cb, idx, alasql', ps);
+ } else if (tq instanceof yy.FromData) {
+ source.datafn = function(query, params, cb, idx, alasql) {
+ var res = tq.data;
+ if (cb) res = cb(res, idx, query);
+ return res;
+ };
+ } else {
+ throw new Error('Wrong table at FROM');
+ }
+ // source.data = alasql.databases[source.databaseid].tables[source.tableid].data;
+ query.sources.push(source);
+ });
+ // TODO Add joins
+ query.defaultTableid = query.sources[0].alias;
+
+};
+
+alasql.prepareFromData = function(data, array) {
+
+ var i, ilen;
+ var res = data;
+ if (typeof data === 'string') {
+ res = data.split(/\r?\n/);
+ if (array) {
+ for (i = 0, ilen = res.length; i < ilen; i++) {
+ res[i] = [res[i]];
+ }
+ }
+ } else if (array) {
+ res = [];
+ for (i = 0, ilen = data.length; i < ilen; i++) {
+ res.push([data[i]]);
+ }
+
+ } else if (typeof data === 'object' && !Array.isArray(data)) {
+ // } else if(typeof data == 'object' && !(typeof data.length == 'undefined')) {
+ if (
+ typeof Mongo !== 'undefined' &&
+ typeof Mongo.Collection !== 'undefined' &&
+ data instanceof Mongo.Collection
+ ) {
+ res = data.find().fetch();
+ } else {
+ res = [];
+ for (var key in data) {
+ if (data.hasOwnProperty(key)) res.push([key, data[key]]);
+ }
+ }
+
+ }
+
+ return res;
+};
+
+/*
+//
+// Select compiler part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// SELECT Compile functions
+
+/* global yy, alasql, returnTrue, arrayIntersect */
+
+// Compile JOIN caluese
+yy.Select.prototype.compileJoins = function(query) {
+
+ // debugger;
+ var self = this;
+
+ this.joins.forEach(function(jn) {
+ // Test CROSS-JOIN
+ var tq, ps, source;
+ if (jn.joinmode === 'CROSS') {
+ if (jn.using || jn.on) {
+ throw new Error('CROSS JOIN cannot have USING or ON clauses');
+ } else {
+ jn.joinmode = 'INNER';
+ }
+ }
+
+ if (jn instanceof yy.Apply) {
+
+ source = {
+ alias: jn.as,
+ applymode: jn.applymode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ columns: [], // TODO check this
+ };
+ source.applyselect = jn.select.compile(query.database.databaseid);
+ source.columns = source.applyselect.query.columns;
+
+ source.datafn = function(query, params, cb, idx, alasql) {
+ var res;
+ if (cb) res = cb(res, idx, query);
+ return res;
+ };
+
+ query.sources.push(source);
+
+ return;
+ }
+
+ if (jn.table) {
+ tq = jn.table;
+ source = {
+ alias: jn.as || tq.tableid,
+ databaseid: tq.databaseid || query.database.databaseid,
+ tableid: tq.tableid,
+ joinmode: jn.joinmode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ columns: [],
+ };
+ //
+
+ if (!alasql.databases[source.databaseid].tables[source.tableid]) {
+ throw new Error(
+ "Table '" +
+ source.tableid +
+ "' is not exists in database '" +
+ source.databaseid +
+ "'"
+ );
+ }
+
+ source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns;
+
+ // source.data = query.database.tables[source.tableid].data;
+ if (alasql.options.autocommit && alasql.databases[source.databaseid].engineid) {
+
+ source.datafn = function(query, params, cb, idx, alasql) {
+
+ return alasql.engines[alasql.databases[source.databaseid].engineid].fromTable(
+ source.databaseid,
+ source.tableid,
+ cb,
+ idx,
+ query
+ );
+ };
+ } else if (alasql.databases[source.databaseid].tables[source.tableid].view) {
+ source.datafn = function(query, params, cb, idx, alasql) {
+ var res = alasql.databases[source.databaseid].tables[source.tableid].select(
+ params
+ );
+ if (cb) res = cb(res, idx, query);
+ return res;
+ };
+ } else {
+ source.datafn = function(query, params, cb, idx, alasql) {
+ var res = alasql.databases[source.databaseid].tables[source.tableid].data;
+ if (cb) res = cb(res, idx, query);
+ return res;
+ };
+ }
+
+ // var alias = jn.as || tq.tableid;
+ // if(tq) {
+ query.aliases[source.alias] = {
+ tableid: tq.tableid,
+ databaseid: tq.databaseid || query.database.databaseid,
+ };
+ // }
+ } else if (jn.select) {
+ tq = jn.select;
+ source = {
+ alias: jn.as,
+ // databaseid: jn.databaseid || query.database.databaseid,
+ // tableid: tq.tableid,
+ joinmode: jn.joinmode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ columns: [],
+ };
+
+ source.subquery = tq.compile(query.database.databaseid);
+ if (typeof source.subquery.query.modifier === 'undefined') {
+ source.subquery.query.modifier = 'RECORDSET'; // Subqueries always return recordsets
+ }
+ source.columns = source.subquery.query.columns;
+
+ // if(jn instanceof yy.Apply) {
+ source.datafn = function(query, params, cb, idx, alasql) {
+ // return cb(null,idx,alasql);
+ return source.subquery(query.params, null, cb, idx).data;
+ };
+ // } else {
+ // source.datafn = function(query, params, cb, idx, alasql) {
+ // return source.subquery(query.params, null, cb, idx);
+ // }
+ // }
+ query.aliases[source.alias] = {type: 'subquery'};
+ } else if (jn.param) {
+ source = {
+ alias: jn.as,
+ // databaseid: jn.databaseid || query.database.databaseid,
+ // tableid: tq.tableid,
+ joinmode: jn.joinmode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ };
+ // source.data = ;
+ var jnparam = jn.param.param;
+
+ ps = "var res=alasql.prepareFromData(params['" + jnparam + "']";
+ if (jn.array) ps += ',true';
+ ps += ');if(cb)res=cb(res, idx, query);return res';
+
+ source.datafn = new Function('query,params,cb,idx, alasql', ps);
+ query.aliases[source.alias] = {type: 'paramvalue'};
+ } else if (jn.variable) {
+ source = {
+ alias: jn.as,
+ // databaseid: jn.databaseid || query.database.databaseid,
+ // tableid: tq.tableid,
+ joinmode: jn.joinmode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ };
+ // source.data = ;
+ // var jnparam = jn.param.param;
+
+ ps = "var res=alasql.prepareFromData(alasql.vars['" + jn.variable + "']";
+ if (jn.array) ps += ',true';
+ ps += ');if(cb)res=cb(res, idx, query);return res';
+
+ source.datafn = new Function('query,params,cb,idx, alasql', ps);
+ query.aliases[source.alias] = {type: 'varvalue'};
+ } else if (jn.func) {
+ source = {
+ alias: jn.as,
+ // databaseid: jn.databaseid || query.database.databaseid,
+ // tableid: tq.tableid,
+ joinmode: jn.joinmode,
+ onmiddlefn: returnTrue,
+ srcwherefns: '', // for optimization
+ srcwherefn: returnTrue,
+ };
+ // source.data = ;
+
+ var s = "var res=alasql.from['" + jn.func.funcid.toUpperCase() + "'](";
+
+ var args = jn.func.args;
+ if (args && args.length > 0) {
+ if (args[0]) {
+ s += args[0].toJS('query.oldscope') + ',';
+ } else {
+ s += 'null,';
+ }
+ if (args[1]) {
+ s += args[1].toJS('query.oldscope') + ',';
+ } else {
+ s += 'null,';
+ }
+ } else {
+ s += 'null,null,';
+ }
+ s += 'cb,idx,query';
+ s += ');/*if(cb)res=cb(res,idx,query);*/return res';
+
+ source.datafn = new Function('query, params, cb, idx, alasql', s);
+
+ query.aliases[source.alias] = {type: 'funcvalue'};
+ }
+
+ var alias = source.alias;
+
+ // Test NATURAL-JOIN
+ if (jn.natural) {
+ if (jn.using || jn.on) {
+ throw new Error('NATURAL JOIN cannot have USING or ON clauses');
+ } else {
+ // source.joinmode == "INNER";
+ if (query.sources.length > 0) {
+ var prevSource = query.sources[query.sources.length - 1];
+ var prevTable =
+ alasql.databases[prevSource.databaseid].tables[prevSource.tableid];
+ var table = alasql.databases[source.databaseid].tables[source.tableid];
+
+ if (prevTable && table) {
+ var c1 = prevTable.columns.map(function(col) {
+ return col.columnid;
+ });
+ var c2 = table.columns.map(function(col) {
+ return col.columnid;
+ });
+ jn.using = arrayIntersect(c1, c2).map(function(colid) {
+ return {columnid: colid};
+ });
+
+ } else {
+ throw new Error(
+ 'In this version of Alasql NATURAL JOIN ' +
+ 'works for tables with predefined columns only'
+ );
+ }
+ }
+ }
+ }
+
+ if (jn.using) {
+ prevSource = query.sources[query.sources.length - 1];
+
+ source.onleftfns = jn.using
+ .map(function(col) {
+
+ return (
+ "p['" +
+ (prevSource.alias || prevSource.tableid) +
+ "']['" +
+ col.columnid +
+ "']"
+ );
+ })
+ .join('+"`"+');
+
+ source.onleftfn = new Function('p,params,alasql', 'var y;return ' + source.onleftfns);
+
+ source.onrightfns = jn.using
+ .map(function(col) {
+ return "p['" + (source.alias || source.tableid) + "']['" + col.columnid + "']";
+ })
+ .join('+"`"+');
+ source.onrightfn = new Function('p,params,alasql', 'var y;return ' + source.onrightfns);
+ source.optimization = 'ix';
+
+ } else if (jn.on) {
+
+ if (jn.on instanceof yy.Op && jn.on.op === '=' && !jn.on.allsome) {
+
+ source.optimization = 'ix';
+
+ var lefts = '';
+ var rights = '';
+ var middles = '';
+ var middlef = false;
+ // Test right and left sides
+ var ls = jn.on.left.toJS('p', query.defaultTableid, query.defcols);
+ var rs = jn.on.right.toJS('p', query.defaultTableid, query.defcols);
+
+ if (
+ ls.indexOf("p['" + alias + "']") > -1 &&
+ !(rs.indexOf("p['" + alias + "']") > -1)
+ ) {
+ if (
+ (ls.match(/p\['.*?'\]/g) || []).every(function(s) {
+ return s === "p['" + alias + "']";
+ })
+ ) {
+ rights = ls;
+ } else {
+ middlef = true;
+ }
+ } else if (
+ !(ls.indexOf("p['" + alias + "']") > -1) &&
+ rs.indexOf("p['" + alias + "']") > -1
+ ) {
+ if (
+ (rs.match(/p\['.*?'\]/g) || []).every(function(s) {
+ return s === "p['" + alias + "']";
+ })
+ ) {
+ lefts = ls;
+ } else {
+ middlef = true;
+ }
+ } else {
+ middlef = true;
+ }
+
+ if (
+ rs.indexOf("p['" + alias + "']") > -1 &&
+ !(ls.indexOf("p['" + alias + "']") > -1)
+ ) {
+ if (
+ (rs.match(/p\['.*?'\]/g) || []).every(function(s) {
+ return s === "p['" + alias + "']";
+ })
+ ) {
+ rights = rs;
+ } else {
+ middlef = true;
+ }
+ } else if (
+ !(rs.indexOf("p['" + alias + "']") > -1) &&
+ ls.indexOf("p['" + alias + "']") > -1
+ ) {
+ if (
+ (ls.match(/p\['.*?'\]/g) || []).every(function(s) {
+ return s === "p['" + alias + "']";
+ })
+ ) {
+ lefts = rs;
+ } else {
+ middlef = true;
+ }
+ } else {
+ middlef = true;
+ }
+
+ if (middlef) {
+ // middles = jn.on.toJS('p',query.defaultTableid);
+ // } else {
+ rights = '';
+ lefts = '';
+ middles = jn.on.toJS('p', query.defaultTableid, query.defcols);
+ source.optimization = 'no';
+ // What to here?
+ }
+
+ source.onleftfns = lefts;
+ source.onrightfns = rights;
+ source.onmiddlefns = middles || 'true';
+
+ source.onleftfn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + source.onleftfns
+ );
+ source.onrightfn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + source.onrightfns
+ );
+ source.onmiddlefn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + source.onmiddlefns
+ );
+
+ // } else if(jn.on instanceof yy.Op && jn.on.op == 'AND') {
+
+ } else {
+
+ source.optimization = 'no';
+ // source.onleftfn = returnTrue;
+ // source.onleftfns = "true";
+ source.onmiddlefns = jn.on.toJS('p', query.defaultTableid, query.defcols);
+ source.onmiddlefn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + jn.on.toJS('p', query.defaultTableid, query.defcols)
+ );
+ }
+
+ // Optimization function
+ }
+
+ // source.data = alasql.databases[source.databaseid].tables[source.tableid].data;
+
+ // TODO SubQueries
+
+ query.sources.push(source);
+ });
+
+};
+
+yy.Select.prototype.compileWhere = function(query) {
+ if (this.where) {
+ if (typeof this.where == 'function') {
+ return this.where;
+ } else {
+ var s = this.where.toJS('p', query.defaultTableid, query.defcols);
+ query.wherefns = s;
+
+ return new Function('p,params,alasql', 'var y;return ' + s);
+ }
+ } else
+ return function() {
+ return true;
+ };
+};
+
+yy.Select.prototype.compileWhereJoins = function(query) {
+ return;
+
+ // TODO Fix Where optimization
+
+ optimizeWhereJoin(query, this.where.expression);
+
+ //for sources compile wherefs
+ query.sources.forEach(function(source) {
+ if (source.srcwherefns) {
+ source.srcwherefn = new Function(
+ 'p,params,alasql',
+ 'var y;return ' + source.srcwherefns
+ );
+ }
+ if (source.wxleftfns) {
+ source.wxleftfn = new Function('p,params,alasql', 'var y;return ' + source.wxleftfns);
+ }
+ if (source.wxrightfns) {
+ source.wxrightfn = new Function('p,params,alasql', 'var y;return ' + source.wxrightfns);
+ }
+
+ });
+};
+
+function optimizeWhereJoin(query, ast) {
+ if (!ast) return false;
+ if (!(ast instanceof yy.Op)) return;
+ if (ast.op != '=' && ast.op != 'AND') return;
+ if (ast.allsome) return;
+
+ var s = ast.toJS('p', query.defaultTableid, query.defcols);
+ var fsrc = [];
+ query.sources.forEach(function(source, idx) {
+ // Optimization allowed only for tables only
+ if (source.tableid) {
+ // This is a good place to remove all unnecessary optimizations
+ if (s.indexOf("p['" + source.alias + "']") > -1) fsrc.push(source);
+ }
+ });
+
+ // if(fsrc.length < query.sources.length) return;
+
+ if (fsrc.length == 0) {
+
+ return;
+ } else if (fsrc.length == 1) {
+ if (
+ !(s.match(/p\[\'.*?\'\]/g) || []).every(function(s) {
+ return s == "p['" + fsrc[0].alias + "']";
+ })
+ ) {
+ return;
+ // This is means, that we have column from parent query
+ // So we return without optimization
+ }
+
+ var src = fsrc[0]; // optmiization source
+ src.srcwherefns = src.srcwherefns ? src.srcwherefns + '&&' + s : s;
+
+ if (ast instanceof yy.Op && (ast.op == '=' && !ast.allsome)) {
+ if (ast.left instanceof yy.Column) {
+ var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
+ var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
+ if (rs.indexOf("p['" + fsrc[0].alias + "']") == -1) {
+ fsrc[0].wxleftfns = ls;
+ fsrc[0].wxrightfns = rs;
+ }
+ }
+ if (ast.right instanceof yy.Column) {
+ var ls = ast.left.toJS('p', query.defaultTableid, query.defcols);
+ var rs = ast.right.toJS('p', query.defaultTableid, query.defcols);
+ if (ls.indexOf("p['" + fsrc[0].alias + "']") == -1) {
+ fsrc[0].wxleftfns = rs;
+ fsrc[0].wxrightfns = ls;
+ }
+ }
+ }
+ ast.reduced = true; // To do not duplicate wherefn and srcwherefn
+ return;
+ } else {
+ if ((ast.op = 'AND')) {
+ optimizeWhereJoin(query, ast.left);
+ optimizeWhereJoin(query, ast.right);
+ }
+ }
+}
+
+/*
+//
+// Select compiler part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/**
+ Compile group of statements
+ */
+yy.Select.prototype.compileGroup = function(query) {
+
+ if (query.sources.length > 0) {
+ var tableid = query.sources[0].alias;
+ } else {
+ // If SELECT contains group aggregators without source tables
+ var tableid = '';
+ }
+ var defcols = query.defcols;
+
+ var allgroup = [[]];
+ if (this.group) {
+ allgroup = decartes(this.group, query);
+ }
+
+ // Prepare groups
+ //var allgroup = [['a'], ['a','b'], ['a', 'b', 'c']];
+
+ // Union all arrays to get a maximum
+ var allgroups = [];
+ allgroup.forEach(function(a) {
+ allgroups = arrayUnion(allgroups, a);
+ });
+
+ query.allgroups = allgroups;
+
+ query.ingroup = [];
+
+ // Create negative array
+
+ var s = '';
+ // s+= query.selectfns;
+ allgroup.forEach(function(agroup) {
+ // Start of group function
+ s += 'var g=this.xgroups[';
+
+ // var gcols = this.group.map(function(col){return col.columnid}); // Group fields with r
+ // Array with group columns from record
+ var rg = agroup.map(function(col2) {
+ var columnid = col2.split('\t')[0];
+ var coljs = col2.split('\t')[1];
+ // Check, if aggregator exists but GROUP BY is not exists
+ if (columnid === '') {
+ return '1'; // Create fictive groupping column for fictive GROUP BY
+ }
+ // else return "r['"+columnid+"']";
+ query.ingroup.push(columnid);
+
+ return coljs;
+ });
+
+ if (rg.length === 0) {
+ rg = ["''"];
+ }
+
+ s += rg.join('+"`"+');
+ s += '];if(!g) {this.groups.push((g=this.xgroups[';
+ s += rg.join('+"`"+');
+ s += '] = {';
+ // s += ']=r';
+ s += agroup
+ .map(function(col2) {
+ var columnid = col2.split('\t')[0];
+ var coljs = col2.split('\t')[1];
+
+ if (columnid === '') {
+ return '';
+ }
+ return "'" + columnid + "':" + coljs + ',';
+ })
+ .join('');
+
+ var neggroup = arrayDiff(allgroups, agroup);
+
+ s += neggroup
+ .map(function(col2) {
+ var columnid = col2.split('\t')[0];
+ // var coljs = col2.split('\t')[1]
+ return "'" + columnid + "':null,";
+ })
+ .join('');
+
+ var aft = '',
+ aft2 = '';
+
+ if (typeof query.groupStar !== 'undefined') {
+ aft2 +=
+ "for(var f in p['" +
+ query.groupStar +
+ "']) {g[f]=p['" +
+ query.groupStar +
+ "'][f];};";
+ }
+
+ /*
+ */
+ // s += self.columns.map(function(col){
+
+ s += query.selectGroup
+ .map(function(col) {
+
+ var colexp = col.expression.toJS('p', tableid, defcols);
+ var colas = col.nick;
+ // if(typeof colas == 'undefined') {
+ // if(col instanceof yy.Column) colas = col.columnid;
+ // else colas = col.toString();
+ // };
+ if (col instanceof yy.AggrValue) {
+ if (col.distinct) {
+ aft +=
+ ",g['$$_VALUES_" +
+ colas +
+ "']={},g['$$_VALUES_" +
+ colas +
+ "'][" +
+ colexp +
+ ']=true';
+ }
+ if (col.aggregatorid === 'SUM') {
+ return "'" + colas + "':(" + colexp + ')||0,';
+ } else if (
+ col.aggregatorid === 'MIN' ||
+ col.aggregatorid === 'MAX' ||
+ col.aggregatorid === 'FIRST' ||
+ col.aggregatorid === 'LAST'
+ // || col.aggregatorid == 'AVG'
+ // ) { return "'"+col.as+'\':r[\''+col.as+'\'],'; }//f.field.arguments[0].toJS();
+ ) {
+ return "'" + colas + "':" + colexp + ','; //f.field.arguments[0].toJS();
+ } else if (col.aggregatorid === 'ARRAY') {
+ return "'" + colas + "':[" + colexp + '],';
+ } else if (col.aggregatorid === 'COUNT') {
+ if (col.expression.columnid === '*') {
+ return "'" + colas + "':1,";
+ } else {
+ // return "'"+colas+'\':(typeof '+colexp+' != "undefined")?1:0,';
+ // } else {
+ return "'" + colas + "':(typeof " + colexp + ' != "undefined")?1:0,';
+ }
+
+ // else if(col.aggregatorid == 'MIN') { return "'"+col.as+'\':r[\''+col.as+'\'],'; }
+ // else if(col.aggregatorid == 'MAX') { return "'"+col.as+'\':r[\''+col.as+'\'],'; }
+ } else if (col.aggregatorid === 'AVG') {
+ query.removeKeys.push('_SUM_' + colas);
+ query.removeKeys.push('_COUNT_' + colas);
+
+ return (
+ '' +
+ "'" +
+ colas +
+ "':" +
+ colexp +
+ ",'_SUM_" +
+ colas +
+ "':(" +
+ colexp +
+ ")||0,'_COUNT_" +
+ colas +
+ "':(typeof " +
+ colexp +
+ ' != "undefined")?1:0,'
+ );
+ } else if (col.aggregatorid === 'AGGR') {
+ aft += ",g['" + colas + "']=" + col.expression.toJS('g', -1);
+ return '';
+ } else if (col.aggregatorid === 'REDUCE') {
+ // query.removeKeys.push('_REDUCE_'+colas);
+ query.aggrKeys.push(col);
+
+ // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),'
+ // +'\'__REDUCE__'+colas+'\':acc,';
+ return (
+ "'" +
+ colas +
+ "':alasql.aggr['" +
+ col.funcid +
+ "'](" +
+ colexp +
+ ',undefined,1),'
+ );
+ }
+ return '';
+ }
+
+ return '';
+ })
+ .join('');
+
+ s += '}' + aft + ',g));' + aft2 + '} else {';
+
+ /*
+ // var neggroup = arrayDiff(allgroups,agroup);
+
+ // s += neggroup.map(function(columnid){
+ // return "g['"+columnid+"']=null;";
+ // }).join('');
+*/
+
+ // s += self.columns.map(function(col){
+ s += query.selectGroup
+ .map(function(col) {
+ var colas = col.nick;
+
+ var colexp = col.expression.toJS('p', tableid, defcols);
+
+ if (col instanceof yy.AggrValue) {
+ var pre = '',
+ post = '';
+ if (col.distinct) {
+ var pre =
+ 'if(typeof ' +
+ colexp +
+ '!="undefined" && (!g[\'$$_VALUES_' +
+ colas +
+ "'][" +
+ colexp +
+ '])) \
+ {';
+ var post = "g['$$_VALUES_" + colas + "'][" + colexp + ']=true;}';
+ }
+ if (col.aggregatorid === 'SUM') {
+ return pre + "g['" + colas + "']+=(" + colexp + '||0);' + post; //f.field.arguments[0].toJS();
+ } else if (col.aggregatorid === 'COUNT') {
+
+ if (col.expression.columnid === '*') {
+ return pre + "g['" + colas + "']++;" + post;
+ } else {
+ return (
+ pre +
+ 'if(typeof ' +
+ colexp +
+ '!="undefined") g[\'' +
+ colas +
+ "']++;" +
+ post
+ );
+ }
+ } else if (col.aggregatorid === 'ARRAY') {
+ return pre + "g['" + colas + "'].push(" + colexp + ');' + post;
+ } else if (col.aggregatorid === 'MIN') {
+ return (
+ pre +
+ "g['" +
+ colas +
+ "']=Math.min(g['" +
+ colas +
+ "']," +
+ colexp +
+ ');' +
+ post
+ );
+ } else if (col.aggregatorid === 'MAX') {
+ return (
+ pre +
+ "g['" +
+ colas +
+ "']=Math.max(g['" +
+ colas +
+ "']," +
+ colexp +
+ ');' +
+ post
+ );
+ } else if (col.aggregatorid === 'FIRST') {
+ return '';
+ } else if (col.aggregatorid === 'LAST') {
+ return pre + "g['" + colas + "']=" + colexp + ';' + post;
+ } else if (col.aggregatorid === 'AVG') {
+ return (
+ '' +
+ pre +
+ "g['_SUM_" +
+ colas +
+ "']+=(y=" +
+ colexp +
+ ')||0;' +
+ "g['_COUNT_" +
+ colas +
+ '\']+=(typeof y!="undefined")?1:0;' +
+ "g['" +
+ colas +
+ "']=g['_SUM_" +
+ colas +
+ "']/g['_COUNT_" +
+ colas +
+ "'];" +
+ post
+ );
+ // }
+ // else if(col.aggregatorid == 'AVG') { srg.push(colas+':0'); }
+ } else if (col.aggregatorid === 'AGGR') {
+ return (
+ '' +
+ pre +
+ "g['" +
+ colas +
+ "']=" +
+ col.expression.toJS('g', -1) +
+ ';' +
+ post
+ );
+ } else if (col.aggregatorid === 'REDUCE') {
+ return (
+ '' +
+ pre +
+ "g['" +
+ colas +
+ "']=alasql.aggr." +
+ col.funcid +
+ '(' +
+ colexp +
+ ",g['" +
+ colas +
+ "'],2);" +
+ post
+ );
+ }
+
+ return '';
+ }
+
+ return '';
+ })
+ .join('');
+
+ // s += selectFields.map(function(f){
+
+ // if(f.constructor.name == 'LiteralValue') return '';
+ // if (f.field instanceof SQLParser.nodes.FunctionValue
+ // && (f.field.name.toUpperCase() == 'SUM' || f.field.name.toUpperCase() == 'COUNT')) {
+ // return 'group.'+f.name.value+'=+(+group.'+f.name.value+'||0)+'+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();
+ // return 'group.'+f.name.value+'+='+f.field.arguments[0].toJS('rec','')+';'; //f.field.arguments[0].toJS();
+ // return 'group.'+f.name.value+'+=rec.'+f.name.value+';'; //f.field.arguments[0].toJS();
+ // };
+ // return '';
+ // }).join('');
+
+ // s += ' group.amt += rec.emplid;';
+ // s += 'group.count++;';
+ s += '}';
+ });
+
+ return new Function('p,params,alasql', 'var y;' + s);
+};
+
+/*
+//
+// Select compiler part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// yy.Select.prototype.compileSources = function(query) {
+
+// };
+
+function compileSelectStar(query, aliases, joinstar) {
+ var sp = '',
+ ss = [],
+ columnIds = {};
+
+ aliases.forEach(function(alias) {
+
+ // if(!alias) {
+ // sp += 'for(var k1 in p) var w=p[k1];for(var k2 in w){r[k2]=w[k2]};';
+ // } else {
+
+ // TODO move this out of this function
+ query.ixsources = {};
+ query.sources.forEach(function(source) {
+ query.ixsources[source.alias] = source;
+ });
+
+ // Fixed
+ var columns;
+ if (query.ixsources[alias]) {
+ var columns = query.ixsources[alias].columns;
+ }
+
+ // if(columns.length == 0 && query.aliases[alias].tableid) {
+ // var columns = alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns;
+ // };
+
+ // Check if this is a Table or other
+ if (joinstar && alasql.options.joinstar == 'json') {
+ sp += "r['" + alias + "']={};";
+ }
+
+ if (columns && columns.length > 0) {
+ columns.forEach(function(tcol) {
+ if (joinstar && alasql.options.joinstar == 'underscore') {
+ ss.push(
+ "'" +
+ alias +
+ '_' +
+ tcol.columnid +
+ "':p['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "']"
+ );
+ } else if (joinstar && alasql.options.joinstar == 'json') {
+ // ss.push('\''+alias+'_'+tcol.columnid+'\':p[\''+alias+'\'][\''+tcol.columnid+'\']');
+ sp +=
+ "r['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "']=p['" +
+ alias +
+ "']['" +
+ tcol.columnid +
+ "'];";
+ } else {
+ var value = "p['" + alias + "']['" + tcol.columnid + "']";
+ if (!columnIds[tcol.columnid]) {
+ var key = "'" + tcol.columnid + "':";
+ ss.push(key + value);
+ columnIds[tcol.columnid] = {
+ id: ss.length - 1,
+ value: value,
+ key: key,
+ };
+ } else {
+ var newValue =
+ value +
+ ' !== undefined ? ' +
+ value +
+ ' : ' +
+ columnIds[tcol.columnid].value;
+ ss[columnIds[tcol.columnid].id] = columnIds[tcol.columnid].key + newValue;
+ columnIds[tcol.columnid].value = newValue;
+ }
+ }
+
+ query.selectColumns[escapeq(tcol.columnid)] = true;
+
+ var coldef = {
+ columnid: tcol.columnid,
+ dbtypeid: tcol.dbtypeid,
+ dbsize: tcol.dbsize,
+ dbprecision: tcol.dbprecision,
+ dbenum: tcol.dbenum,
+ };
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ });
+
+ } else {
+
+ // if column not exist, then copy all
+ sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
+
+ query.dirtyColumns = true;
+ }
+ // }
+
+ });
+
+ return {s: ss.join(','), sp: sp};
+}
+
+yy.Select.prototype.compileSelect1 = function(query, params) {
+ var self = this;
+ query.columns = [];
+ query.xcolumns = {};
+ query.selectColumns = {};
+ query.dirtyColumns = false;
+ var s = 'var r={';
+ var sp = '';
+ var ss = [];
+
+ this.columns.forEach(function(col) {
+
+ if (col instanceof yy.Column) {
+ if (col.columnid === '*') {
+ if (col.func) {
+ sp +=
+ "r=params['" +
+ col.param +
+ "'](p['" +
+ query.sources[0].alias +
+ "'],p,params,alasql);";
+ } else if (col.tableid) {
+ //Copy all
+ var ret = compileSelectStar(query, [col.tableid], false);
+ if (ret.s) {
+ ss = ss.concat(ret.s);
+ }
+ sp += ret.sp;
+ } else {
+
+ var ret = compileSelectStar(query, Object.keys(query.aliases), true); //query.aliases[alias].tableid);
+ if (ret.s) {
+ ss = ss.concat(ret.s);
+ }
+ sp += ret.sp;
+
+ // TODO Remove these lines
+ // In case of no information
+ // sp += 'for(var k1 in p){var w=p[k1];'+
+ // 'for(k2 in w) {r[k2]=w[k2]}}'
+ }
+ } else {
+ // If field, otherwise - expression
+ var tbid = col.tableid;
+
+ var dbid =
+ col.databaseid || query.sources[0].databaseid || query.database.databaseid;
+ if (!tbid) tbid = query.defcols[col.columnid];
+ if (!tbid) tbid = query.defaultTableid;
+ if (col.columnid !== '_') {
+ if (
+ false &&
+ tbid &&
+ !query.defcols['.'][col.tableid] &&
+ !query.defcols[col.columnid]
+ ) {
+ ss.push(
+ "'" +
+ escapeq(col.as || col.columnid) +
+ "':p['" +
+ query.defaultTableid +
+ "']['" +
+ col.tableid +
+ "']['" +
+ col.columnid +
+ "']"
+ );
+ } else {
+ // workaround for multisheet xlsx export with custom COLUMNS
+ var isMultisheetParam =
+ params &&
+ params.length > 1 &&
+ Array.isArray(params[0]) &&
+ params[0].length >= 1 &&
+ params[0][0].hasOwnProperty('sheetid');
+ if (isMultisheetParam) {
+ sp =
+ 'var r={};var w=p["' +
+ tbid +
+ '"];' +
+ 'var cols=[' +
+ self.columns
+ .map(function(col) {
+ return "'" + col.columnid + "'";
+ })
+ .join(',') +
+ '];var colas=[' +
+ self.columns
+ .map(function(col) {
+ return "'" + (col.as || col.columnid) + "'";
+ })
+ .join(',') +
+ '];' +
+ "for (var i=0;i 0) {
+
+ var tcol = xcolumns[col.columnid];
+
+ if (undefined === tcol) {
+ throw new Error('Column does not exist: ' + col.columnid);
+ }
+
+ var coldef = {
+ columnid: col.as || col.columnid,
+ dbtypeid: tcol.dbtypeid,
+ dbsize: tcol.dbsize,
+ dbpecision: tcol.dbprecision,
+ dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ } else {
+ var coldef = {
+ columnid: col.as || col.columnid,
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+
+ query.dirtyColumns = true;
+ }
+ } else {
+ var coldef = {
+ columnid: col.as || col.columnid,
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ // This is a subquery?
+ // throw new Error('There is now such table \''+col.tableid+'\'');
+ }
+ }
+ } else if (col instanceof yy.AggrValue) {
+ if (!self.group) {
+ // self.group=[new yy.Column({columnid:'q',as:'q' })];
+ self.group = [''];
+ }
+ if (!col.as) {
+ col.as = escapeq(col.toString());
+ }
+
+ if (
+ col.aggregatorid === 'SUM' ||
+ col.aggregatorid === 'MAX' ||
+ col.aggregatorid === 'MIN' ||
+ col.aggregatorid === 'FIRST' ||
+ col.aggregatorid === 'LAST' ||
+ col.aggregatorid === 'AVG' ||
+ col.aggregatorid === 'ARRAY' ||
+ col.aggregatorid === 'REDUCE'
+ ) {
+ ss.push(
+ "'" +
+ escapeq(col.as) +
+ "':" +
+ n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))
+ );
+ } else if (col.aggregatorid === 'COUNT') {
+ ss.push("'" + escapeq(col.as) + "':1");
+ // Nothing
+ }
+ // todo: confirm that no default action must be implemented
+
+ // query.selectColumns[col.aggregatorid+'('+escapeq(col.expression.toString())+')'] = thtd;
+
+ var coldef = {
+ columnid: col.as || col.columnid || col.toString(),
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+
+ // else if (col.aggregatorid == 'MAX') {
+ // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
+ // } else if (col.aggregatorid == 'MIN') {
+ // ss.push((col.as || col.columnid)+':'+col.toJS("p.",query.defaultTableid))
+ // }
+ } else {
+
+ ss.push(
+ "'" +
+ escapeq(col.as || col.columnid || col.toString()) +
+ "':" +
+ n2u(col.toJS('p', query.defaultTableid, query.defcols))
+ );
+ // ss.push('\''+escapeq(col.toString())+'\':'+col.toJS("p",query.defaultTableid));
+ //if(col instanceof yy.Expression) {
+ query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true;
+
+ var coldef = {
+ columnid: col.as || col.columnid || col.toString(),
+ // dbtypeid:tcol.dbtypeid,
+ // dbsize:tcol.dbsize,
+ // dbpecision:tcol.dbprecision,
+ // dbenum: tcol.dbenum,
+ };
+
+ query.columns.push(coldef);
+ query.xcolumns[coldef.columnid] = coldef;
+ }
+ });
+ s += ss.join(',') + '};' + sp;
+ return s;
+
+};
+yy.Select.prototype.compileSelect2 = function(query) {
+ var s = query.selectfns;
+ if (this.orderColumns && this.orderColumns.length > 0) {
+ this.orderColumns.forEach(function(v, idx) {
+ var key = '$$$' + idx;
+ if (v instanceof yy.Column && query.xcolumns[v.columnid]) {
+ s += "r['" + key + "']=r['" + v.columnid + "'];";
+ } else {
+ s += "r['" + key + "']=" + v.toJS('p', query.defaultTableid, query.defcols) + ';';
+ }
+ query.removeKeys.push(key);
+ });
+ }
+
+ return new Function('p,params,alasql', 'var y;' + s + 'return r');
+};
+
+yy.Select.prototype.compileSelectGroup0 = function(query) {
+ var self = this;
+ self.columns.forEach(function(col, idx) {
+ if (!(col instanceof yy.Column && col.columnid === '*')) {
+ var colas;
+ // = col.as;
+ if (col instanceof yy.Column) {
+ colas = escapeq(col.columnid);
+ } else {
+ colas = escapeq(col.toString(true));
+
+ }
+ for (var i = 0; i < idx; i++) {
+ if (colas === self.columns[i].nick) {
+ colas = self.columns[i].nick + ':' + idx;
+ break;
+ }
+ }
+ // }
+ col.nick = colas;
+ if (
+ col.funcid &&
+ (col.funcid.toUpperCase() === 'ROWNUM' || col.funcid.toUpperCase() === 'ROW_NUMBER')
+ ) {
+ query.rownums.push(col.as);
+ }
+
+ // }
+ } else {
+ query.groupStar = col.tableid || 'default';
+ }
+ });
+
+ this.columns.forEach(function(col) {
+ if (col.findAggregator) {
+ col.findAggregator(query);
+ }
+ });
+
+ if (this.having) {
+ if (this.having.findAggregator) {
+ this.having.findAggregator(query);
+ }
+ }
+};
+
+yy.Select.prototype.compileSelectGroup1 = function(query) {
+ var self = this;
+ var s = 'var r = {};';
+
+ self.columns.forEach(function(col) {
+
+ if (col instanceof yy.Column && col.columnid === '*') {
+ // s += 'for(var k in g){r[k]=g[k]};';
+ // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
+
+ s += 'for(var k in g) {r[k]=g[k]};';
+ return '';
+
+ } else {
+ // var colas = col.as;
+ var colas = col.as;
+ if (colas === undefined) {
+ if (col instanceof yy.Column) {
+ colas = escapeq(col.columnid);
+ } else {
+ colas = col.nick;
+ }
+ }
+ query.groupColumns[colas] = col.nick;
+
+ // if(col.as) {
+ s += "r['" + colas + "']=";
+ // // } else {
+ // // s += 'r[\''+escapeq()+'\']=';
+ // // };
+ // // s += ';';
+
+ s += n2u(col.toJS('g', '')) + ';';
+
+ for (var i = 0; i < query.removeKeys.length; i++) {
+ // THis part should be intellectual
+ if (query.removeKeys[i] === colas) {
+ query.removeKeys.splice(i, 1);
+ break;
+ }
+ }
+ }
+ });
+ // return new Function('g,params,alasql',s+'return r');
+ return s;
+};
+
+yy.Select.prototype.compileSelectGroup2 = function(query) {
+ var self = this;
+ var s = query.selectgfns;
+ self.columns.forEach(function(col) {
+
+ if (query.ingroup.indexOf(col.nick) > -1) {
+ s += "r['" + (col.as || col.nick) + "']=g['" + col.nick + "'];";
+ }
+ });
+
+ if (this.orderColumns && this.orderColumns.length > 0) {
+ this.orderColumns.forEach(function(v, idx) {
+
+ var key = '$$$' + idx;
+
+ if (v instanceof yy.Column && query.groupColumns[v.columnid]) {
+ s += "r['" + key + "']=r['" + v.columnid + "'];";
+ } else {
+ s += "r['" + key + "']=" + v.toJS('g', '') + ';';
+ }
+ query.removeKeys.push(key);
+ });
+ }
+
+ return new Function('g,params,alasql', 'var y;' + s + 'return r');
+};
+
+// SELECY * REMOVE [COLUMNS] col-list, LIKE ''
+yy.Select.prototype.compileRemoveColumns = function(query) {
+ var self = this;
+ if (typeof this.removecolumns !== 'undefined') {
+ query.removeKeys = query.removeKeys.concat(
+ this.removecolumns
+ .filter(function(column) {
+ return typeof column.like === 'undefined';
+ })
+ .map(function(column) {
+ return column.columnid;
+ })
+ );
+
+ query.removeLikeKeys = this.removecolumns
+ .filter(function(column) {
+ return typeof column.like !== 'undefined';
+ })
+ .map(function(column) {
+ // return new RegExp((column.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g');
+ return column.like.value;
+ });
+ }
+};
+
+/* global yy */
+
+yy.Select.prototype.compileHaving = function(query) {
+ if (this.having) {
+ var s = this.having.toJS('g', -1);
+ query.havingfns = s;
+
+ return new Function('g,params,alasql', 'var y;return ' + s);
+ }
+
+ return function() {
+ return true;
+ };
+};
+
+yy.Select.prototype.compileOrder = function(query) {
+ var self = this;
+ self.orderColumns = [];
+ if (this.order) {
+
+ if (
+ this.order &&
+ this.order.length == 1 &&
+ this.order[0].expression &&
+ typeof this.order[0].expression == 'function'
+ ) {
+
+ var func = this.order[0].expression;
+
+ return function(a, b) {
+ var ra = func(a),
+ rb = func(b);
+ if (ra > rb) return 1;
+ if (ra == rb) return 0;
+ return -1;
+ };
+ }
+
+ var s = '';
+ var sk = '';
+ this.order.forEach(function(ord, idx) {
+
+ if (ord.expression instanceof yy.NumValue) {
+ var v = self.columns[ord.expression.value - 1];
+ } else {
+ var v = ord.expression;
+ }
+ self.orderColumns.push(v);
+
+ var key = '$$$' + idx;
+
+ // Date conversion
+ var dg = '';
+ //if(alasql.options.valueof)
+ if (ord.expression instanceof yy.Column) {
+ var columnid = ord.expression.columnid;
+ if (query.xcolumns[columnid]) {
+ var dbtypeid = query.xcolumns[columnid].dbtypeid;
+ if (dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2')
+ dg = '.valueOf()';
+ // TODO Add other types mapping
+ } else {
+ if (alasql.options.valueof) dg = '.valueOf()'; // TODO Check
+ }
+ // dg = '.valueOf()';
+ }
+ // COLLATE NOCASE
+ if (ord.nocase) dg += '.toUpperCase()';
+ s +=
+ "if((a['" +
+ key +
+ "']||'')" +
+ dg +
+ (ord.direction == 'ASC' ? '>' : '<') +
+ "(b['" +
+ key +
+ "']||'')" +
+ dg +
+ ')return 1;';
+ s += "if((a['" + key + "']||'')" + dg + "==(b['" + key + "']||'')" + dg + '){';
+
+ /*
+if(false) {
+
+ if(ord.expression instanceof yy.NumValue) {
+ ord.expression = self.columns[ord.expression.value-1];
+
+ ord.expression = new yy.Column({columnid:ord.expression.nick});
+ };
+
+ if(ord.expression instanceof yy.Column) {
+ var columnid = ord.expression.columnid;
+ if(query.xcolumns[columnid]) {
+ var dbtypeid = query.xcolumns[columnid].dbtypeid;
+ if( dbtypeid == 'DATE' || dbtypeid == 'DATETIME' || dbtypeid == 'DATETIME2') dg = '.valueOf()';
+ // TODO Add other types mapping
+ } else {
+ if(alasql.options.valueof) dg = '.valueOf()'; // TODO Check
+ }
+ // COLLATE NOCASE
+ if(ord.nocase) dg += '.toUpperCase()';
+
+ s += 'if((a[\''+columnid+"']||'')"+dg+(ord.direction == 'ASC'?'>':'<')+'(b[\''+columnid+"']||'')"+dg+')return 1;';
+ s += 'if((a[\''+columnid+"']||'')"+dg+'==(b[\''+columnid+"']||'')"+dg+'){';
+
+ } else {
+ dg = '.valueOf()';
+ // COLLATE NOCASE
+ if(ord.nocase) dg += '.toUpperCase()';
+ s += 'if(('+ord.toJS('a','')+"||'')"+dg+(ord.direction == 'ASC'?'>(':'<(')+ord.toJS('b','')+"||'')"+dg+')return 1;';
+ s += 'if(('+ord.toJS('a','')+"||'')"+dg+'==('+ord.toJS('b','')+"||'')"+dg+'){';
+ }
+
+ // TODO Add date comparision
+
+}
+*/
+ sk += '}';
+ });
+ s += 'return 0;';
+ s += sk + 'return -1';
+ query.orderfns = s;
+
+ return new Function('a,b', 'var y;' + s);
+ }
+};
+
+// Pivot functions
+/**
+ Compile Pivot functions
+ @param {object} query Source query
+ @return {function} Pivoting functions
+*/
+yy.Select.prototype.compilePivot = function(query) {
+ var self = this;
+ /** @type {string} Main pivoting column */
+
+ var columnid = self.pivot.columnid;
+ var exprcolid = self.pivot.expr.expression.columnid;
+ var aggr = self.pivot.expr.aggregatorid;
+ var inlist = self.pivot.inlist;
+
+ if (inlist) {
+ inlist = inlist.map(function(l) {
+ return l.expr.columnid;
+ });
+ }
+
+ // Function for PIVOT post production
+ return function() {
+ var query = this;
+ var cols = query.columns
+ .filter(function(col) {
+ return col.columnid != columnid && col.columnid != exprcolid;
+ })
+ .map(function(col) {
+ return col.columnid;
+ });
+
+ var newcols = [];
+ var gnewcols = {};
+ var gr = {};
+ var ga = {};
+ var data = [];
+ query.data.forEach(function(d) {
+ if (!inlist || inlist.indexOf(d[columnid]) > -1) {
+ var gx = cols
+ .map(function(colid) {
+ return d[colid];
+ })
+ .join('`');
+ var g = gr[gx];
+ if (!g) {
+ g = {};
+ gr[gx] = g;
+ data.push(g);
+ cols.forEach(function(colid) {
+ g[colid] = d[colid];
+ });
+ }
+
+ if (!ga[gx]) {
+ ga[gx] = {};
+ }
+
+ if (ga[gx][d[columnid]]) {
+ ga[gx][d[columnid]]++;
+ } else {
+ ga[gx][d[columnid]] = 1;
+ }
+
+ if (!gnewcols[d[columnid]]) {
+ gnewcols[d[columnid]] = true;
+ newcols.push(d[columnid]);
+ }
+
+ if (aggr == 'SUM' || aggr == 'AVG') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
+ g[d[columnid]] += d[exprcolid];
+ } else if (aggr == 'COUNT') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = 0;
+ g[d[columnid]]++;
+ } else if (aggr == 'MIN') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = Infinity;
+ if (d[exprcolid] < g[d[columnid]]) g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'MAX') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = -Infinity;
+ if (d[exprcolid] > g[d[columnid]]) g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'FIRST') {
+ if (typeof g[d[columnid]] == 'undefined') g[d[columnid]] = d[exprcolid];
+ } else if (aggr == 'LAST') {
+ g[d[columnid]] = d[exprcolid];
+ } else if (alasql.aggr[aggr]) {
+ // Custom aggregator
+ alasql.aggr[aggr](g[d[columnid]], d[exprcolid]);
+ } else {
+ throw new Error('Wrong aggregator in PIVOT clause');
+ }
+ }
+ });
+
+ if (aggr == 'AVG') {
+ for (var gx in gr) {
+ var d = gr[gx];
+ for (var colid in d) {
+ if (cols.indexOf(colid) == -1 && colid != exprcolid) {
+ d[colid] = d[colid] / ga[gx][colid];
+ }
+ }
+ }
+ }
+
+ // columns
+ query.data = data;
+
+ if (inlist) newcols = inlist;
+
+ var ncol = query.columns.filter(function(col) {
+ return col.columnid == exprcolid;
+ })[0];
+ query.columns = query.columns.filter(function(col) {
+ return !(col.columnid == columnid || col.columnid == exprcolid);
+ });
+ newcols.forEach(function(colid) {
+ var nc = cloneDeep(ncol);
+ nc.columnid = colid;
+ query.columns.push(nc);
+ });
+ };
+};
+
+// var columnid = this.pivot.columnid;
+
+// return function(data){
+
+// if(false) {
+
+// }
+
+// if(false) {
+
+// }
+// };
+
+/**
+ Compile UNPIVOT clause
+ @param {object} query Query object
+ @return {function} Function for unpivoting
+*/
+yy.Select.prototype.compileUnpivot = function(query) {
+ var self = this;
+ var tocolumnid = self.unpivot.tocolumnid;
+ var forcolumnid = self.unpivot.forcolumnid;
+ var inlist = self.unpivot.inlist.map(function(l) {
+ return l.columnid;
+ });
+
+ return function() {
+ var data = [];
+
+ var xcols = query.columns
+ .map(function(col) {
+ return col.columnid;
+ })
+ .filter(function(colid) {
+ return inlist.indexOf(colid) == -1 && colid != forcolumnid && colid != tocolumnid;
+ });
+
+ query.data.forEach(function(d) {
+ inlist.forEach(function(colid) {
+ var nd = {};
+ xcols.forEach(function(xcolid) {
+ nd[xcolid] = d[xcolid];
+ });
+ nd[forcolumnid] = colid;
+ nd[tocolumnid] = d[colid];
+ data.push(nd);
+ });
+ });
+
+ query.data = data;
+
+ // });
+ };
+};
+
+/*
+//
+// ROLLUP(), CUBE(), GROUPING SETS() for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/**
+ Calculate ROLLUP() combination
+ */
+
+var rollup = function(a, query) {
+ var rr = [];
+ var mask = 0;
+ var glen = a.length;
+ for (var g = 0; g < glen + 1; g++) {
+ var ss = [];
+ for (var i = 0; i < glen; i++) {
+ if (a[i] instanceof yy.Column) {
+ a[i].nick = escapeq(a[i].columnid);
+
+ query.groupColumns[escapeq(a[i].columnid)] = a[i].nick;
+ var aaa = a[i].nick + '\t' + a[i].toJS('p', query.sources[0].alias, query.defcols);
+ } else {
+ query.groupColumns[escapeq(a[i].toString())] = escapeq(a[i].toString());
+ var aaa =
+ escapeq(a[i].toString()) +
+ '\t' +
+ a[i].toJS('p', query.sources[0].alias, query.defcols);
+ }
+
+ if (mask & (1 << i)) ss.push(aaa);
+ }
+ rr.push(ss);
+ mask = (mask << 1) + 1;
+ }
+ return rr;
+};
+
+/**
+ Calculate CUBE()
+ */
+var cube = function(a, query) {
+ var rr = [];
+ var glen = a.length;
+ var glenCube = 1 << glen;
+ for (var g = 0; g < glenCube; g++) {
+ var ss = [];
+ for (var i = 0; i < glen; i++) {
+ if (g & (1 << i))
+ //ss.push(a[i]);
+ //ss = cartes(ss,decartes(a[i]));
+
+ // var aaa = a[i].toString()+'\t'
+ // +a[i].toJS('p',query.sources[0].alias,query.defcols);
+
+ ss = ss.concat(decartes(a[i], query));
+ //
+ }
+ rr.push(ss);
+ }
+ return rr;
+};
+
+/**
+ GROUPING SETS()
+ */
+var groupingsets = function(a, query) {
+ return a.reduce(function(acc, d) {
+ acc = acc.concat(decartes(d, query));
+ return acc;
+ }, []);
+};
+
+/**
+ Cartesian production
+ */
+var cartes = function(a1, a2) {
+ var rrr = [];
+ for (var i1 = 0; i1 < a1.length; i1++) {
+ for (var i2 = 0; i2 < a2.length; i2++) {
+ rrr.push(a1[i1].concat(a2[i2]));
+ }
+ }
+ return rrr;
+};
+
+/**
+ Prepare groups function
+ */
+function decartes(gv, query) {
+
+ if (Array.isArray(gv)) {
+ var res = [[]];
+ for (var t = 0; t < gv.length; t++) {
+ if (gv[t] instanceof yy.Column) {
+
+ gv[t].nick = escapeq(gv[t].columnid);
+ query.groupColumns[gv[t].nick] = gv[t].nick;
+ res = res.map(function(r) {
+ return r.concat(
+ gv[t].nick + '\t' + gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // res = res.map(function(r){return r.concat(gv[t].columnid)});
+ } else if (gv[t] instanceof yy.FuncValue) {
+ query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
+ res = res.map(function(r) {
+ return r.concat(
+ escapeq(gv[t].toString()) +
+ '\t' +
+ gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // to be defined
+ } else if (gv[t] instanceof yy.GroupExpression) {
+ if (gv[t].type == 'ROLLUP') res = cartes(res, rollup(gv[t].group, query));
+ else if (gv[t].type == 'CUBE') res = cartes(res, cube(gv[t].group, query));
+ else if (gv[t].type == 'GROUPING SETS')
+ res = cartes(res, groupingsets(gv[t].group, query));
+ else throw new Error('Unknown grouping function');
+ } else if (gv[t] === '') {
+
+ res = [['1\t1']];
+ } else {
+ // if(gv[t])
+
+ res = res.map(function(r) {
+ query.groupColumns[escapeq(gv[t].toString())] = escapeq(gv[t].toString());
+ return r.concat(
+ escapeq(gv[t].toString()) +
+ '\t' +
+ gv[t].toJS('p', query.sources[0].alias, query.defcols)
+ );
+ });
+ // res = res.concat(gv[t]);
+ }
+
+ }
+ return res;
+ } else if (gv instanceof yy.FuncValue) {
+
+ query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
+ return [gv.toString() + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)];
+ } else if (gv instanceof yy.Column) {
+ gv.nick = escapeq(gv.columnid);
+ query.groupColumns[gv.nick] = gv.nick;
+ return [gv.nick + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols)]; // Is this ever happened?
+ // } else if(gv instanceof yy.Expression) {
+ // return [gv.columnid]; // Is this ever happened?
+ } else {
+ query.groupColumns[escapeq(gv.toString())] = escapeq(gv.toString());
+ return [
+ escapeq(gv.toString()) + '\t' + gv.toJS('p', query.sources[0].alias, query.defcols),
+ ];
+ // throw new Error('Single argument in the group without array');
+ }
+
+}
+
+/*
+//
+// Select run-time part for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Select.prototype.compileDefCols = function(query, databaseid) {
+
+ var defcols = {'.': {}};
+ if (this.from) {
+ this.from.forEach(function(fr) {
+ defcols['.'][fr.as || fr.tableid] = true;
+ if (fr instanceof yy.Table) {
+ var alias = fr.as || fr.tableid;
+
+ var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid];
+
+ if (undefined === table) {
+ throw new Error('Table does not exist: ' + fr.tableid);
+ }
+
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ if (defcols[col.columnid]) {
+ defcols[col.columnid] = '-'; // Ambigous
+ } else {
+ defcols[col.columnid] = alias;
+ }
+ });
+ }
+ } else if (fr instanceof yy.Select) {
+ } else if (fr instanceof yy.Search) {
+ } else if (fr instanceof yy.ParamValue) {
+ } else if (fr instanceof yy.VarValue) {
+ } else if (fr instanceof yy.FuncValue) {
+ } else if (fr instanceof yy.FromData) {
+ } else if (fr instanceof yy.Json) {
+ } else if (fr.inserted) {
+ } else {
+
+ throw new Error('Unknown type of FROM clause');
+ }
+ });
+ }
+
+ if (this.joins) {
+ this.joins.forEach(function(jn) {
+ defcols['.'][jn.as || jn.table.tableid] = true;
+
+ if (jn.table) {
+ var alias = jn.table.tableid;
+ if (jn.as) alias = jn.as;
+ var alias = jn.as || jn.table.tableid;
+ var table =
+ alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid];
+
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ if (defcols[col.columnid]) {
+ defcols[col.columnid] = '-'; // Ambigous
+ } else {
+ defcols[col.columnid] = alias;
+ }
+ });
+ }
+ } else if (jn.select) {
+ } else if (jn.param) {
+ } else if (jn.func) {
+ } else {
+ throw new Error('Unknown type of FROM clause');
+ }
+ });
+ }
+ // for(var k in defcols) {
+ // if(defcols[k] == '-') defcols[k] = undefined;
+ // }
+
+ return defcols;
+};
+
+/*
+//
+// UNION for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// SELECT UNION statement
+
+yy.Union = function(params) {
+ return yy.extend(this, params);
+};
+yy.Union.prototype.toString = function() {
+ return 'UNION';
+};
+
+yy.Union.prototype.compile = function(tableid) {
+ return null;
+};
+
+/*
+//
+// CROSS AND OUTER APPLY for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Apply = function(params) {
+ return yy.extend(this, params);
+};
+
+yy.Apply.prototype.toString = function() {
+ var s = this.applymode + ' APPLY (' + this.select.toString() + ')';
+
+ if (this.as) s += ' AS ' + this.as;
+
+ return s;
+};
+
+/*
+//
+// CROSS AND OUTER APPLY for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Over = function(params) {
+ return yy.extend(this, params);
+};
+yy.Over.prototype.toString = function() {
+ var s = 'OVER (';
+ if (this.partition) {
+ s += 'PARTITION BY ' + this.partition.toString();
+ if (this.order) s += ' ';
+ }
+ if (this.order) {
+ s += 'ORDER BY ' + this.order.toString();
+ }
+ s += ')';
+ return s;
+};
+
+/*
+//
+// Expressions for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/**
+ Expression statement ( = 2*2; )
+ @class
+ @param {object} params Initial parameters
+*/
+yy.ExpressionStatement = function(params) {
+ return yy.extend(this, params);
+};
+
+/**
+ Convert AST to string
+ @this ExpressionStatement
+ @return {string}
+*/
+yy.ExpressionStatement.prototype.toString = function() {
+ return this.expression.toString();
+};
+/**
+ Execute statement
+ @param {string} databaseid Database identificatro
+ @param {object} params Statement parameters
+ @param {statement-callback} cb Callback
+ @return {object} Result value
+*/
+yy.ExpressionStatement.prototype.execute = function(databaseid, params, cb) {
+ if (this.expression) {
+
+ alasql.precompile(this, databaseid, params); // Precompile queries
+ var exprfn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + this.expression.toJS('({})', '', null)
+ ).bind(this);
+ var res = exprfn(params, alasql);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+ }
+};
+
+/**
+ Expression class
+ @class
+ @param {object} params Initial parameters
+*/
+
+yy.Expression = function(params) {
+ return yy.extend(this, params);
+};
+
+/**
+ Convert AST to string
+ @this ExpressionStatement
+ @return {string}
+*/
+yy.Expression.prototype.toString = function(dontas) {
+ var s = this.expression.toString(dontas);
+ if (this.order) {
+ s += ' ' + this.order.toString();
+ }
+ if (this.nocase) {
+ s += ' COLLATE NOCASE';
+ }
+ if (this.direction) {
+ s += ' ' + this.direction;
+ }
+ return s;
+};
+
+/**
+ Find aggregator in AST subtree
+ @this ExpressionStatement
+ @param {object} query Query object
+*/
+yy.Expression.prototype.findAggregator = function(query) {
+ if (this.expression.findAggregator) {
+ this.expression.findAggregator(query);
+ }
+};
+
+/**
+ Convert AST to JavaScript expression
+ @this ExpressionStatement
+ @param {string} context Context string, e.g. 'p','g', or 'x'
+ @param {string} tableid Default table name
+ @param {object} defcols Default columns dictionary
+ @return {string} JavaScript expression
+*/
+
+yy.Expression.prototype.toJS = function(context, tableid, defcols) {
+
+ if (this.expression.reduced) {
+ return 'true';
+ }
+ return this.expression.toJS(context, tableid, defcols);
+};
+
+/**
+ Compile AST to JavaScript expression
+ @this ExpressionStatement
+ @param {string} context Context string, e.g. 'p','g', or 'x'
+ @param {string} tableid Default table name
+ @param {object} defcols Default columns dictionary
+ @return {string} JavaScript expression
+*/
+
+yy.Expression.prototype.compile = function(context, tableid, defcols) {
+
+ if (this.reduced) {
+ return returnTrue();
+ }
+ return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols));
+};
+
+/**
+ JavaScript class
+ @class
+*/
+yy.JavaScript = function(params) {
+ return yy.extend(this, params);
+};
+yy.JavaScript.prototype.toString = function() {
+ var s = '``' + this.value + '``';
+ return s;
+};
+
+yy.JavaScript.prototype.toJS = function(/* context, tableid, defcols*/) {
+
+ return '(' + this.value + ')';
+};
+yy.JavaScript.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ var expr = new Function('params,alasql,p', this.value);
+ expr(params, alasql);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+/**
+ Literal class
+ @class
+ @example
+ MyVar, [My vairable], `MySQL variable`
+*/
+
+yy.Literal = function(params) {
+ return yy.extend(this, params);
+};
+yy.Literal.prototype.toString = function(dontas) {
+ var s = this.value;
+ if (this.value1) {
+ s = this.value1 + '.' + s;
+ }
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ // else s = tableid+'.'+s;
+ return s;
+};
+
+/**
+ Join class
+ @class
+*/
+
+yy.Join = function(params) {
+ return yy.extend(this, params);
+};
+yy.Join.prototype.toString = function() {
+ var s = ' ';
+ if (this.joinmode) {
+ s += this.joinmode + ' ';
+ }
+ s += 'JOIN ' + this.table.toString();
+ return s;
+};
+
+// }
+
+/**
+ Table class
+ @class
+*/
+
+yy.Table = function(params) {
+ return yy.extend(this, params);
+};
+yy.Table.prototype.toString = function() {
+ var s = this.tableid;
+ // if(this.joinmode)
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
+ }
+ return s;
+};
+
+/**
+ View class
+ @class
+*/
+
+yy.View = function(params) {
+ return yy.extend(this, params);
+};
+yy.View.prototype.toString = function() {
+ var s = this.viewid;
+ // if(this.joinmode)
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
+ }
+ return s;
+};
+
+/**
+ Binary operation class
+ @class
+*/
+yy.Op = function(params) {
+ return yy.extend(this, params);
+};
+yy.Op.prototype.toString = function() {
+ if (this.op === 'IN' || this.op === 'NOT IN') {
+ return this.left.toString() + ' ' + this.op + ' (' + this.right.toString() + ')';
+ }
+ if (this.allsome) {
+ return (
+ this.left.toString() +
+ ' ' +
+ this.op +
+ ' ' +
+ this.allsome +
+ ' (' +
+ this.right.toString() +
+ ')'
+ );
+ }
+ if (this.op === '->' || this.op === '!') {
+ var s = this.left.toString() + this.op;
+
+ if (typeof this.right !== 'string' && typeof this.right !== 'number') {
+ s += '(';
+ }
+
+ s += this.right.toString();
+
+ if (typeof this.right !== 'string' && typeof this.right !== 'number') {
+ s += ')';
+ }
+
+ return s;
+ }
+ return (
+ this.left.toString() +
+ ' ' +
+ this.op +
+ ' ' +
+ (this.allsome ? this.allsome + ' ' : '') +
+ this.right.toString()
+ );
+};
+
+yy.Op.prototype.findAggregator = function(query) {
+
+ if (this.left && this.left.findAggregator) {
+ this.left.findAggregator(query);
+ }
+ // Do not go in > ALL
+ if (this.right && this.right.findAggregator && !this.allsome) {
+ this.right.findAggregator(query);
+ }
+};
+
+yy.Op.prototype.toType = function(tableid) {
+ if (['-', '*', '/', '%', '^'].indexOf(this.op) > -1) {
+ return 'number';
+ }
+ if (['||'].indexOf(this.op) > -1) {
+ return 'string';
+ }
+ if (this.op === '+') {
+ if (this.left.toType(tableid) === 'string' || this.right.toType(tableid) === 'string') {
+ return 'string';
+ }
+ if (this.left.toType(tableid) === 'number' || this.right.toType(tableid) === 'number') {
+ return 'number';
+ }
+ }
+
+ if (
+ [
+ 'AND',
+ 'OR',
+ 'NOT',
+ '=',
+ '==',
+ '===',
+ '!=',
+ '!==',
+ '!===',
+ '>',
+ '>=',
+ '<',
+ '<=',
+ 'IN',
+ 'NOT IN',
+ 'LIKE',
+ 'NOT LIKE',
+ 'REGEXP',
+ 'GLOB',
+ ].indexOf(this.op) > -1
+ ) {
+ return 'boolean';
+ }
+
+ if (
+ this.op === 'BETWEEN' ||
+ this.op === 'NOT BETWEEN' ||
+ this.op === 'IS NULL' ||
+ this.op === 'IS NOT NULL'
+ ) {
+ return 'boolean';
+ }
+
+ if (this.allsome) {
+ return 'boolean';
+ }
+
+ if (!this.op) {
+ return this.left.toType();
+ }
+
+ return 'unknown';
+};
+
+yy.Op.prototype.toJS = function(context, tableid, defcols) {
+
+ var s;
+ var refs = [];
+ var op = this.op;
+ var _this = this;
+ //var leftJS = function(){return _this.left.toJS(context,tableid, defcols)};
+ //var rightJS = function(){return _this.right.toJS(context,tableid, defcols)};
+ var accessedLeft = false,
+ accessedRight = false;
+ var ref = function(expr) {
+ if (expr.toJS) {
+ expr = expr.toJS(context, tableid, defcols);
+ }
+ var i = refs.push(expr) - 1;
+ return 'y[' + i + ']';
+ };
+ var leftJS = function() {
+ return ref(_this.left);
+ };
+ var rightJS = function() {
+ return ref(_this.right);
+ };
+
+ if (this.op === '=') {
+ op = '===';
+ } else if (this.op === '<>') {
+ op = '!=';
+ } else if (this.op === 'OR') {
+ op = '||';
+ }
+
+ // Arrow operator
+ if (this.op === '->') {
+ // Expression to prevent error if object is empty (#344)
+ var ljs = '(' + leftJS() + '||{})';
+
+ if (typeof this.right === 'string') {
+ s = ljs + '["' + this.right + '"]';
+ } else if (typeof this.right === 'number') {
+ s = ljs + '[' + this.right + ']';
+ } else if (this.right instanceof yy.FuncValue) {
+ var ss = [];
+ if (!(!this.right.args || 0 === this.right.args.length)) {
+ var ss = this.right.args.map(ref);
+ }
+ s = '' + ljs + "['" + this.right.funcid + "'](" + ss.join(',') + ')';
+ } else {
+ s = '' + ljs + '[' + rightJS() + ']';
+ }
+ }
+
+ if (this.op === '!') {
+ if (typeof this.right === 'string') {
+ s =
+ '' +
+ 'alasql.databases[alasql.useid].objects[' +
+ leftJS() +
+ ']["' +
+ this.right +
+ '"]';
+ }
+ // TODO - add other cases
+ }
+
+ if (this.op === 'IS') {
+ s =
+ '' +
+ '(' +
+ '(' +
+ leftJS() +
+ '==null)' + // Cant be ===
+ ' === ' +
+ '(' +
+ rightJS() +
+ '==null)' + // Cant be ===
+ ')';
+ }
+
+ if (this.op === '==') {
+ s = '' + 'alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + ')';
+ }
+
+ if (this.op === '===' || this.op === '!===') {
+ s =
+ '' +
+ '(' +
+ (this.op === '!===' ? '!' : '') +
+ '(' +
+ '(' +
+ leftJS() +
+ ').valueOf()' +
+ '===' +
+ '(' +
+ rightJS() +
+ ').valueOf()' +
+ ')' +
+ ')';
+ }
+
+ if (this.op === '!==') {
+ s = '' + '(!alasql.utils.deepEqual(' + leftJS() + ',' + rightJS() + '))';
+ }
+ if (this.op === '||') {
+ s = '' + "(''+(" + leftJS() + "||'')+(" + rightJS() + '||""))';
+ }
+ if (this.op === 'LIKE' || this.op === 'NOT LIKE') {
+ var s =
+ '(' +
+ (this.op === 'NOT LIKE' ? '!' : '') +
+ 'alasql.utils.like(' +
+ rightJS() +
+ ',' +
+ leftJS();
+ if (this.escape) {
+ s += ',' + ref(this.escape);
+ }
+ s += '))';
+ }
+ if (this.op === 'REGEXP') {
+ s = 'alasql.stdfn.REGEXP_LIKE(' + leftJS() + ',' + rightJS() + ')';
+ }
+ if (this.op === 'GLOB') {
+ s = 'alasql.utils.glob(' + leftJS() + ',' + rightJS() + ')';
+ }
+
+ if (this.op === 'BETWEEN' || this.op === 'NOT BETWEEN') {
+ var left = leftJS();
+ s =
+ '' +
+ '(' +
+ (this.op === 'NOT BETWEEN' ? '!' : '') +
+ '(' +
+ '(' +
+ ref(this.right1) +
+ '<=' +
+ left +
+ ') && (' +
+ left +
+ '<=' +
+ ref(this.right2) +
+ ')' +
+ ')' +
+ ')';
+
+ }
+
+ if (this.op === 'IN') {
+ if (this.right instanceof yy.Select) {
+ s = '(';
+ // s += 'this.query.queriesdata['+this.queriesidx+']';
+ // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,context))';
+ s +=
+ 'alasql.utils.flatArray(this.queriesfn[' +
+ this.queriesidx +
+ '](params,null,' +
+ context +
+ '))';
+ s += '.indexOf(';
+ s += leftJS() + ')>-1)';
+ } else if (Array.isArray(this.right)) {
+ // if(this.right.length == 0) return 'false';
+ s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)';
+
+ } else {
+ s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';
+
+ // } else {
+ // throw new Error('Wrong IN operator without SELECT part');
+ }
+ }
+
+ if (this.op === 'NOT IN') {
+ if (this.right instanceof yy.Select) {
+ s = '(';
+ //this.query.queriesdata['+this.queriesidx+']
+ // s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))';
+ s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';
+ s += '.indexOf(';
+ s += leftJS() + ')<0)';
+ } else if (Array.isArray(this.right)) {
+ // if(this.right.length == 0) return 'true';
+ s = '([' + this.right.map(ref).join(',') + '].indexOf(';
+ s += leftJS() + ')<0)';
+ } else {
+ s = '(' + rightJS() + '.indexOf(';
+ s += leftJS() + ')==-1)';
+
+ // throw new Error('Wrong NOT IN operator without SELECT part');
+ }
+ }
+
+ if (this.allsome === 'ALL') {
+ var s;
+ if (this.right instanceof yy.Select) {
+ // var s = 'this.query.queriesdata['+this.queriesidx+']';
+ s =
+ 'alasql.utils.flatArray(this.query.queriesfn[' +
+ this.queriesidx +
+ '](params,null,p))';
+
+ s += '.every(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else if (Array.isArray(this.right)) {
+ s =
+ '' +
+ (this.right.length == 1
+ ? ref(this.right[0])
+ : '[' + this.right.map(ref).join(',') + ']');
+ s += '.every(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else {
+ throw new Error('NOT IN operator without SELECT');
+ }
+ }
+
+ if (this.allsome === 'SOME' || this.allsome === 'ANY') {
+ var s;
+ if (this.right instanceof yy.Select) {
+ // var s = 'this.query.queriesdata['+this.queriesidx+']';
+ s =
+ 'alasql.utils.flatArray(this.query.queriesfn[' +
+ this.queriesidx +
+ '](params,null,p))';
+ s += '.some(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else if (Array.isArray(this.right)) {
+ s =
+ '' +
+ (this.right.length == 1
+ ? ref(this.right[0])
+ : '[' + this.right.map(ref).join(',') + ']');
+ s += '.some(function(b){return (';
+ s += leftJS() + ')' + op + 'b})';
+ } else {
+ throw new Error('SOME/ANY operator without SELECT');
+ }
+ }
+
+ // Special case for AND optimization (if reduced)
+ if (this.op === 'AND') {
+ if (this.left.reduced) {
+ if (this.right.reduced) {
+ return 'true';
+ } else {
+ s = rightJS();
+ }
+ } else if (this.right.reduced) {
+ s = leftJS();
+ }
+
+ // Otherwise process as regular operation (see below)
+ op = '&&';
+ }
+
+ // if(this.op === '^') {
+ // // return 'Math.pow('
+ // // + leftJS()
+ // // + ','
+ // // + rightJS()
+ // // + ')';
+ // }
+
+ // Change names
+
+ var expr = s || '(' + leftJS() + op + rightJS() + ')';
+
+ var declareRefs = 'y=[(' + refs.join('), (') + ')]';
+
+ if (op === '&&' || op === '||' || op === 'IS' || op === 'IS NULL' || op === 'IS NOT NULL') {
+ return '(' + declareRefs + ', ' + expr + ')';
+ }
+
+ return (
+ '(' + declareRefs + ', ' + 'y.some(function(e){return e == null}) ? void 0 : ' + expr + ')'
+ );
+};
+
+yy.VarValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.VarValue.prototype.toString = function() {
+ return '@' + this.variable;
+};
+
+yy.VarValue.prototype.toType = function() {
+ return 'unknown';
+};
+
+yy.VarValue.prototype.toJS = function() {
+ return "alasql.vars['" + this.variable + "']";
+};
+
+yy.NumValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.NumValue.prototype.toString = function() {
+ return this.value.toString();
+};
+
+yy.NumValue.prototype.toType = function() {
+ return 'number';
+};
+
+yy.NumValue.prototype.toJS = function() {
+ return '' + this.value;
+};
+
+yy.StringValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.StringValue.prototype.toString = function() {
+ return "'" + this.value.toString() + "'";
+};
+
+yy.StringValue.prototype.toType = function() {
+ return 'string';
+};
+
+yy.StringValue.prototype.toJS = function() {
+
+ // return "'"+doubleqq(this.value)+"'";
+ return "'" + escapeq(this.value) + "'";
+};
+
+yy.DomainValueValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.DomainValueValue.prototype.toString = function() {
+ return 'VALUE';
+};
+
+yy.DomainValueValue.prototype.toType = function() {
+ return 'object';
+};
+
+yy.DomainValueValue.prototype.toJS = function(context, tableid, defcols) {
+
+ // return "'"+doubleqq(this.value)+"'";
+ return context;
+};
+
+yy.ArrayValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.ArrayValue.prototype.toString = function() {
+ return 'ARRAY[]';
+};
+
+yy.ArrayValue.prototype.toType = function() {
+ return 'object';
+};
+
+yy.ArrayValue.prototype.toJS = function(context, tableid, defcols) {
+
+ // return "'"+doubleqq(this.value)+"'";
+ return (
+ '[(' +
+ this.value
+ .map(function(el) {
+ return el.toJS(context, tableid, defcols);
+ })
+ .join('), (') +
+ ')]'
+ );
+};
+
+yy.LogicValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.LogicValue.prototype.toString = function() {
+ return this.value ? 'TRUE' : 'FALSE';
+};
+
+yy.LogicValue.prototype.toType = function() {
+ return 'boolean';
+};
+
+yy.LogicValue.prototype.toJS = function() {
+ return this.value ? 'true' : 'false';
+};
+
+yy.NullValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.NullValue.prototype.toString = function() {
+ return 'NULL';
+};
+yy.NullValue.prototype.toJS = function() {
+ return 'undefined';
+ // return 'undefined';
+};
+
+yy.ParamValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.ParamValue.prototype.toString = function() {
+ return '$' + this.param;
+};
+yy.ParamValue.prototype.toJS = function() {
+ if (typeof this.param === 'string') {
+ return "params['" + this.param + "']";
+ }
+
+ return 'params[' + this.param + ']';
+};
+
+yy.UniOp = function(params) {
+ return yy.extend(this, params);
+};
+yy.UniOp.prototype.toString = function() {
+ var s;
+ s = void 0;
+ if (this.op === '~') {
+ s = this.op + this.right.toString();
+ }
+ if (this.op === '-') {
+ s = this.op + this.right.toString();
+ }
+ if (this.op === '+') {
+ s = this.op + this.right.toString();
+ }
+ if (this.op === '#') {
+ s = this.op + this.right.toString();
+ }
+ if (this.op === 'NOT') {
+ s = this.op + '(' + this.right.toString() + ')';
+ }
+ if (this.op === null) {
+ s = '(' + this.right.toString() + ')';
+ }
+ if (!s) {
+ s = '(' + this.right.toString() + ')';
+ }
+ return s;
+};
+
+yy.UniOp.prototype.findAggregator = function(query) {
+ if (this.right.findAggregator) {
+ this.right.findAggregator(query);
+ }
+};
+
+yy.UniOp.prototype.toType = function() {
+ if (this.op === '-') {
+ return 'number';
+ }
+
+ if (this.op === '+') {
+ return 'number';
+ }
+
+ if (this.op === 'NOT') {
+ return 'boolean';
+ }
+
+ // Todo: implement default case
+};
+
+yy.UniOp.prototype.toJS = function(context, tableid, defcols) {
+ if (this.op === '~') {
+ return '(~(' + this.right.toJS(context, tableid, defcols) + '))';
+ }
+
+ if (this.op === '-') {
+ return '(-(' + this.right.toJS(context, tableid, defcols) + '))';
+ }
+
+ if (this.op === '+') {
+ return '(' + this.right.toJS(context, tableid, defcols) + ')';
+ }
+
+ if (this.op === 'NOT') {
+ return '!(' + this.right.toJS(context, tableid, defcols) + ')';
+ }
+
+ if (this.op === '#') {
+ if (this.right instanceof yy.Column) {
+ return "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])";
+ } else {
+ return (
+ '(alasql.databases[alasql.useid].objects[' +
+ this.right.toJS(context, tableid, defcols) +
+ '])'
+ );
+ }
+ }
+
+ // Please avoid === here
+ if (this.op == null) {
+ // jshint ignore:line
+ return '(' + this.right.toJS(context, tableid, defcols) + ')';
+ }
+
+ // Todo: implement default case.
+};
+
+yy.Column = function(params) {
+ return yy.extend(this, params);
+};
+yy.Column.prototype.toString = function(dontas) {
+ var s;
+ if (this.columnid == +this.columnid) {
+ // jshint ignore:line
+ s = '[' + this.columnid + ']';
+ } else {
+ s = this.columnid;
+ }
+ if (this.tableid) {
+ if (+this.columnid === this.columnid) {
+ s = this.tableid + s;
+ } else {
+ s = this.tableid + '.' + s;
+ }
+ if (this.databaseid) {
+ s = this.databaseid + '.' + s;
+ }
+ }
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ return s;
+};
+
+yy.Column.prototype.toJS = function(context, tableid, defcols) {
+
+ var s = '';
+ if (!this.tableid && tableid === '' && !defcols) {
+ if (this.columnid !== '_') {
+ s = context + "['" + this.columnid + "']";
+ } else {
+ if (context === 'g') {
+ s = "g['_']";
+ } else {
+ s = context;
+ }
+ }
+ } else {
+ if (context === 'g') {
+ // if(this.columnid == '_') {
+ // } else {
+ s = "g['" + this.nick + "']";
+ // }
+ } else if (this.tableid) {
+ if (this.columnid !== '_') {
+ // if() {
+ // s = context+'[\''+tableid + '\'][\''+this.tableid+'\'][\''+this.columnid+'\']';
+ // } else {
+ s = context + "['" + this.tableid + "']['" + this.columnid + "']";
+ // }
+ } else {
+ if (context === 'g') {
+ s = "g['_']";
+ } else {
+ s = context + "['" + this.tableid + "']";
+ }
+ }
+ } else if (defcols) {
+ var tbid = defcols[this.columnid];
+ if (tbid === '-') {
+ throw new Error(
+ 'Cannot resolve column "' +
+ this.columnid +
+ '" because it exists in two source tables'
+ );
+ } else if (tbid) {
+ if (this.columnid !== '_') {
+ s = context + "['" + tbid + "']['" + this.columnid + "']";
+ } else {
+ s = context + "['" + tbid + "']";
+ }
+
+ } else {
+ if (this.columnid !== '_') {
+ // if(defcols['.'][this.tableid]) {
+
+ // s = context+'[\''+tableid + '\'][\''+this.tableid + '\'][\''+this.columnid+'\']';
+ // } else {
+ s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
+ // }
+ } else {
+ s = context + "['" + (this.tableid || tableid) + "']";
+ }
+ }
+ } else if (tableid === -1) {
+ // if(this.columnid != '') {
+ s = context + "['" + this.columnid + "']";
+ // } else {
+ // s = context;
+ // }
+ } else {
+ if (this.columnid !== '_') {
+ s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']";
+ } else {
+ s = context + "['" + (this.tableid || tableid) + "']";
+ }
+ }
+ }
+
+ // console.trace(new Error());
+
+ return s;
+};
+
+yy.AggrValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.AggrValue.prototype.toString = function(dontas) {
+ var s = '';
+ if (this.aggregatorid === 'REDUCE') {
+ s += this.funcid + '(';
+ } else {
+ s += this.aggregatorid + '(';
+ }
+
+ if (this.distinct) {
+ s += 'DISTINCT ';
+ }
+
+ if (this.expression) {
+ s += this.expression.toString();
+ }
+
+ s += ')';
+
+ if (this.over) {
+ s += ' ' + this.over.toString();
+ }
+
+ if (this.alias && !dontas) s += ' AS ' + this.alias;
+ // if(this.alias) s += ' AS '+this.alias;
+ return s;
+};
+
+yy.AggrValue.prototype.findAggregator = function(query) {
+
+ // var colas = this.as || this.toString();
+
+ var colas = escapeq(this.toString()) + ':' + query.selectGroup.length;
+
+ // if(!query.selectColumns[colas]) {
+ // }
+
+ var found = false;
+
+ if (!found) {
+ if (!this.nick) {
+ this.nick = colas;
+ var found = false;
+ for (var i = 0; i < query.removeKeys.length; i++) {
+ if (query.removeKeys[i] === colas) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ query.removeKeys.push(colas);
+ }
+ }
+ query.selectGroup.push(this);
+ }
+
+ // this.reduced = true;
+ return;
+};
+
+yy.AggrValue.prototype.toType = function() {
+ if (
+ ['SUM', 'COUNT', 'AVG', 'MIN', 'MAX', 'AGGR', 'VAR', 'STDDEV'].indexOf(this.aggregatorid) >
+ -1
+ ) {
+ return 'number';
+ }
+
+ if (['ARRAY'].indexOf(this.aggregatorid) > -1) {
+ return 'array';
+ }
+
+ if (['FIRST', 'LAST'].indexOf(this.aggregatorid) > -1) {
+ return this.expression.toType();
+ }
+
+ // todo: implement default;
+};
+
+yy.AggrValue.prototype.toJS = function(/*context, tableid, defcols*/) {
+
+ var colas = this.nick;
+ if (colas === undefined) {
+ colas = this.toString();
+ }
+ return "g['" + colas + "']";
+};
+
+yy.OrderExpression = function(params) {
+ return yy.extend(this, params);
+};
+yy.OrderExpression.prototype.toString = yy.Expression.prototype.toString;
+
+yy.GroupExpression = function(params) {
+ return yy.extend(this, params);
+};
+yy.GroupExpression.prototype.toString = function() {
+ return this.type + '(' + this.group.toString() + ')';
+};
+
+// Alasql Linq library
+
+yy.FromData = function(params) {
+ return yy.extend(this, params);
+};
+yy.FromData.prototype.toString = function() {
+ if (this.data) return 'DATA(' + ((Math.random() * 10e15) | 0) + ')';
+ else return '?';
+};
+yy.FromData.prototype.toJS = function() {
+
+};
+
+yy.Select.prototype.exec = function(params, cb) {
+ if (this.preparams) params = this.preparams.concat(params);
+
+ var databaseid = alasql.useid;
+ db = alasql.databases[databaseid];
+ var sql = this.toString();
+ var hh = hash(sql);
+
+ var statement = this.compile(databaseid);
+ if (!statement) return;
+ statement.sql = sql;
+ statement.dbversion = db.dbversion;
+
+ // Secure sqlCache size
+ if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {
+ db.resetSqlCache();
+ }
+ db.sqlCacheSize++;
+ db.sqlCache[hh] = statement;
+ var res = (alasql.res = statement(params, cb));
+ return res;
+};
+
+yy.Select.prototype.Select = function() {
+ var self = this;
+ var agrs = [];
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
+ }
+
+ self.columns = [];
+
+ args.forEach(function(arg) {
+ if (typeof arg == 'string') {
+ self.columns.push(new yy.Column({columnid: arg}));
+ } else if (typeof arg == 'function') {
+ var pari = 0;
+ if (self.preparams) {
+ pari = self.preparams.length;
+ } else {
+ self.preparams = [];
+ }
+ self.preparams.push(arg);
+ self.columns.push(new yy.Column({columnid: '*', func: arg, param: pari}));
+ } else {
+ // Unknown type
+ }
+ });
+
+ return self;
+};
+
+yy.Select.prototype.From = function(tableid) {
+ var self = this;
+ if (!self.from) self.from = [];
+ if (Array.isArray(tableid)) {
+ var pari = 0;
+ if (self.preparams) {
+ pari = self.preparams.length;
+ } else {
+ self.preparams = [];
+ }
+ self.preparams.push(tableid);
+ self.from.push(new yy.ParamValue({param: pari}));
+ } else if (typeof tableid == 'string') {
+ self.from.push(new yy.Table({tableid: tableid}));
+ } else {
+ throw new Error('Unknown arguments in From() function');
+ }
+ return self;
+};
+
+yy.Select.prototype.OrderBy = function() {
+ var self = this;
+ var agrs = [];
+
+ self.order = [];
+
+ if (arguments.length == 0) {
+ // self.order.push(new yy.OrderExpression({expression: new yy.Column({columnid:"_"}), direction:'ASC'}));
+ args = ['_'];
+ } else if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
+ }
+
+ if (args.length > 0) {
+ args.forEach(function(arg) {
+ var expr = new yy.Column({columnid: arg});
+ if (typeof arg == 'function') {
+ expr = arg;
+ }
+ self.order.push(new yy.OrderExpression({expression: expr, direction: 'ASC'}));
+ });
+ }
+ return self;
+};
+
+yy.Select.prototype.Top = function(topnum) {
+ var self = this;
+ self.top = new yy.NumValue({value: topnum});
+ return self;
+};
+
+yy.Select.prototype.GroupBy = function() {
+ var self = this;
+ var agrs = [];
+
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ } else if (arguments.length == 1) {
+ if (Array.isArray(arguments[0])) {
+ args = arguments[0];
+ } else {
+ args = [arguments[0]];
+ }
+ } else {
+ throw new Error('Wrong number of arguments of Select() function');
+ }
+
+ self.group = [];
+
+ args.forEach(function(arg) {
+ var expr = new yy.Column({columnid: arg});
+ self.group.push(expr);
+ });
+
+ return self;
+};
+
+yy.Select.prototype.Where = function(expr) {
+ var self = this;
+ if (typeof expr == 'function') {
+ self.where = expr;
+ }
+ return self;
+};
+
+/*
+//
+// Functions for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.FuncValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.FuncValue.prototype.toString = function(dontas) {
+ var s = '';
+
+ if (alasql.fn[this.funcid]) s += this.funcid;
+ else if (alasql.aggr[this.funcid]) s += this.funcid;
+ else if (alasql.stdlib[this.funcid.toUpperCase()] || alasql.stdfn[this.funcid.toUpperCase()])
+ s += this.funcid.toUpperCase();
+
+ s += '(';
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(',');
+ }
+ s += ')';
+ if (this.as && !dontas) s += ' AS ' + this.as.toString();
+ // if(this.alias) s += ' AS '+this.alias;
+ return s;
+};
+
+yy.FuncValue.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ alasql.precompile(this, databaseid, params); // Precompile queries
+
+ var expr = new Function('params,alasql', 'var y;return ' + this.toJS('', '', null));
+ expr(params, alasql);
+ if (cb) res = cb(res);
+ return res;
+};
+
+yy.FuncValue.prototype.findAggregator = function(query) {
+ if (this.args && this.args.length > 0) {
+ this.args.forEach(function(arg) {
+ if (arg.findAggregator) arg.findAggregator(query);
+ });
+ }
+};
+
+yy.FuncValue.prototype.toJS = function(context, tableid, defcols) {
+ var s = '';
+ var funcid = this.funcid;
+ // IF this is standard compile functions
+ if (!alasql.fn[funcid] && alasql.stdlib[funcid.toUpperCase()]) {
+ if (this.args && this.args.length > 0) {
+ s += alasql.stdlib[funcid.toUpperCase()].apply(
+ this,
+ this.args.map(function(arg) {
+ return arg.toJS(context, tableid);
+ })
+ );
+ } else {
+ s += alasql.stdlib[funcid.toUpperCase()]();
+ }
+ } else if (!alasql.fn[funcid] && alasql.stdfn[funcid.toUpperCase()]) {
+ if (this.newid) s += 'new ';
+ s += 'alasql.stdfn.' + this.funcid.toUpperCase() + '(';
+ // if(this.args) s += this.args.toJS(context, tableid);
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toJS(context, tableid, defcols);
+ })
+ .join(',');
+ }
+ s += ')';
+ } else {
+ // This is user-defined run-time function
+ // TODO arguments!!!
+ // var s = '';
+ if (this.newid) s += 'new ';
+ s += 'alasql.fn.' + this.funcid + '(';
+ // if(this.args) s += this.args.toJS(context, tableid);
+ if (this.args && this.args.length > 0) {
+ s += this.args
+ .map(function(arg) {
+ return arg.toJS(context, tableid, defcols);
+ })
+ .join(',');
+ }
+ s += ')';
+ }
+
+ // if(this.alias) s += ' AS '+this.alias;
+ return s;
+};
+
+var stdlib = (alasql.stdlib = {});
+var stdfn = (alasql.stdfn = {});
+
+stdlib.ABS = function(a) {
+ return 'Math.abs(' + a + ')';
+};
+stdlib.CLONEDEEP = function(a) {
+ return 'alasql.utils.cloneDeep(' + a + ')';
+};
+
+stdfn.CONCAT = function() {
+ return Array.prototype.slice.call(arguments).join('');
+};
+stdlib.EXP = function(a) {
+ return 'Math.pow(Math.E,' + a + ')';
+};
+
+stdlib.IIF = function(a, b, c) {
+ if (arguments.length == 3) {
+ return '((' + a + ')?(' + b + '):(' + c + '))';
+ } else {
+ throw new Error('Number of arguments of IFF is not equals to 3');
+ }
+};
+stdlib.IFNULL = function(a, b) {
+ return '(' + a + '||' + b + ')';
+};
+stdlib.INSTR = function(s, p) {
+ return '((' + s + ').indexOf(' + p + ')+1)';
+};
+
+//stdlib.LEN = stdlib.LENGTH = function(s) {return '('+s+'+"").length';};
+
+stdlib.LEN = stdlib.LENGTH = function(s) {
+ return und(s, 'y.length');
+};
+//stdlib.LENGTH = function(s) {return '('+s+').length'};
+
+stdlib.LOWER = stdlib.LCASE = function(s) {
+ return und(s, 'String(y).toLowerCase()');
+};
+//stdlib.LCASE = function(s) {return '('+s+').toLowerCase()';}
+
+// Returns a character expression after it removes leading blanks.
+// see https://docs.microsoft.com/en-us/sql/t-sql/functions/ltrim-transact-sql
+stdlib.LTRIM = function(s) {
+ return und(s, 'y.replace(/^[ ]+/,"")');
+};
+
+// Returns a character string after truncating all trailing spaces.
+// see https://docs.microsoft.com/en-us/sql/t-sql/functions/rtrim-transact-sql
+stdlib.RTRIM = function(s) {
+ return und(s, 'y.replace(/[ ]+$/,"")');
+};
+
+stdlib.MAX = stdlib.GREATEST = function() {
+ return 'Math.max(' + Array.prototype.join.call(arguments, ',') + ')';
+};
+
+stdlib.MIN = stdlib.LEAST = function() {
+ return 'Math.min(' + Array.prototype.join.call(arguments, ',') + ')';
+};
+
+stdlib.SUBSTRING = stdlib.SUBSTR = stdlib.MID = function(a, b, c) {
+ if (arguments.length == 2) return und(a, 'y.substr(' + b + '-1)');
+ else if (arguments.length == 3) return und(a, 'y.substr(' + b + '-1,' + c + ')');
+};
+
+stdfn.REGEXP_LIKE = function(a, b, c) {
+
+ return (a || '').search(RegExp(b, c)) > -1;
+};
+
+// Here we uses undefined instead of null
+stdlib.ISNULL = stdlib.NULLIF = function(a, b) {
+ return '(' + a + '==' + b + '?undefined:' + a + ')';
+};
+
+stdlib.POWER = function(a, b) {
+ return 'Math.pow(' + a + ',' + b + ')';
+};
+
+stdlib.RANDOM = function(r) {
+ if (arguments.length == 0) {
+ return 'Math.random()';
+ } else {
+ return '(Math.random()*(' + r + ')|0)';
+ }
+};
+stdlib.ROUND = function(s, d) {
+ if (arguments.length == 2) {
+ return 'Math.round((' + s + ')*Math.pow(10,(' + d + ')))/Math.pow(10,(' + d + '))';
+ } else {
+ return 'Math.round(' + s + ')';
+ }
+};
+stdlib.CEIL = stdlib.CEILING = function(s) {
+ return 'Math.ceil(' + s + ')';
+};
+stdlib.FLOOR = function(s) {
+ return 'Math.floor(' + s + ')';
+};
+
+stdlib.ROWNUM = function() {
+ return '1';
+};
+stdlib.ROW_NUMBER = function() {
+ return '1';
+};
+
+stdlib.SQRT = function(s) {
+ return 'Math.sqrt(' + s + ')';
+};
+
+stdlib.TRIM = function(s) {
+ return und(s, 'y.trim()');
+};
+
+stdlib.UPPER = stdlib.UCASE = function(s) {
+ return und(s, 'String(y).toUpperCase()');
+};
+
+// Concatination of strings
+stdfn.CONCAT_WS = function() {
+ var args = Array.prototype.slice.call(arguments);
+ return args.slice(1, args.length).join(args[0]);
+};
+
+//stdlib.UCASE = function(s) {return '('+s+').toUpperCase()';}
+//REPLACE
+// RTRIM
+// SUBSTR
+// TRIM
+//REPLACE
+// RTRIM
+// SUBSTR
+// TRIM
+
+// Aggregator for joining strings
+alasql.aggr.GROUP_CONCAT = function(v, s, stage) {
+ if (stage === 1) {
+ return '' + v;
+ } else if (stage === 2) {
+ s += ',' + v;
+ return s;
+ }
+ return s;
+};
+
+alasql.aggr.MEDIAN = function(v, s, stage) {
+ if (stage === 2) {
+ if (v !== null) {
+ s.push(v);
+ }
+ return s;
+ } else if (stage === 1) {
+ if (v === null) {
+ return [];
+ }
+ return [v];
+ } else {
+ if (!s.length) {
+ return s;
+ }
+
+ var r = s.sort();
+ var p = (r.length + 1) / 2;
+ if (Number.isInteger(p)) {
+ return r[p - 1];
+ }
+
+ return (r[Math.floor(p - 1)] + r[Math.ceil(p - 1)]) / 2;
+ }
+};
+
+alasql.aggr.QUART = function(v, s, stage, nth) {
+ //Quartile (first quartile per default or input param)
+ if (stage === 2) {
+ if (v !== null) {
+ s.push(v);
+ }
+ return s;
+ } else if (stage === 1) {
+ if (v === null) {
+ return [];
+ }
+ return [v];
+ } else {
+ if (!s.length) {
+ return s;
+ }
+
+ nth = !nth ? 1 : nth;
+ var r = s.sort();
+ var p = (nth * (r.length + 1)) / 4;
+ if (Number.isInteger(p)) {
+ return r[p - 1]; //Integer value
+ }
+ return r[Math.floor(p)]; //Math.ceil -1 or Math.floor
+ }
+};
+
+alasql.aggr.QUART2 = function(v, s, stage) {
+ //Second Quartile
+ return alasql.aggr.QUART(v, s, stage, 2);
+};
+alasql.aggr.QUART3 = function(v, s, stage) {
+ //Third Quartile
+ return alasql.aggr.QUART(v, s, stage, 3);
+};
+
+// Standard deviation
+alasql.aggr.VAR = function(v, s, stage) {
+ if (stage === 1) {
+ if (v === null) {
+ return {arr: [], sum: 0};
+ }
+ return {arr: [v], sum: v};
+ } else if (stage === 2) {
+ if (v === null) {
+ return s;
+ }
+ s.arr.push(v);
+ s.sum += v;
+ return s;
+ } else {
+ var N = s.arr.length;
+ var avg = s.sum / N;
+ var std = 0;
+ for (var i = 0; i < N; i++) {
+ std += (s.arr[i] - avg) * (s.arr[i] - avg);
+ }
+ std = std / (N - 1);
+ return std;
+ }
+};
+
+alasql.aggr.STDEV = function(v, s, stage) {
+ if (stage === 1 || stage === 2) {
+ return alasql.aggr.VAR(v, s, stage);
+ } else {
+ return Math.sqrt(alasql.aggr.VAR(v, s, stage));
+ }
+};
+
+// Standard deviation
+// alasql.aggr.VARP = function(v,s,acc){
+
+// };
+
+alasql.aggr.VARP = function(v, s, stage) {
+ if (stage == 1) {
+ return {arr: [v], sum: v};
+ } else if (stage == 2) {
+ s.arr.push(v);
+ s.sum += v;
+ return s;
+ } else {
+ var N = s.arr.length;
+ var avg = s.sum / N;
+ var std = 0;
+ for (var i = 0; i < N; i++) {
+ std += (s.arr[i] - avg) * (s.arr[i] - avg);
+ }
+ std = std / N;
+ return std;
+ }
+};
+
+alasql.aggr.STD = alasql.aggr.STDDEV = alasql.aggr.STDEVP = function(v, s, stage) {
+ if (stage == 1 || stage == 2) {
+ return alasql.aggr.VARP(v, s, stage);
+ } else {
+ return Math.sqrt(alasql.aggr.VARP(v, s, stage));
+ }
+};
+
+alasql._aggrOriginal = alasql.aggr;
+alasql.aggr = {};
+Object.keys(alasql._aggrOriginal).forEach(function(k) {
+ alasql.aggr[k] = function(v, s, stage) {
+ if (stage === 3 && typeof s === 'undefined') return undefined;
+ return alasql._aggrOriginal[k].apply(null, arguments);
+ };
+});
+
+// String functions
+stdfn.REPLACE = function(target, pattern, replacement) {
+ return (target || '').split(pattern).join(replacement);
+};
+
+// This array is required for fast GUID generation
+var lut = [];
+for (var i = 0; i < 256; i++) {
+ lut[i] = (i < 16 ? '0' : '') + i.toString(16);
+}
+
+stdfn.NEWID = stdfn.UUID = stdfn.GEN_RANDOM_UUID = function() {
+ var d0 = (Math.random() * 0xffffffff) | 0;
+ var d1 = (Math.random() * 0xffffffff) | 0;
+ var d2 = (Math.random() * 0xffffffff) | 0;
+ var d3 = (Math.random() * 0xffffffff) | 0;
+ return (
+ lut[d0 & 0xff] +
+ lut[(d0 >> 8) & 0xff] +
+ lut[(d0 >> 16) & 0xff] +
+ lut[(d0 >> 24) & 0xff] +
+ '-' +
+ lut[d1 & 0xff] +
+ lut[(d1 >> 8) & 0xff] +
+ '-' +
+ lut[((d1 >> 16) & 0x0f) | 0x40] +
+ lut[(d1 >> 24) & 0xff] +
+ '-' +
+ lut[(d2 & 0x3f) | 0x80] +
+ lut[(d2 >> 8) & 0xff] +
+ '-' +
+ lut[(d2 >> 16) & 0xff] +
+ lut[(d2 >> 24) & 0xff] +
+ lut[d3 & 0xff] +
+ lut[(d3 >> 8) & 0xff] +
+ lut[(d3 >> 16) & 0xff] +
+ lut[(d3 >> 24) & 0xff]
+ );
+};
+
+/*
+//
+// CASE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.CaseValue = function(params) {
+ return yy.extend(this, params);
+};
+yy.CaseValue.prototype.toString = function() {
+ var s = 'CASE ';
+ if (this.expression) s += this.expression.toString();
+ if (this.whens) {
+ s += this.whens
+ .map(function(w) {
+ return ' WHEN ' + w.when.toString() + ' THEN ' + w.then.toString();
+ })
+ .join();
+ }
+ s += ' END';
+ return s;
+};
+
+yy.CaseValue.prototype.findAggregator = function(query) {
+
+ if (this.expression && this.expression.findAggregator) this.expression.findAggregator(query);
+ if (this.whens && this.whens.length > 0) {
+ this.whens.forEach(function(w) {
+ if (w.when.findAggregator) w.when.findAggregator(query);
+ if (w.then.findAggregator) w.then.findAggregator(query);
+ });
+ }
+ if (this.elses && this.elses.findAggregator) this.elses.findAggregator(query);
+};
+
+yy.CaseValue.prototype.toJS = function(context, tableid, defcols) {
+ var s = '((function(' + context + ',params,alasql){var y,r;';
+ if (this.expression) {
+ // this.expression.toJS(context, tableid)
+ s += 'v=' + this.expression.toJS(context, tableid, defcols) + ';';
+ s += (this.whens || [])
+ .map(function(w) {
+ return (
+ ' if(v==' +
+ w.when.toJS(context, tableid, defcols) +
+ ') {r=' +
+ w.then.toJS(context, tableid, defcols) +
+ '}'
+ );
+ })
+ .join(' else ');
+ if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
+ } else {
+ s += (this.whens || [])
+ .map(function(w) {
+ return (
+ ' if(' +
+ w.when.toJS(context, tableid, defcols) +
+ ') {r=' +
+ w.then.toJS(context, tableid, defcols) +
+ '}'
+ );
+ })
+ .join(' else ');
+ if (this.elses) s += ' else {r=' + this.elses.toJS(context, tableid, defcols) + '}';
+ }
+ // TODO remove bind from CASE
+ s += ';return r;}).bind(this))(' + context + ',params,alasql)';
+
+ return s;
+};
+
+/*
+//
+// JSON for Alasql.js
+// Date: 19.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Json = function(params) {
+ return yy.extend(this, params);
+};
+yy.Json.prototype.toString = function() {
+ var s = ''; // '@'
+ s += JSONtoString(this.value);
+ s += '';
+ return s;
+};
+
+var JSONtoString = (alasql.utils.JSONtoString = function(obj) {
+ var s = '';
+ if (typeof obj == 'string') s = '"' + obj + '"';
+ else if (typeof obj == 'number') s = obj;
+ else if (typeof obj == 'boolean') s = obj;
+ else if (typeof obj == 'object') {
+ if (Array.isArray(obj)) {
+ s +=
+ '[' +
+ obj
+ .map(function(b) {
+ return JSONtoString(b);
+ })
+ .join(',') +
+ ']';
+ } else if (!obj.toJS || obj instanceof yy.Json) {
+ // to prevent recursion
+ s = '{';
+ var ss = [];
+ for (var k in obj) {
+ var s1 = '';
+ if (typeof k == 'string') s1 += '"' + k + '"';
+ else if (typeof k == 'number') s1 += k;
+ else if (typeof k == 'boolean') s1 += k;
+ else {
+ throw new Error('THis is not ES6... no expressions on left side yet');
+ }
+ s1 += ':' + JSONtoString(obj[k]);
+ ss.push(s1);
+ }
+ s += ss.join(',') + '}';
+ } else if (obj.toString) {
+ s = obj.toString();
+ } else {
+ throw new Error('1Can not show JSON object ' + JSON.stringify(obj));
+ }
+ } else {
+ throw new Error('2Can not show JSON object ' + JSON.stringify(obj));
+ }
+
+ return s;
+});
+
+function JSONtoJS(obj, context, tableid, defcols) {
+ var s = '';
+ if (typeof obj == 'string') s = '"' + obj + '"';
+ else if (typeof obj == 'number') s = '(' + obj + ')';
+ else if (typeof obj == 'boolean') s = obj;
+ else if (typeof obj == 'object') {
+ if (Array.isArray(obj)) {
+ s +=
+ '[' +
+ obj
+ .map(function(b) {
+ return JSONtoJS(b, context, tableid, defcols);
+ })
+ .join(',') +
+ ']';
+ } else if (!obj.toJS || obj instanceof yy.Json) {
+ // to prevent recursion
+ s = '{';
+ var ss = [];
+ for (var k in obj) {
+ var s1 = '';
+ if (typeof k == 'string') s1 += '"' + k + '"';
+ else if (typeof k == 'number') s1 += k;
+ else if (typeof k == 'boolean') s1 += k;
+ else {
+ throw new Error('THis is not ES6... no expressions on left side yet');
+ }
+ s1 += ':' + JSONtoJS(obj[k], context, tableid, defcols);
+ ss.push(s1);
+ }
+ s += ss.join(',') + '}';
+ } else if (obj.toJS) {
+ s = obj.toJS(context, tableid, defcols);
+ } else {
+ throw new Error('1Can not parse JSON object ' + JSON.stringify(obj));
+ }
+ } else {
+ throw new Error('2Can not parse JSON object ' + JSON.stringify(obj));
+ }
+
+ return s;
+}
+
+yy.Json.prototype.toJS = function(context, tableid, defcols) {
+ // TODO redo
+ return JSONtoJS(this.value, context, tableid, defcols);
+};
+
+/*
+//
+// CAST and CONVERT functions
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Convert = function(params) {
+ return yy.extend(this, params);
+};
+yy.Convert.prototype.toString = function() {
+ var s = 'CONVERT(';
+ s += this.dbtypeid;
+ if (typeof this.dbsize != 'undefined') {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) s += ',' + this.dbprecision;
+ s += ')';
+ }
+ s += ',' + this.expression.toString();
+ if (this.style) s += ',' + this.style;
+ s += ')';
+ return s;
+};
+yy.Convert.prototype.toJS = function(context, tableid, defcols) {
+ // if(this.style) {
+ return (
+ 'alasql.stdfn.CONVERT(' +
+ this.expression.toJS(context, tableid, defcols) +
+ ',{dbtypeid:"' +
+ this.dbtypeid +
+ '",dbsize:' +
+ this.dbsize +
+ ',dbprecision:' +
+ this.dbprecision +
+ ',style:' +
+ this.style +
+ '})'
+ );
+ // }
+
+ throw new Error('There is not such type conversion for ' + this.toString());
+};
+
+/**
+ Convert one type to another
+ */
+alasql.stdfn.CONVERT = function(value, args) {
+ var val = value;
+
+ if (args.style) {
+ // TODO 9,109, 20,120,21,121,126,130,131 conversions
+ var t;
+ if (/\d{8}/.test(val)) {
+ t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));
+ } else {
+ t = new Date(val);
+ }
+ switch (args.style) {
+ case 1: // mm/dd/yy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 2: // yy.mm.dd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 3: // dd/mm/yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 4: // dd.mm.yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 5: // dd-mm-yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 6: // dd mon yy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ ' ' +
+ t
+ .toString()
+ .substr(4, 3)
+ .toLowerCase() +
+ ' ' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 7: // Mon dd,yy
+ val =
+ t.toString().substr(4, 3) +
+ ' ' +
+ ('0' + t.getDate()).substr(-2) +
+ ',' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 8: // hh:mm:ss
+ case 108: // hh:mm:ss
+ val =
+ ('0' + t.getHours()).substr(-2) +
+ ':' +
+ ('0' + t.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + t.getSeconds()).substr(-2);
+ break;
+ case 10: // mm-dd-yy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + t.getYear()).substr(-2);
+ break;
+ case 11: // yy/mm/dd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 12: // yymmdd
+ val =
+ ('0' + t.getYear()).substr(-2) +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 101: // mm/dd/yyyy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ t.getFullYear();
+ break;
+ case 102: // yyyy.mm.dd
+ val =
+ t.getFullYear() +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ case 103: // dd/mm/yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ t.getFullYear();
+ break;
+ case 104: // dd.mm.yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '.' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '.' +
+ t.getFullYear();
+ break;
+ case 105: // dd-mm-yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ t.getFullYear();
+ break;
+ case 106: // dd mon yyyy
+ val =
+ ('0' + t.getDate()).substr(-2) +
+ ' ' +
+ t
+ .toString()
+ .substr(4, 3)
+ .toLowerCase() +
+ ' ' +
+ t.getFullYear();
+ break;
+ case 107: // Mon dd,yyyy
+ val =
+ t.toString().substr(4, 3) +
+ ' ' +
+ ('0' + t.getDate()).substr(-2) +
+ ',' +
+ t.getFullYear();
+ break;
+ case 110: // mm-dd-yyyy
+ val =
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '-' +
+ ('0' + t.getDate()).substr(-2) +
+ '-' +
+ t.getFullYear();
+ break;
+ case 111: // yyyy/mm/dd
+ val =
+ t.getFullYear() +
+ '/' +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ '/' +
+ ('0' + t.getDate()).substr(-2);
+ break;
+
+ case 112: // yyyymmdd
+ val =
+ t.getFullYear() +
+ ('0' + (t.getMonth() + 1)).substr(-2) +
+ ('0' + t.getDate()).substr(-2);
+ break;
+ default:
+ throw new Error('The CONVERT style ' + args.style + ' is not realized yet.');
+ }
+ }
+
+ var udbtypeid = args.dbtypeid.toUpperCase();
+
+ if (args.dbtypeid == 'Date') {
+ return new Date(val);
+ } else if (udbtypeid == 'DATE') {
+ var d = new Date(val);
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ return s;
+ } else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {
+ var d = new Date(val);
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ s +=
+ ' ' +
+ ('0' + d.getHours()).substr(-2) +
+ ':' +
+ ('0' + d.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + d.getSeconds()).substr(-2);
+ s += '.' + ('00' + d.getMilliseconds()).substr(-3);
+ return s;
+ } else if (['MONEY'].indexOf(udbtypeid) > -1) {
+ var m = +val;
+ return (m | 0) + ((m * 100) % 100) / 100;
+ } else if (['BOOLEAN'].indexOf(udbtypeid) > -1) {
+ return !!val;
+ } else if (
+ ['INT', 'INTEGER', 'SMALLINT', 'BIGINT', 'SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(
+ args.dbtypeid.toUpperCase()
+ ) > -1
+ ) {
+ return val | 0;
+ } else if (
+ ['STRING', 'VARCHAR', 'NVARCHAR', 'CHARACTER VARIABLE'].indexOf(
+ args.dbtypeid.toUpperCase()
+ ) > -1
+ ) {
+ if (args.dbsize) return ('' + val).substr(0, args.dbsize);
+ else return '' + val;
+ } else if (['CHAR', 'CHARACTER', 'NCHAR'].indexOf(udbtypeid) > -1) {
+ return (val + new Array(args.dbsize + 1).join(' ')).substr(0, args.dbsize);
+ //else return ""+val.substr(0,1);
+ } else if (['NUMBER', 'FLOAT', 'DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) {
+ var m = +val;
+ //toPrecision sets the number of numbers total in the result
+ m = args.dbsize !== undefined ? parseFloat(m.toPrecision(args.dbsize)) : m;
+ //toFixed sets the number of numbers to the right of the decimal
+ m = args.dbprecision !== undefined ? parseFloat(m.toFixed(args.dbprecision)) : m;
+ return m;
+ } else if (['JSON'].indexOf(udbtypeid) > -1) {
+ if (typeof val == 'object') return val;
+ try {
+ return JSON.parse(val);
+ } catch (err) {
+ throw new Error('Cannot convert string to JSON');
+ }
+ }
+ return val;
+};
+
+/*
+//
+// CREATE TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global alasql, yy, hash */
+
+yy.ColumnDef = function(params) {
+ return yy.extend(this, params);
+};
+yy.ColumnDef.prototype.toString = function() {
+ var s = this.columnid;
+ if (this.dbtypeid) {
+ s += ' ' + this.dbtypeid;
+ }
+
+ if (this.dbsize) {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) {
+ s += ',' + this.dbprecision;
+ }
+ s += ')';
+ }
+
+ if (this.primarykey) {
+ s += ' PRIMARY KEY';
+ }
+
+ if (this.notnull) {
+ s += ' NOT NULL';
+ }
+
+ return s;
+};
+
+yy.CreateTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateTable.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.temporary) {
+ s += ' TEMPORARY';
+ }
+
+ if (this.view) {
+ s += ' VIEW';
+ } else {
+ s += ' ' + (this["class"] ? 'CLASS' : 'TABLE');
+ }
+ if (this.ifnotexists) {
+ s += ' IF NOT EXISTS';
+ }
+ s += ' ' + this.table.toString();
+ if (this.viewcolumns) {
+ s +=
+ '(' +
+ this.viewcolumns
+ .map(function(vcol) {
+ return vcol.toString();
+ })
+ .join(',') +
+ ')';
+ }
+ if (this.as) {
+ s += ' AS ' + this.as;
+ } else {
+ var ss = this.columns.map(function(col) {
+ return col.toString();
+ });
+ s += ' (' + ss.join(',') + ')';
+ }
+
+ if (this.view && this.select) {
+ s += ' AS ' + this.select.toString();
+ }
+
+ return s;
+};
+
+// CREATE TABLE
+//yy.CreateTable.prototype.compile = returnUndefined;
+yy.CreateTable.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[this.table.databaseid || databaseid];
+
+ var tableid = this.table.tableid;
+ if (!tableid) {
+ throw new Error('Table name is not defined');
+ }
+
+ // var ifnotexists = this.ifnotexists;
+ var columns = this.columns;
+ // if(false) {
+ // if(!columns) {
+ // throw new Error('Columns are not defined');
+ // }
+ // }
+ var constraints = this.constraints || [];
+
+ // IF NOT EXISTS
+ if (this.ifnotexists && db.tables[tableid]) {
+ return cb ? cb(0) : 0;
+ }
+
+ if (db.tables[tableid]) {
+ throw new Error(
+ "Can not create table '" +
+ tableid +
+ "', because it already exists in the database '" +
+ db.databaseid +
+ "'"
+ );
+ }
+
+ var table = (db.tables[tableid] = new alasql.Table()); // TODO Can use special object?
+ // If this is a class
+ if (this["class"]) {
+ table.isclass = true;
+ }
+
+ var ss = []; // DEFAULT function components
+ var uss = []; // ON UPDATE function components
+ if (columns) {
+ columns.forEach(function(col) {
+ var dbtypeid = col.dbtypeid;
+ if (!alasql.fn[dbtypeid]) {
+ dbtypeid = dbtypeid.toUpperCase();
+ }
+
+ // Process SERIAL data type like Postgress
+ if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) {
+ col.identity = {value: 1, step: 1};
+ }
+
+ var newcol = {
+ columnid: col.columnid,
+ dbtypeid: dbtypeid,
+ dbsize: col.dbsize, // Fixed issue #150
+ dbprecision: col.dbprecision, // Fixed issue #150
+ notnull: col.notnull,
+ identity: col.identity,
+ };
+ if (col.identity) {
+ table.identities[col.columnid] = {
+ value: +col.identity.value,
+ step: +col.identity.step,
+ };
+ // ss.push('\''+col.columnid+'\':(alasql.databases[\''+db.databaseid+'\'].tables[\''
+ // +tableid+'\'].identities[\''+col.columnid+'\'].value)');
+ }
+ if (col.check) {
+ table.checks.push({
+ id: col.check.constrantid,
+ fn: new Function('r', 'var y;return ' + col.check.expression.toJS('r', '')),
+ });
+ }
+
+ if (col["default"]) {
+ ss.push("'" + col.columnid + "':" + col["default"].toJS('r', ''));
+ }
+
+ // Check for primary key
+ if (col.primarykey) {
+ var pk = (table.pk = {});
+ pk.columns = [col.columnid];
+ pk.onrightfns = "r['" + col.columnid + "']";
+ pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
+ pk.hh = hash(pk.onrightfns);
+ table.uniqs[pk.hh] = {};
+ }
+
+ // UNIQUE clause
+ if (col.unique) {
+ var uk = {};
+ table.uk = table.uk || [];
+ table.uk.push(uk);
+ uk.columns = [col.columnid];
+ uk.onrightfns = "r['" + col.columnid + "']";
+ uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
+ uk.hh = hash(uk.onrightfns);
+ table.uniqs[uk.hh] = {};
+ }
+
+ // UNIQUE clause
+ if (col.foreignkey) {
+
+ var fk = col.foreignkey.table;
+ var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
+ if (typeof fk.columnid === 'undefined') {
+ if (fktable.pk.columns && fktable.pk.columns.length > 0) {
+ fk.columnid = fktable.pk.columns[0];
+ } else {
+ throw new Error('FOREIGN KEY allowed only to tables with PRIMARY KEYs');
+ }
+ }
+
+ var fkfn = function(r) {
+ var rr = {};
+ if (typeof r[col.columnid] === 'undefined') {
+ return true;
+ }
+ rr[fk.columnid] = r[col.columnid];
+ var addr = fktable.pk.onrightfn(rr);
+
+ if (!fktable.uniqs[fktable.pk.hh][addr]) {
+ throw new Error(
+ 'Foreign key "' +
+ r[col.columnid] +
+ '" is not found in table ' +
+ fktable.tableid
+ );
+ }
+ return true;
+ };
+ table.checks.push({fn: fkfn});
+
+ }
+
+ if (col.onupdate) {
+ uss.push("r['" + col.columnid + "']=" + col.onupdate.toJS('r', ''));
+ }
+
+ table.columns.push(newcol);
+ table.xcolumns[newcol.columnid] = newcol;
+ });
+ }
+ table.defaultfns = ss.join(',');
+ table.onupdatefns = uss.join(';');
+
+ // if(constraints) {
+ constraints.forEach(function(con) {
+
+ var checkfn;
+
+ if (con.type === 'PRIMARY KEY') {
+ if (table.pk) {
+ throw new Error('Primary key already exists');
+ }
+ var pk = (table.pk = {});
+ pk.columns = con.columns;
+ pk.onrightfns = pk.columns
+ .map(function(columnid) {
+ return "r['" + columnid + "']";
+ })
+ .join("+'`'+");
+ pk.onrightfn = new Function('r', 'var y;return ' + pk.onrightfns);
+ pk.hh = hash(pk.onrightfns);
+ table.uniqs[pk.hh] = {};
+ } else if (con.type === 'CHECK') {
+
+ checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', ''));
+ } else if (con.type === 'UNIQUE') {
+
+ var uk = {};
+ table.uk = table.uk || [];
+ table.uk.push(uk);
+ uk.columns = con.columns;
+ uk.onrightfns = uk.columns
+ .map(function(columnid) {
+ return "r['" + columnid + "']";
+ })
+ .join("+'`'+");
+ uk.onrightfn = new Function('r', 'var y;return ' + uk.onrightfns);
+ uk.hh = hash(uk.onrightfns);
+ table.uniqs[uk.hh] = {};
+ } else if (con.type === 'FOREIGN KEY') {
+
+ var col = table.xcolumns[con.columns[0]];
+ var fk = con.fktable;
+ if (con.fkcolumns && con.fkcolumns.length > 0) {
+ fk.columnid = con.fkcolumns[0];
+ }
+ var fktable = alasql.databases[fk.databaseid || databaseid].tables[fk.tableid];
+ if (typeof fk.columnid === 'undefined') {
+ fk.columnid = fktable.pk.columns[0];
+ }
+
+ checkfn = function(r) {
+ var rr = {};
+ if (typeof r[col.columnid] === 'undefined') {
+ return true;
+ }
+ rr[fk.columnid] = r[col.columnid];
+ var addr = fktable.pk.onrightfn(rr);
+
+ if (!fktable.uniqs[fktable.pk.hh][addr]) {
+
+ throw new Error(
+ 'Foreign key "' +
+ r[col.columnid] +
+ '" is not found in table ' +
+ fktable.tableid
+ );
+ }
+ return true;
+ };
+ }
+ if (checkfn) {
+ table.checks.push({fn: checkfn, id: con.constraintid, fk: con.type === 'FOREIGN KEY'});
+ }
+ });
+
+ if (this.view && this.viewcolumns) {
+ var self = this;
+ this.viewcolumns.forEach(function(vcol, idx) {
+ self.select.columns[idx].as = vcol.columnid;
+ });
+ }
+
+ //Used in 420from queryfn when table.view = true!
+ if (this.view && this.select) {
+ table.view = true;
+
+ table.select = this.select.compile(this.table.databaseid || databaseid);
+ }
+
+ if (db.engineid) {
+
+ return alasql.engines[db.engineid].createTable(
+ this.table.databaseid || databaseid,
+ tableid,
+ this.ifnotexists,
+ cb
+ );
+
+ // return res1;
+ }
+
+ // }
+ // if(table.pk) {
+
+ table.insert = function(r, orreplace) {
+ var oldinserted = alasql.inserted;
+ alasql.inserted = [r];
+
+ var table = this;
+
+ var toreplace = false; // For INSERT OR REPLACE
+
+ /*
+ // IDENTINY or AUTO_INCREMENT
+ // if(table.identities && table.identities.length>0) {
+ // table.identities.forEach(function(ident){
+ // r[ident.columnid] = ident.value;
+ // });
+ // }
+*/
+ // Trigger prevent functionality
+ var prevent = false;
+ for (var tr in table.beforeinsert) {
+ var trigger = table.beforeinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
+ }
+ }
+ }
+ if (prevent) return;
+
+ // Trigger prevent functionality
+ var escape = false;
+ for (tr in table.insteadofinsert) {
+ escape = true;
+ trigger = table.insteadofinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ if (escape) return;
+
+ for (var columnid in table.identities) {
+ var ident = table.identities[columnid];
+
+ r[columnid] = ident.value;
+
+ }
+
+ if (table.checks && table.checks.length > 0) {
+ table.checks.forEach(function(check) {
+ if (!check.fn(r)) {
+ // if(orreplace) toreplace=true; else
+ throw new Error('Violation of CHECK constraint ' + (check.id || ''));
+ }
+ });
+ }
+
+ table.columns.forEach(function(column) {
+ if (column.notnull && typeof r[column.columnid] === 'undefined') {
+ throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
+ }
+ });
+ if (table.pk) {
+ var pk = table.pk;
+ var addr = pk.onrightfn(r);
+
+ if (typeof table.uniqs[pk.hh][addr] !== 'undefined') {
+
+ if (orreplace) toreplace = table.uniqs[pk.hh][addr];
+ else
+ throw new Error(
+ 'Cannot insert record, because it already exists in primary key index'
+ );
+ }
+ // table.uniqs[pk.hh][addr]=r;
+ }
+
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][ukaddr] !== 'undefined') {
+ if (orreplace) toreplace = table.uniqs[uk.hh][ukaddr];
+ else
+ throw new Error(
+ 'Cannot insert record, because it already exists in unique index'
+ );
+ }
+ // table.uniqs[uk.hh][ukaddr]=r;
+ });
+ }
+
+ if (toreplace) {
+ // Do UPDATE!!!
+
+ table.update(
+ function(t) {
+ for (var f in r) t[f] = r[f];
+ },
+ table.data.indexOf(toreplace),
+ params
+ );
+ } else {
+ table.data.push(r);
+
+ // Final change before insert
+
+ // Update indices
+
+ for (var columnid in table.identities) {
+ var ident = table.identities[columnid];
+
+ ident.value += ident.step;
+
+ }
+
+ if (table.pk) {
+ var pk = table.pk;
+ var addr = pk.onrightfn(r);
+ table.uniqs[pk.hh][addr] = r;
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ table.uniqs[uk.hh][ukaddr] = r;
+ });
+ }
+ }
+
+ // Trigger prevent functionality
+ for (var tr in table.afterinsert) {
+ var trigger = table.afterinsert[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ alasql.inserted = oldinserted;
+ };
+
+ table["delete"] = function(index) {
+ var table = this;
+ var r = table.data[index];
+
+ // Prevent trigger
+ var prevent = false;
+ for (var tr in table.beforedelete) {
+ var trigger = table.beforedelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](r) === false) prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
+ }
+ }
+ }
+ if (prevent) return false;
+
+ // Trigger prevent functionality
+ var escape = false;
+ for (var tr in table.insteadofdelete) {
+ escape = true;
+ var trigger = table.insteadofdelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ if (escape) return;
+
+ if (this.pk) {
+ var pk = this.pk;
+ var addr = pk.onrightfn(r);
+ if (typeof this.uniqs[pk.hh][addr] === 'undefined') {
+ throw new Error('Something wrong with primary key index on table');
+ } else {
+ this.uniqs[pk.hh][addr] = undefined;
+ }
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ var ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][ukaddr] === 'undefined') {
+ throw new Error('Something wrong with unique index on table');
+ }
+ table.uniqs[uk.hh][ukaddr] = undefined;
+ });
+ }
+ };
+
+ table.deleteall = function() {
+ this.data.length = 0;
+ if (this.pk) {
+ // var r = this.data[i];
+ this.uniqs[this.pk.hh] = {};
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ table.uniqs[uk.hh] = {};
+ });
+ }
+ };
+
+ table.update = function(assignfn, i, params) {
+ // TODO: Analyze the speed
+ var r = cloneDeep(this.data[i]);
+
+ var pk;
+ // PART 1 - PRECHECK
+ if (this.pk) {
+ pk = this.pk;
+ pk.pkaddr = pk.onrightfn(r, params);
+ if (typeof this.uniqs[pk.hh][pk.pkaddr] === 'undefined') {
+ throw new Error('Something wrong with index on table');
+ }
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ uk.ukaddr = uk.onrightfn(r);
+ if (typeof table.uniqs[uk.hh][uk.ukaddr] === 'undefined') {
+ throw new Error('Something wrong with unique index on table');
+ }
+ });
+ }
+
+ assignfn(r, params, alasql);
+
+ // Prevent trigger
+ var prevent = false;
+ for (var tr in table.beforeupdate) {
+ var trigger = table.beforeupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ if (alasql.fn[trigger.funcid](this.data[i], r) === false)
+ prevent = prevent || true;
+ } else if (trigger.statement) {
+ if (trigger.statement.execute(databaseid) === false) prevent = prevent || true;
+ }
+ }
+ }
+ if (prevent) return false;
+
+ // Trigger prevent functionality
+ var escape = false;
+ for (var tr in table.insteadofupdate) {
+ escape = true;
+ var trigger = table.insteadofupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](this.data[i], r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ if (escape) return;
+
+ // PART 2 - POST CHECK
+ if (table.checks && table.checks.length > 0) {
+ table.checks.forEach(function(check) {
+ if (!check.fn(r)) {
+ throw new Error('Violation of CHECK constraint ' + (check.id || ''));
+ }
+ });
+ }
+
+ table.columns.forEach(function(column) {
+ if (column.notnull && typeof r[column.columnid] === 'undefined') {
+ throw new Error('Wrong NULL value in NOT NULL column ' + column.columnid);
+ }
+ });
+ if (this.pk) {
+ pk.newpkaddr = pk.onrightfn(r);
+ if (
+ typeof this.uniqs[pk.hh][pk.newpkaddr] !== 'undefined' &&
+ pk.newpkaddr !== pk.pkaddr
+ ) {
+ throw new Error('Record already exists');
+ }
+ }
+
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ uk.newukaddr = uk.onrightfn(r);
+ if (
+ typeof table.uniqs[uk.hh][uk.newukaddr] !== 'undefined' &&
+ uk.newukaddr !== uk.ukaddr
+ ) {
+ throw new Error('Record already exists');
+ }
+ });
+ }
+
+ // PART 3 UPDATE
+ if (this.pk) {
+ this.uniqs[pk.hh][pk.pkaddr] = undefined;
+ this.uniqs[pk.hh][pk.newpkaddr] = r;
+ }
+ if (table.uk && table.uk.length) {
+ table.uk.forEach(function(uk) {
+ table.uniqs[uk.hh][uk.ukaddr] = undefined;
+ table.uniqs[uk.hh][uk.newukaddr] = r;
+ });
+ }
+
+ this.data[i] = r;
+
+ // Trigger prevent functionality
+ for (var tr in table.afterupdate) {
+ var trigger = table.afterupdate[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid](this.data[i], r);
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+ };
+
+ var res;
+
+ if (!alasql.options.nocount) {
+ res = 1;
+ }
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+//
+// Date functions
+//
+// (c) 2014, Andrey Gershun
+//
+
+/** Standard JavaScript data types */
+
+alasql.fn.Date = Object;
+alasql.fn.Date = Date;
+alasql.fn.Number = Number;
+alasql.fn.String = String;
+alasql.fn.Boolean = Boolean;
+
+/** Extend Object with properties */
+stdfn.EXTEND = alasql.utils.extend;
+
+stdfn.CHAR = String.fromCharCode.bind(String);
+stdfn.ASCII = function(a) {
+ return a.charCodeAt(0);
+};
+
+/**
+ Return first non-null argument
+ See https://msdn.microsoft.com/en-us/library/ms190349.aspx
+*/
+stdfn.COALESCE = function() {
+ for (var i = 0; i < arguments.length; i++) {
+ if (typeof arguments[i] == 'undefined') continue;
+ if (typeof arguments[i] == 'number' && isNaN(arguments[i])) continue;
+ return arguments[i];
+ }
+ return undefined;
+};
+
+stdfn.USER = function() {
+ return 'alasql';
+};
+
+stdfn.OBJECT_ID = function(objid) {
+ return !!alasql.tables[objid];
+};
+
+stdfn.DATE = function(d) {
+ if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));
+ return new Date(d);
+};
+
+stdfn.NOW = function() {
+ var d = new Date();
+ var s =
+ d.getFullYear() +
+ '.' +
+ ('0' + (d.getMonth() + 1)).substr(-2) +
+ '.' +
+ ('0' + d.getDate()).substr(-2);
+ s +=
+ ' ' +
+ ('0' + d.getHours()).substr(-2) +
+ ':' +
+ ('0' + d.getMinutes()).substr(-2) +
+ ':' +
+ ('0' + d.getSeconds()).substr(-2);
+ s += '.' + ('00' + d.getMilliseconds()).substr(-3);
+ return s;
+};
+
+stdfn.GETDATE = stdfn.NOW;
+stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
+
+stdfn.SECOND = function(d) {
+ var d = new Date(d);
+ return d.getSeconds();
+};
+
+stdfn.MINUTE = function(d) {
+ var d = new Date(d);
+ return d.getMinutes();
+};
+
+stdfn.HOUR = function(d) {
+ var d = new Date(d);
+ return d.getHours();
+};
+
+stdfn.DAYOFWEEK = stdfn.WEEKDAY = function(d) {
+ var d = new Date(d);
+ return d.getDay();
+};
+
+stdfn.DAY = stdfn.DAYOFMONTH = function(d) {
+ var d = new Date(d);
+ return d.getDate();
+};
+
+stdfn.MONTH = function(d) {
+ var d = new Date(d);
+ return d.getMonth() + 1;
+};
+
+stdfn.YEAR = function(d) {
+ var d = new Date(d);
+ return d.getFullYear();
+};
+
+var PERIODS = {
+ year: 1000 * 3600 * 24 * 365,
+ quarter: (1000 * 3600 * 24 * 365) / 4,
+ month: 1000 * 3600 * 24 * 30,
+ week: 1000 * 3600 * 24 * 7,
+ day: 1000 * 3600 * 24,
+ dayofyear: 1000 * 3600 * 24,
+ weekday: 1000 * 3600 * 24,
+ hour: 1000 * 3600,
+ minute: 1000 * 60,
+ second: 1000,
+ millisecond: 1,
+ microsecond: 0.001,
+};
+
+alasql.stdfn.DATEDIFF = function(period, d1, d2) {
+ var interval = new Date(d2).getTime() - new Date(d1).getTime();
+ return interval / PERIODS[period.toLowerCase()];
+};
+
+alasql.stdfn.DATEADD = function(period, interval, d) {
+ var nd = new Date(d).getTime() + interval * PERIODS[period.toLowerCase()];
+ return new Date(nd);
+};
+
+alasql.stdfn.INTERVAL = function(interval, period) {
+ return interval * PERIODS[period.toLowerCase()];
+};
+
+alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function(d, interval) {
+ var nd = new Date(d).getTime() + interval;
+ return new Date(nd);
+};
+
+alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function(d, interval) {
+ var nd = new Date(d).getTime() - interval;
+ return new Date(nd);
+};
+
+/*
+//
+// DROP TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.DropTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropTable.prototype.toString = function() {
+ var s = 'DROP' + ' ';
+ if (this.view) s += 'VIEW';
+ else s += 'TABLE';
+ if (this.ifexists) s += ' IF EXISTS';
+ s += ' ' + this.tables.toString();
+ return s;
+};
+
+// DROP TABLE
+/**
+ Drop tables
+ @param {string} databaseid Database id
+ @param {object} params Parameters
+ @param {callback} cb Callback function
+ @return Number of dropped tables
+ @example
+ DROP TABLE one;
+ DROP TABLE IF NOT EXISTS two, three;
+*/
+yy.DropTable.prototype.execute = function(databaseid, params, cb) {
+ var ifexists = this.ifexists;
+ var res = 0; // No tables removed
+ var count = 0;
+ var tlen = this.tables.length;
+
+ // For each table in the list
+ this.tables.forEach(function(table) {
+ var db = alasql.databases[table.databaseid || databaseid];
+ var tableid = table.tableid;
+
+ /** @todo Test with AUTOCOMMIT flag is ON */
+ /** @todo Test with IndexedDB and multiple tables */
+
+ if (!ifexists || (ifexists && db.tables[tableid])) {
+ if (!db.tables[tableid]) {
+ if (!alasql.options.dropifnotexists) {
+ throw new Error(
+ "Can not drop table '" +
+ table.tableid +
+ "', because it does not exist in the database."
+ );
+ }
+ } else {
+ if (db.engineid /*&& alasql.options.autocommit*/) {
+ alasql.engines[db.engineid].dropTable(
+ table.databaseid || databaseid,
+ tableid,
+ ifexists,
+ function(res1) {
+ delete db.tables[tableid];
+ res += res1;
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
+ );
+ } else {
+ delete db.tables[tableid];
+ res++;
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
+ }
+ } else {
+ count++;
+ if (count == tlen && cb) cb(res);
+ }
+ });
+ // if(cb) res = cb(res);
+ return res;
+};
+
+yy.TruncateTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.TruncateTable.prototype.toString = function() {
+ var s = 'TRUNCATE TABLE';
+ s += ' ' + this.table.toString();
+ return s;
+};
+
+yy.TruncateTable.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ var tableid = this.table.tableid;
+ if (db.engineid) {
+ return alasql.engines[db.engineid].truncateTable(
+ this.table.databaseid || databaseid,
+ tableid,
+ this.ifexists,
+ cb
+ );
+ }
+ if (db.tables[tableid]) {
+ db.tables[tableid].data = [];
+ } else {
+ throw new Error('Cannot truncate table becaues it does not exist');
+ }
+ return cb ? cb(0) : 0;
+};
+
+/*
+//
+// CREATE VERTEX for AlaSQL
+// Date: 21.04.2015
+// (c) 2015, Andrey Gershun
+//
+*/
+
+yy.CreateVertex = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateVertex.prototype.toString = function() {
+ var s = 'CREATE VERTEX ';
+ if (this["class"]) {
+ s += this["class"] + ' ';
+ }
+ if (this.sharp) {
+ s += '#' + this.sharp + ' ';
+ }
+ if (this.sets) {
+ s += this.sets.toString();
+ } else if (this.content) {
+ s += this.content.toString();
+ } else if (this.select) {
+ s += this.select.toString();
+ }
+
+ return s;
+};
+
+yy.CreateVertex.prototype.toJS = function(context) {
+
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+ // var s = '';
+ return s;
+};
+
+// CREATE TABLE
+
+yy.CreateVertex.prototype.compile = function(databaseid) {
+ var dbid = databaseid;
+
+ // CREATE VERTEX #id
+ var sharp = this.sharp;
+
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
+ }
+
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', s);
+ }
+
+ // Todo: check for content, select and default
+
+ var statement = function(params, cb) {
+ var res;
+
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var id;
+ if (typeof sharp !== 'undefined') {
+ id = sharp;
+ } else {
+ id = db.counter++;
+ }
+ var vertex = {$id: id, $node: 'VERTEX'};
+ db.objects[vertex.$id] = vertex;
+ res = vertex;
+ if (namefn) {
+ namefn(vertex);
+ }
+ if (setfn) {
+ setfn(vertex, params, alasql);
+ }
+
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+ };
+ return statement;
+};
+
+yy.CreateEdge = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateEdge.prototype.toString = function() {
+
+ var s = 'CREATE EDGE' + ' ';
+ if (this["class"]) {
+ s += this["class"] + ' ';
+ }
+ // todo: SET
+ // todo: CONTENT
+ // todo: SELECT
+ return s;
+};
+
+yy.CreateEdge.prototype.toJS = function(context) {
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+ return s;
+};
+
+// CREATE TABLE
+
+yy.CreateEdge.prototype.compile = function(databaseid) {
+ var dbid = databaseid;
+ var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
+ var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
+
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
+ }
+
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', 'var y;' + s);
+ }
+
+ /*
+ todo: handle content, select and default
+ else if(this.content) {
+
+ } else if(this.select) {
+
+ } else {
+ }
+ */
+
+ var statement = function(params, cb) {
+ var res = 0;
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var edge = {$id: db.counter++, $node: 'EDGE'};
+ var v1 = fromfn(params, alasql);
+ var v2 = tofn(params, alasql);
+ // Set link
+ edge.$in = [v1.$id];
+ edge.$out = [v2.$id];
+ // Set sides
+ if (v1.$out === undefined) {
+ v1.$out = [];
+ }
+ v1.$out.push(edge.$id);
+
+ if (typeof v2.$in === undefined) {
+ v2.$in = [];
+ }
+ v2.$in.push(edge.$id);
+
+ // Save in objects
+ db.objects[edge.$id] = edge;
+ res = edge;
+ if (namefn) {
+ namefn(edge);
+ }
+
+ if (setfn) {
+ setfn(edge, params, alasql);
+ }
+
+ if (cb) {
+ res = cb(res);
+ }
+
+ return res;
+ };
+ return statement;
+};
+
+yy.CreateGraph = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateGraph.prototype.toString = function() {
+ var s = 'CREATE GRAPH' + ' ';
+ if (this["class"]) {
+ s += this["class"] + ' ';
+ }
+ return s;
+};
+
+yy.CreateGraph.prototype.execute = function(databaseid, params, cb) {
+ var res = [];
+ if (this.from) {
+ if (alasql.from[this.from.funcid]) {
+ this.graph = alasql.from[this.from.funcid.toUpperCase()];
+ }
+ }
+
+ // stop;
+ this.graph.forEach(function(g) {
+ if (g.source) {
+ // GREATE EDGE
+ var e = {};
+ if (typeof g.as !== 'undefined') {
+ alasql.vars[g.as] = e;
+ }
+
+ if (typeof g.prop !== 'undefined') {
+ // e[g.prop] = e;
+ // v.$id = g.prop; // We do not create $id for edge automatically
+ e.name = g.prop;
+ }
+ if (typeof g.sharp !== 'undefined') {
+ e.$id = g.sharp;
+ }
+ if (typeof g.name !== 'undefined') {
+ e.name = g.name;
+ }
+ if (typeof g["class"] !== 'undefined') {
+ e.$class = g["class"];
+ }
+
+ var db = alasql.databases[databaseid];
+ if (typeof e.$id === 'undefined') {
+ e.$id = db.counter++;
+ }
+ e.$node = 'EDGE';
+ if (typeof g.json !== 'undefined') {
+ extend(
+ e,
+ new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
+ );
+ }
+
+ var v1;
+ if (g.source.vars) {
+ var vo = alasql.vars[g.source.vars];
+ if (typeof vo === 'object') {
+ v1 = vo;
+ } else {
+ v1 = db.objects[vo];
+ }
+ } else {
+ var av1 = g.source.sharp;
+ if (typeof av1 === 'undefined') {
+ av1 = g.source.prop;
+ }
+ v1 = alasql.databases[databaseid].objects[av1];
+ if (
+ typeof v1 === 'undefined' &&
+ alasql.options.autovertex &&
+ (typeof g.source.prop !== 'undefined' || typeof g.source.name !== 'undefined')
+ ) {
+ v1 = findVertex(g.source.prop || g.source.name);
+ if (typeof v1 === 'undefined') {
+ v1 = createVertex(g.source);
+ }
+ }
+ }
+
+ var v2;
+ if (g.source.vars) {
+ var vo = alasql.vars[g.target.vars];
+ if (typeof vo === 'object') {
+ v2 = vo;
+ } else {
+ v2 = db.objects[vo];
+ }
+ } else {
+ var av2 = g.target.sharp;
+ if (typeof av2 === 'undefined') {
+ av2 = g.target.prop;
+ }
+ v2 = alasql.databases[databaseid].objects[av2];
+ if (
+ typeof v2 === 'undefined' &&
+ alasql.options.autovertex &&
+ (typeof g.target.prop !== 'undefined' || typeof g.target.name !== 'undefined')
+ ) {
+ v2 = findVertex(g.target.prop || g.target.name);
+ if (typeof v2 === 'undefined') {
+ v2 = createVertex(g.target);
+ }
+ }
+ }
+
+ // Set link
+ e.$in = [v1.$id];
+ e.$out = [v2.$id];
+ // Set sides
+ if (typeof v1.$out === 'undefined') {
+ v1.$out = [];
+ }
+ v1.$out.push(e.$id);
+ if (typeof v2.$in === 'undefined') {
+ v2.$in = [];
+ }
+ v2.$in.push(e.$id);
+
+ db.objects[e.$id] = e;
+ if (typeof e.$class !== 'undefined') {
+ if (typeof alasql.databases[databaseid].tables[e.$class] === 'undefined') {
+ throw new Error('No such class. Pleace use CREATE CLASS');
+ } else {
+ // TODO - add insert()
+ alasql.databases[databaseid].tables[e.$class].data.push(e);
+ }
+ }
+
+ res.push(e.$id);
+ } else {
+ createVertex(g);
+ }
+ });
+
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+
+ // Find vertex by name
+ function findVertex(name) {
+ var objects = alasql.databases[alasql.useid].objects;
+ for (var k in objects) {
+ if (objects[k].name === name) {
+ return objects[k];
+ }
+ }
+ return undefined;
+ }
+
+ function createVertex(g) {
+ // GREATE VERTEX
+ var v = {};
+ if (typeof g.as !== 'undefined') {
+ alasql.vars[g.as] = v;
+ }
+
+ if (typeof g.prop !== 'undefined') {
+ // v[g.prop] = true;
+ v.$id = g.prop;
+ v.name = g.prop;
+ }
+
+ if (typeof g.sharp !== 'undefined') {
+ v.$id = g.sharp;
+ }
+ if (typeof g.name !== 'undefined') {
+ v.name = g.name;
+ }
+ if (typeof g["class"] !== 'undefined') {
+ v.$class = g["class"];
+ }
+
+ var db = alasql.databases[databaseid];
+ if (typeof v.$id === 'undefined') {
+ v.$id = db.counter++;
+ }
+ v.$node = 'VERTEX';
+ if (typeof g.json !== 'undefined') {
+ extend(
+ v,
+ new Function('params,alasql', 'var y;return ' + g.json.toJS())(params, alasql)
+ );
+ }
+ db.objects[v.$id] = v;
+ if (typeof v.$class !== 'undefined') {
+ if (typeof alasql.databases[databaseid].tables[v.$class] === 'undefined') {
+ throw new Error('No such class. Pleace use CREATE CLASS');
+ } else {
+ // TODO - add insert()
+ alasql.databases[databaseid].tables[v.$class].data.push(v);
+ }
+ }
+
+ res.push(v.$id);
+ return v;
+ }
+};
+
+yy.CreateGraph.prototype.compile1 = function(databaseid) {
+ var dbid = databaseid;
+ var fromfn = new Function('params,alasql', 'var y;return ' + this.from.toJS());
+ var tofn = new Function('params,alasql', 'var y;return ' + this.to.toJS());
+
+ // CREATE VERTEX "Name"
+ if (typeof this.name !== 'undefined') {
+ var s = 'x.name=' + this.name.toJS();
+ var namefn = new Function('x', s);
+ }
+
+ if (this.sets && this.sets.length > 0) {
+ var s = this.sets
+ .map(function(st) {
+ return "x['" + st.column.columnid + "']=" + st.expression.toJS('x', '');
+ })
+ .join(';');
+ var setfn = new Function('x,params,alasql', 'var y;' + s);
+ }
+
+ // Todo: handle content, select and default
+
+ var statement = function(params, cb) {
+ var res = 0;
+ // CREATE VERTEX without parameters
+ var db = alasql.databases[dbid];
+ var edge = {$id: db.counter++, $node: 'EDGE'};
+ var v1 = fromfn(params, alasql);
+ var v2 = tofn(params, alasql);
+ // Set link
+ edge.$in = [v1.$id];
+ edge.$out = [v2.$id];
+ // Set sides
+ if (typeof v1.$out === 'undefined') {
+ v1.$out = [];
+ }
+ v1.$out.push(edge.$id);
+
+ if (typeof v2.$in === 'undefined') {
+ v2.$in = [];
+ }
+ v2.$in.push(edge.$id);
+ // Save in objects
+ db.objects[edge.$id] = edge;
+ res = edge;
+ if (namefn) {
+ namefn(edge);
+ }
+ if (setfn) {
+ setfn(edge, params, alasql);
+ }
+
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+ };
+ return statement;
+};
+
+/*
+//
+// ALTER TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+/* global alasql yy */
+
+// ALTER TABLE table1 RENAME TO table2
+yy.AlterTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.AlterTable.prototype.toString = function() {
+ var s = 'ALTER TABLE ' + this.table.toString();
+ if (this.renameto) s += ' RENAME TO ' + this.renameto;
+ return s;
+};
+
+yy.AlterTable.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[databaseid];
+ db.dbversion = Date.now();
+
+ if (this.renameto) {
+ var oldtableid = this.table.tableid;
+ var newtableid = this.renameto;
+ var res = 1;
+ if (db.tables[newtableid]) {
+ throw new Error(
+ "Can not rename a table '" +
+ oldtableid +
+ "' to '" +
+ newtableid +
+ "', because the table with this name already exists"
+ );
+ } else if (newtableid === oldtableid) {
+ throw new Error("Can not rename a table '" + oldtableid + "' to itself");
+ } else {
+ db.tables[newtableid] = db.tables[oldtableid];
+ delete db.tables[oldtableid];
+ res = 1;
+ }
+ if (cb) cb(res);
+ return res;
+ } else if (this.addcolumn) {
+ db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.addcolumn.columnid;
+ if (table.xcolumns[columnid]) {
+ throw new Error(
+ 'Cannot add column "' +
+ columnid +
+ '", because it already exists in the table "' +
+ tableid +
+ '"'
+ );
+ }
+
+ var col = {
+ columnid: columnid,
+ dbtypeid: this.dbtypeid,
+ dbsize: this.dbsize,
+ dbprecision: this.dbprecision,
+ dbenum: this.dbenum,
+ defaultfns: null, // TODO defaultfns!!!
+ };
+
+ var defaultfn = function() {};
+
+ table.columns.push(col);
+ table.xcolumns[columnid] = col;
+
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+
+ table.data[i][columnid] = defaultfn();
+ }
+
+ // TODO
+ return cb ? cb(1) : 1;
+ } else if (this.modifycolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.modifycolumn.columnid;
+
+ if (!table.xcolumns[columnid]) {
+ throw new Error(
+ 'Cannot modify column "' +
+ columnid +
+ '", because it was not found in the table "' +
+ tableid +
+ '"'
+ );
+ }
+
+ col = table.xcolumns[columnid];
+ col.dbtypeid = this.dbtypeid;
+ col.dbsize = this.dbsize;
+ col.dbprecision = this.dbprecision;
+ col.dbenum = this.dbenum;
+
+ // TODO
+ return cb ? cb(1) : 1;
+ } else if (this.renamecolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.renamecolumn;
+ var tocolumnid = this.to;
+
+ var col;
+ if (!table.xcolumns[columnid]) {
+ throw new Error(
+ 'Column "' + columnid + '" is not found in the table "' + tableid + '"'
+ );
+ }
+ if (table.xcolumns[tocolumnid]) {
+ throw new Error(
+ 'Column "' + tocolumnid + '" already exists in the table "' + tableid + '"'
+ );
+ }
+
+ if (columnid != tocolumnid) {
+ for (var j = 0; j < table.columns.length; j++) {
+ if (table.columns[j].columnid == columnid) {
+ table.columns[j].columnid = tocolumnid;
+ }
+ }
+
+ table.xcolumns[tocolumnid] = table.xcolumns[columnid];
+ delete table.xcolumns[columnid];
+
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+
+ table.data[i][tocolumnid] = table.data[i][columnid];
+ delete table.data[i][columnid];
+ }
+ return table.data.length;
+ } else {
+ return cb ? cb(0) : 0;
+ }
+ } else if (this.dropcolumn) {
+ var db = alasql.databases[this.table.databaseid || databaseid];
+ db.dbversion++;
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var columnid = this.dropcolumn;
+
+ var found = false;
+ for (var j = 0; j < table.columns.length; j++) {
+ if (table.columns[j].columnid == columnid) {
+ found = true;
+ table.columns.splice(j, 1);
+ break;
+ }
+ }
+
+ if (!found) {
+ throw new Error(
+ 'Cannot drop column "' +
+ columnid +
+ '", because it was not found in the table "' +
+ tableid +
+ '"'
+ );
+ }
+
+ delete table.xcolumns[columnid];
+
+ for (i = 0, ilen = table.data.length; i < ilen; i++) {
+ delete table.data[i][columnid];
+ }
+ return cb ? cb(table.data.length) : table.data.length;
+ } else {
+ throw Error('Unknown ALTER TABLE method');
+ }
+};
+
+/*
+//
+// CREATE TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.CreateIndex = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateIndex.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.unique) s += ' UNIQUE';
+ s += ' INDEX ' + this.indexid + ' ON ' + this.table.toString();
+ s += '(' + this.columns.toString() + ')';
+ return s;
+};
+
+// CREATE TABLE
+yy.CreateIndex.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[databaseid];
+ var tableid = this.table.tableid;
+ var table = db.tables[tableid];
+ var indexid = this.indexid;
+ db.indices[indexid] = tableid;
+
+ var rightfns = this.columns
+ .map(function(expr) {
+ return expr.expression.toJS('r', '');
+ })
+ .join("+'`'+");
+
+ var rightfn = new Function('r,params,alasql', 'return ' + rightfns);
+
+ if (this.unique) {
+ table.uniqdefs[indexid] = {
+ rightfns: rightfns,
+ };
+ var ux = (table.uniqs[indexid] = {});
+ if (table.data.length > 0) {
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ var addr = rightfns(table.data[i]);
+ if (!ux[addr]) {
+ ux[addr] = {num: 0};
+ }
+ ux[addr].num++;
+ }
+ }
+ } else {
+ var hh = hash(rightfns);
+ table.inddefs[indexid] = {rightfns: rightfns, hh: hh};
+ table.indices[hh] = {};
+
+ var ix = (table.indices[hh] = {});
+ if (table.data.length > 0) {
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ var addr = rightfn(table.data[i], params, alasql);
+ if (!ix[addr]) {
+ ix[addr] = [];
+ }
+ ix[addr].push(table.data[i]);
+ }
+ }
+ }
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
+
+yy.Reindex = function(params) {
+ return yy.extend(this, params);
+};
+yy.Reindex.prototype.toString = function() {
+ var s = 'REINDEX ' + this.indexid;
+ return s;
+};
+
+// CREATE TABLE
+yy.Reindex.prototype.execute = function(databaseid, params, cb) {
+ // var self = this;
+ var db = alasql.databases[databaseid];
+ var indexid = this.indexid;
+
+ var tableid = db.indices[indexid];
+ var table = db.tables[tableid];
+ table.indexColumns();
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
+
+/*
+//
+// DROP TABLE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.DropIndex = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropIndex.prototype.toString = function() {
+ return 'DROP INDEX' + this.indexid;
+};
+
+// DROP TABLE
+yy.DropIndex.prototype.compile = function(db) {
+ var indexid = this.indexid;
+ return function() {
+ return 1;
+ };
+};
+
+/*
+//
+// WITH SELECT for Alasql.js
+// Date: 11.01.2015
+// (c) 2015, Andrey Gershun
+//
+*/
+
+yy.WithSelect = function(params) {
+ return yy.extend(this, params);
+};
+yy.WithSelect.prototype.toString = function() {
+ var s = 'WITH ';
+ s +=
+ this.withs
+ .map(function(w) {
+ return w.name + ' AS (' + w.select.toString() + ')';
+ })
+ .join(',') + ' ';
+ s += this.select.toString();
+ return s;
+};
+
+yy.WithSelect.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ // Create temporary tables
+ var savedTables = [];
+ self.withs.forEach(function(w) {
+ savedTables.push(alasql.databases[databaseid].tables[w.name]);
+ var tb = (alasql.databases[databaseid].tables[w.name] = new Table({tableid: w.name}));
+ tb.data = w.select.execute(databaseid, params);
+ });
+
+ var res = 1;
+ res = this.select.execute(databaseid, params, function(data) {
+ // Clear temporary tables
+ // setTimeout(function(){
+ self.withs.forEach(function(w, idx) {
+ if (savedTables[idx]) alasql.databases[databaseid].tables[w.name] = savedTables[idx];
+ else delete alasql.databases[databaseid].tables[w.name];
+ });
+ // },0);
+
+ if (cb) data = cb(data);
+ return data;
+ });
+ return res;
+};
+
+/*
+//
+// IF for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.If = function(params) {
+ return yy.extend(this, params);
+};
+yy.If.prototype.toString = function() {
+ var s = 'IF' + ' ';
+ s += this.expression.toString();
+ s += ' ' + this.thenstat.toString();
+ if (this.elsestat) s += ' ELSE ' + this.thenstat.toString();
+ return s;
+};
+
+// CREATE TABLE
+
+yy.If.prototype.execute = function(databaseid, params, cb) {
+ var res;
+
+ var fn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + this.expression.toJS('({})', '', null)
+ ).bind(this);
+
+ if (fn(params, alasql)) res = this.thenstat.execute(databaseid, params, cb);
+ else {
+ if (this.elsestat) res = this.elsestat.execute(databaseid, params, cb);
+ else {
+ if (cb) res = cb(res);
+ }
+ }
+ // else res = this.elsestat.execute(databaseid,params,cb,scope);
+ return res;
+};
+
+/*
+//
+// CREATE VIEW for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.While = function(params) {
+ return yy.extend(this, params);
+};
+yy.While.prototype.toString = function() {
+ var s = 'WHILE ';
+ s += this.expression.toString();
+ s += ' ' + this.loopstat.toString();
+ return s;
+};
+
+yy.While.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ var res = [];
+
+ var fn = new Function('params,alasql,p', 'var y;return ' + this.expression.toJS());
+
+ if (cb) {
+ var first = false;
+ var loop = function(data) {
+ if (first) {
+ res.push(data);
+ } else {
+ first = true;
+ }
+ setTimeout(function() {
+ if (fn(params, alasql)) {
+ self.loopstat.execute(databaseid, params, loop);
+ } else {
+ res = cb(res);
+ }
+ }, 0);
+ };
+ loop();
+ } else {
+ while (fn(params, alasql)) {
+ var res1 = self.loopstat.execute(databaseid, params);
+ res.push(res1);
+ }
+ }
+ return res;
+};
+
+yy.Break = function(params) {
+ return yy.extend(this, params);
+};
+yy.Break.prototype.toString = function() {
+ var s = 'BREAK';
+ return s;
+};
+
+yy.Break.prototype.execute = function(databaseid, params, cb, scope) {
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
+
+yy.Continue = function(params) {
+ return yy.extend(this, params);
+};
+yy.Continue.prototype.toString = function() {
+ var s = 'CONTINUE';
+ return s;
+};
+
+yy.Continue.prototype.execute = function(databaseid, params, cb, scope) {
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
+
+yy.BeginEnd = function(params) {
+ return yy.extend(this, params);
+};
+yy.BeginEnd.prototype.toString = function() {
+ var s = 'BEGIN ' + this.statements.toString() + ' END';
+ return s;
+};
+
+yy.BeginEnd.prototype.execute = function(databaseid, params, cb, scope) {
+ var self = this;
+ var res = [];
+
+ var idx = 0;
+ runone();
+ function runone() {
+ self.statements[idx].execute(databaseid, params, function(data) {
+ res.push(data);
+ idx++;
+ if (idx < self.statements.length) return runone();
+ if (cb) res = cb(res);
+ });
+ }
+ return res;
+};
+
+/*
+//
+// INSERT for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global yy alasql*/
+yy.Insert = function(params) {
+ return yy.extend(this, params);
+};
+yy.Insert.prototype.toString = function() {
+ var s = 'INSERT ';
+ if (this.orreplace) s += 'OR REPLACE ';
+ if (this.replaceonly) s = 'REPLACE ';
+ s += 'INTO ' + this.into.toString();
+ if (this.columns) s += '(' + this.columns.toString() + ')';
+ if (this.values) s += ' VALUES ' + this.values.toString();
+ if (this.select) s += ' ' + this.select.toString();
+ return s;
+};
+
+yy.Insert.prototype.toJS = function(context, tableid, defcols) {
+
+ // if(this.expression.reduced) return 'true';
+ // return this.expression.toJS(context, tableid, defcols);
+
+ // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]';
+
+ var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')';
+
+ return s;
+};
+
+yy.Insert.prototype.compile = function(databaseid) {
+ var self = this;
+ databaseid = self.into.databaseid || databaseid;
+ var db = alasql.databases[databaseid];
+
+ var tableid = self.into.tableid;
+ var table = db.tables[tableid];
+
+ if (!table) {
+ throw "Table '" + tableid + "' could not be found";
+ }
+
+ // Check, if this dirty flag is required
+ var s = '';
+ var sw = '';
+ var s = "db.tables['" + tableid + "'].dirty=true;";
+ var s3 = 'var a,aa=[],x;';
+
+ var s33;
+
+ // INSERT INTO table VALUES
+ if (this.values) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ self.values.forEach(function(values) {
+ var ss = [];
+
+ // s += 'db.tables[\''+tableid+'\'].data.push({';
+
+ // s += '';
+ if (self.columns) {
+ self.columns.forEach(function(col, idx) {
+
+ // ss.push(col.columnid +':'+ self.values[idx].value.toString());
+
+ // if(rec[f.name.value] == "NULL") rec[f.name.value] = undefined;
+
+ // if(table.xflds[f.name.value].dbtypeid == "INT") rec[f.name.value] = +rec[f.name.value]|0;
+ // else if(table.xflds[f.name.value].dbtypeid == "FLOAT") rec[f.name.value] = +rec[f.name.value];
+ var q = "'" + col.columnid + "':";
+ if (table.xcolumns && table.xcolumns[col.columnid]) {
+ if (
+ ['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(
+ table.xcolumns[col.columnid].dbtypeid
+ ) >= 0
+ ) {
+ //q += ''
+ q += '(x=' + values[idx].toJS() + ',x==undefined?undefined:+x)';
+ } else if (alasql.fn[table.xcolumns[col.columnid].dbtypeid]) {
+ q += '(new ' + table.xcolumns[col.columnid].dbtypeid + '(';
+ q += values[idx].toJS();
+ q += '))';
+ } else {
+ q += values[idx].toJS();
+ }
+ } else {
+ q += values[idx].toJS();
+ }
+ ss.push(q);
+ });
+ } else {
+ // var table = db.tables[tableid];
+
+ if (Array.isArray(values) && table.columns && table.columns.length > 0) {
+ table.columns.forEach(function(col, idx) {
+ var q = "'" + col.columnid + "':";
+ // var val = values[idx].toJS();
+
+ if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(col.dbtypeid) >= 0) {
+ q += '+' + values[idx].toJS();
+ } else if (alasql.fn[col.dbtypeid]) {
+ q += '(new ' + col.dbtypeid + '(';
+ q += values[idx].toJS();
+ q += '))';
+ } else {
+ q += values[idx].toJS();
+ }
+
+ ss.push(q);
+
+ });
+ } else {
+
+ // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
+ sw = JSONtoJS(values);
+ }
+ }
+
+ if (db.tables[tableid].defaultfns) {
+ ss.unshift(db.tables[tableid].defaultfns);
+ }
+ if (sw) {
+ s += 'a=' + sw + ';';
+ } else {
+ s += 'a={' + ss.join(',') + '};';
+ }
+
+ // If this is a class
+ if (db.tables[tableid].isclass) {
+ s += "var db=alasql.databases['" + databaseid + "'];";
+ s += 'a.$class="' + tableid + '";';
+ s += 'a.$id=db.counter++;';
+ s += 'db.objects[a.$id]=a;';
+ }
+ // s += 'db.tables[\''+tableid+'\'].insert(r);';
+ if (db.tables[tableid].insert) {
+ s += "var db=alasql.databases['" + databaseid + "'];";
+ s +=
+ "db.tables['" +
+ tableid +
+ "'].insert(a," +
+ (self.orreplace ? 'true' : 'false') +
+ ');';
+ } else {
+ s += 'aa.push(a);';
+ }
+ });
+
+ s33 = s3 + s;
+
+ if (db.tables[tableid].insert) {
+ // s += 'alasql.databases[\''+databaseid+'\'].tables[\''+tableid+'\'].insert(r);';
+ } else {
+ s +=
+ "alasql.databases['" +
+ databaseid +
+ "'].tables['" +
+ tableid +
+ "'].data=" +
+ "alasql.databases['" +
+ databaseid +
+ "'].tables['" +
+ tableid +
+ "'].data.concat(aa);";
+ }
+
+ if (db.tables[tableid].insert) {
+ if (db.tables[tableid].isclass) {
+ s += 'return a.$id;';
+ } else {
+ s += 'return ' + self.values.length;
+ }
+ } else {
+ s += 'return ' + self.values.length;
+ }
+
+ var insertfn = new Function('db, params, alasql', 'var y;' + s3 + s).bind(this);
+
+ // INSERT INTO table SELECT
+ } else if (this.select) {
+ this.select.modifier = 'RECORDSET';
+ var selectfn = this.select.compile(databaseid);
+ if (db.engineid && alasql.engines[db.engineid].intoTable) {
+ var statement = function(params, cb) {
+ var aa = selectfn(params);
+ var res = alasql.engines[db.engineid].intoTable(
+ db.databaseid,
+ tableid,
+ aa.data,
+ null,
+ cb
+ );
+ return res;
+ };
+ return statement;
+ } else {
+
+ var defaultfns = 'return alasql.utils.extend(r,{' + table.defaultfns + '})';
+ var defaultfn = new Function('r,db,params,alasql', defaultfns);
+ var insertfn = function(db, params, alasql) {
+ var res = selectfn(params).data;
+ if (db.tables[tableid].insert) {
+ // If insert() function exists (issue #92)
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ var r = cloneDeep(res[i]);
+ defaultfn(r, db, params, alasql);
+ db.tables[tableid].insert(r, self.orreplace);
+ }
+ } else {
+ db.tables[tableid].data = db.tables[tableid].data.concat(res);
+ }
+ if (alasql.options.nocount) return;
+ else return res.length;
+ };
+ }
+ } else if (this["default"]) {
+ var insertfns =
+ "db.tables['" + tableid + "'].data.push({" + table.defaultfns + '});return 1;';
+ var insertfn = new Function('db,params,alasql', insertfns);
+ } else {
+ throw new Error('Wrong INSERT parameters');
+ }
+
+ if (db.engineid && alasql.engines[db.engineid].intoTable && alasql.options.autocommit) {
+ var statement = function(params, cb) {
+ var aa = new Function('db,params', 'var y;' + s33 + 'return aa;')(db, params);
+
+ var res = alasql.engines[db.engineid].intoTable(db.databaseid, tableid, aa, null, cb);
+ // if(cb) cb(res);
+ return res;
+ };
+ } else {
+ var statement = function(params, cb) {
+
+ var db = alasql.databases[databaseid];
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var res = insertfn(db, params, alasql);
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+ // var res = insertfn(db, params);
+ if (alasql.options.nocount) res = undefined;
+ if (cb) cb(res);
+ return res;
+ };
+ }
+
+ return statement;
+};
+
+yy.Insert.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+ // throw new Error('Insert statement is should be compiled')
+};
+
+/*
+//
+// TRIGGER for Alasql.js
+// Date: 29.12.2015
+//
+*/
+
+yy.CreateTrigger = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateTrigger.prototype.toString = function() {
+ var s = 'CREATE TRIGGER ' + this.trigger + ' ';
+ if (this.when) s += this.when + ' ';
+ s += this.action + ' ON ';
+ if (this.table.databaseid) s += this.table.databaseid + '.';
+ s += this.table.tableid + ' ';
+ s += this.statement.toString();
+ return s;
+};
+
+yy.CreateTrigger.prototype.execute = function(databaseid, params, cb) {
+ var res = 1; // No tables removed
+ var triggerid = this.trigger;
+ databaseid = this.table.databaseid || databaseid;
+ var db = alasql.databases[databaseid];
+ var tableid = this.table.tableid;
+
+ var trigger = {
+ action: this.action,
+ when: this.when,
+ statement: this.statement,
+ funcid: this.funcid,
+ };
+
+ db.triggers[triggerid] = trigger;
+ if (trigger.action == 'INSERT' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforeinsert[triggerid] = trigger;
+ } else if (trigger.action == 'INSERT' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterinsert[triggerid] = trigger;
+ } else if (trigger.action == 'INSERT' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofinsert[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforedelete[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterdelete[triggerid] = trigger;
+ } else if (trigger.action == 'DELETE' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofdelete[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'BEFORE') {
+ db.tables[tableid].beforeupdate[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'AFTER') {
+ db.tables[tableid].afterupdate[triggerid] = trigger;
+ } else if (trigger.action == 'UPDATE' && trigger.when == 'INSTEADOF') {
+ db.tables[tableid].insteadofupdate[triggerid] = trigger;
+ }
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+yy.DropTrigger = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropTrigger.prototype.toString = function() {
+ var s = 'DROP TRIGGER ' + this.trigger;
+ return s;
+};
+
+/**
+ Drop trigger
+ @param {string} databaseid Database id
+ @param {object} params Parameters
+ @param {callback} cb Callback function
+ @return Number of dropped triggers
+ @example
+ DROP TRIGGER one;
+*/
+yy.DropTrigger.prototype.execute = function(databaseid, params, cb) {
+ var res = 0; // No tables removed
+ var db = alasql.databases[databaseid];
+ var triggerid = this.trigger;
+ // For each table in the list
+ var tableid = db.triggers[triggerid];
+ if (tableid) {
+ res = 1;
+ delete db.tables[tableid].beforeinsert[triggerid];
+ delete db.tables[tableid].afterinsert[triggerid];
+ delete db.tables[tableid].insteadofinsert[triggerid];
+ delete db.tables[tableid].beforedelte[triggerid];
+ delete db.tables[tableid].afterdelete[triggerid];
+ delete db.tables[tableid].insteadofdelete[triggerid];
+ delete db.tables[tableid].beforeupdate[triggerid];
+ delete db.tables[tableid].afterupdate[triggerid];
+ delete db.tables[tableid].insteadofupdate[triggerid];
+ delete db.triggers[triggerid];
+ } else {
+ throw new Error('Trigger not found');
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/*
+//
+// DELETE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Delete = function(params) {
+ return yy.extend(this, params);
+};
+yy.Delete.prototype.toString = function() {
+ var s = 'DELETE FROM ' + this.table.toString();
+ if (this.where) s += ' WHERE ' + this.where.toString();
+ return s;
+};
+
+yy.Delete.prototype.compile = function(databaseid) {
+
+ databaseid = this.table.databaseid || databaseid;
+ var tableid = this.table.tableid;
+ var statement;
+ var db = alasql.databases[databaseid];
+
+ if (this.where) {
+
+ // this.query = {};
+
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ // try {
+
+ // var query = {};
+
+ var wherefn = new Function(
+ 'r,params,alasql',
+ 'var y;return (' + this.where.toJS('r', '') + ')'
+ ).bind(this);
+
+ statement = function(params, cb) {
+ if (db.engineid && alasql.engines[db.engineid].deleteFromTable) {
+ return alasql.engines[db.engineid].deleteFromTable(
+ databaseid,
+ tableid,
+ wherefn,
+ params,
+ cb
+ );
+ }
+
+ if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ // table.dirty = true;
+ var orignum = table.data.length;
+
+ var newtable = [];
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ if (wherefn(table.data[i], params, alasql)) {
+ // Check for transaction - if it is not possible then return all back
+ if (table["delete"]) {
+ table["delete"](i, params, alasql);
+ } else {
+ // Simply do not push
+ }
+ } else newtable.push(table.data[i]);
+ }
+ // table.data = table.data.filter(function(r){return !;});
+ table.data = newtable;
+
+ // Trigger prevent functionality
+ for (var tr in table.afterdelete) {
+ var trigger = table.afterdelete[tr];
+ if (trigger) {
+ if (trigger.funcid) {
+ alasql.fn[trigger.funcid]();
+ } else if (trigger.statement) {
+ trigger.statement.execute(databaseid);
+ }
+ }
+ }
+
+ var res = orignum - table.data.length;
+ if (alasql.options.autocommit && db.engineid && db.engineid == 'LOCALSTORAGE') {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+
+ if (cb) cb(res);
+ return res;
+ };
+ // .bind(query);
+
+ // if(!this.queries) return;
+ // query.queriesfn = this.queries.map(function(q) {
+ // return q.compile(alasql.useid);
+ // });
+ } else {
+ statement = function(params, cb) {
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ table.dirty = true;
+ var orignum = db.tables[tableid].data.length;
+ //table.deleteall();
+ // Delete all records from the array
+ db.tables[tableid].data.length = 0;
+
+ // Reset PRIMARY KEY and indexes
+ for (var ix in db.tables[tableid].uniqs) {
+ db.tables[tableid].uniqs[ix] = {};
+ }
+
+ for (var ix in db.tables[tableid].indices) {
+ db.tables[tableid].indices[ix] = {};
+ }
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+
+ if (cb) cb(orignum);
+ return orignum;
+ };
+ }
+
+ return statement;
+};
+
+yy.Delete.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+};
+
+/*
+//
+// UPDATE for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global yy alasql */
+
+yy.Update = function(params) {
+ return yy.extend(this, params);
+};
+yy.Update.prototype.toString = function() {
+ var s = 'UPDATE ' + this.table.toString();
+ if (this.columns) s += ' SET ' + this.columns.toString();
+ if (this.where) s += ' WHERE ' + this.where.toString();
+ return s;
+};
+
+yy.SetColumn = function(params) {
+ return yy.extend(this, params);
+};
+yy.SetColumn.prototype.toString = function() {
+ return this.column.toString() + '=' + this.expression.toString();
+};
+
+yy.Update.prototype.compile = function(databaseid) {
+
+ databaseid = this.table.databaseid || databaseid;
+ var tableid = this.table.tableid;
+
+ if (this.where) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ nq.query.modifier = 'RECORDSET';
+ return nq;
+ });
+ }
+
+ var wherefn = new Function(
+ 'r,params,alasql',
+ 'var y;return ' + this.where.toJS('r', '')
+ ).bind(this);
+ }
+
+ // Construct update function
+ var s = alasql.databases[databaseid].tables[tableid].onupdatefns || '';
+ s += ';';
+ this.columns.forEach(function(col) {
+ s += "r['" + col.column.columnid + "']=" + col.expression.toJS('r', '') + ';';
+ });
+
+ var assignfn = new Function('r,params,alasql', 'var y;' + s);
+
+ var statement = function(params, cb) {
+ var db = alasql.databases[databaseid];
+
+ if (db.engineid && alasql.engines[db.engineid].updateTable) {
+
+ return alasql.engines[db.engineid].updateTable(
+ databaseid,
+ tableid,
+ assignfn,
+ wherefn,
+ params,
+ cb
+ );
+ }
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].loadTableData(databaseid, tableid);
+ }
+
+ var table = db.tables[tableid];
+ if (!table) {
+ throw new Error("Table '" + tableid + "' not exists");
+ }
+ // table.dirty = true;
+ var numrows = 0;
+ for (var i = 0, ilen = table.data.length; i < ilen; i++) {
+ if (!wherefn || wherefn(table.data[i], params, alasql)) {
+ if (table.update) {
+ table.update(assignfn, i, params);
+ } else {
+ assignfn(table.data[i], params, alasql);
+ }
+ numrows++;
+ }
+ }
+
+ if (alasql.options.autocommit && db.engineid) {
+ alasql.engines[db.engineid].saveTableData(databaseid, tableid);
+ }
+
+ if (cb) cb(numrows);
+ return numrows;
+ };
+ return statement;
+};
+
+yy.Update.prototype.execute = function(databaseid, params, cb) {
+ return this.compile(databaseid)(params, cb);
+};
+
+/*
+//
+// SET for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global alasql, yy */
+
+yy.Merge = function(params) {
+ return yy.extend(this, params);
+};
+yy.Merge.prototype.toString = function() {
+ var s = 'MERGE ';
+ s += this.into.tableid + ' ';
+ if (this.into.as) s += 'AS ' + this.into.as + ' ';
+ s += 'USING ' + this.using.tableid + ' ';
+ if (this.using.as) s += 'AS ' + this.using.as + ' ';
+ s += 'ON ' + this.on.toString() + ' ';
+ this.matches.forEach(function(m) {
+ s += 'WHEN ';
+ if (!m.matched) s += 'NOT ';
+ s += 'MATCHED ';
+ if (m.bytarget) s += 'BY TARGET ';
+ if (m.bysource) s += 'BY SOURCE ';
+ if (m.expr) s += 'AND' + ' ' + m.expr.toString() + ' ';
+ s += 'THEN ';
+ if (m.action["delete"]) s += 'DELETE ';
+ if (m.action.insert) {
+ s += 'INSERT ';
+ if (m.action.columns) s += '(' + m.action.columns.toString() + ') ';
+ if (m.action.values) s += 'VALUES (' + m.action.values.toString() + ') ';
+ if (m.action.defaultvalues) s += 'DEFAULT VALUES ';
+ }
+ if (m.action.update) {
+ s += 'UPDATE ';
+ s +=
+ m.action.update
+ .map(function(u) {
+ return u.toString();
+ })
+ .join(',') + ' ';
+ }
+ });
+
+ return s;
+};
+
+yy.Merge.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/*
+//
+// UPDATE for Alasql.js
+// Date: 03.11.2014
+// Modified: 16.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global yy alasql */
+
+// CREATE DATABASE databaseid
+yy.CreateDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.CreateDatabase.prototype.toString = function() {
+ var s = 'CREATE';
+ if (this.engineid) s += ' ' + this.engineid;
+ s += ' DATABASE';
+ if (this.ifnotexists) s += ' IF NOT EXISTS';
+ s += ' ' + this.databaseid;
+ if (this.args && this.args.length > 0) {
+ s +=
+ '(' +
+ this.args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(', ') +
+ ')';
+ }
+ if (this.as) s += ' AS ' + this.as;
+ return s;
+};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.CreateDatabase.prototype.execute = function(databaseid, params, cb) {
+ var args;
+ if (this.args && this.args.length > 0) {
+ args = this.args.map(function(arg) {
+
+ return new Function('params,alasql', 'var y;return ' + arg.toJS())(params, alasql);
+ });
+ }
+ if (this.engineid) {
+ var res = alasql.engines[this.engineid].createDatabase(
+ this.databaseid,
+ this.args,
+ this.ifnotexists,
+ this.as,
+ cb
+ );
+ return res;
+ } else {
+ var dbid = this.databaseid;
+ if (alasql.databases[dbid]) {
+ throw new Error("Database '" + dbid + "' already exists");
+ }
+ var a = new alasql.Database(dbid);
+ var res = 1;
+ if (cb) return cb(res);
+ return res;
+ }
+};
+
+// CREATE DATABASE databaseid
+yy.AttachDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.AttachDatabase.prototype.toString = function(args) {
+ var s = 'ATTACH';
+ if (this.engineid) s += ' ' + this.engineid;
+ s += ' DATABASE' + ' ' + this.databaseid;
+ // TODO add params
+ if (args) {
+ s += '(';
+ if (args.length > 0) {
+ s += args
+ .map(function(arg) {
+ return arg.toString();
+ })
+ .join(', ');
+ }
+ s += ')';
+ }
+ if (this.as) s += ' AS' + ' ' + this.as;
+ return s;
+};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.AttachDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (!alasql.engines[this.engineid]) {
+ throw new Error('Engine "' + this.engineid + '" is not defined.');
+ }
+ var res = alasql.engines[this.engineid].attachDatabase(
+ this.databaseid,
+ this.as,
+ this.args,
+ params,
+ cb
+ );
+ return res;
+};
+
+// CREATE DATABASE databaseid
+yy.DetachDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.DetachDatabase.prototype.toString = function() {
+ var s = 'DETACH';
+ s += ' DATABASE' + ' ' + this.databaseid;
+ return s;
+};
+//yy.CreateDatabase.prototype.compile = returnUndefined;
+yy.DetachDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (!alasql.databases[this.databaseid].engineid) {
+ throw new Error(
+ 'Cannot detach database "' + this.engineid + '", because it was not attached.'
+ );
+ }
+ var res;
+
+ var dbid = this.databaseid;
+
+ if (dbid === alasql.DEFAULTDATABASEID) {
+ throw new Error('Drop of default database is prohibited');
+ }
+
+ if (!alasql.databases[dbid]) {
+ if (!this.ifexists) {
+ throw new Error("Database '" + dbid + "' does not exist");
+ } else {
+ res = 0;
+ }
+ } else {
+ delete alasql.databases[dbid];
+ if (dbid === alasql.useid) {
+ alasql.use();
+ }
+ res = 1;
+ }
+ if (cb) cb(res);
+ return res;
+ // var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, cb);
+ // return res;
+};
+
+// USE DATABSE databaseid
+// USE databaseid
+yy.UseDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.UseDatabase.prototype.toString = function() {
+ return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid;
+};
+//yy.UseDatabase.prototype.compile = returnUndefined;
+yy.UseDatabase.prototype.execute = function(databaseid, params, cb) {
+ var dbid = this.databaseid;
+ if (!alasql.databases[dbid]) {
+ throw new Error("Database '" + dbid + "' does not exist");
+ }
+ alasql.use(dbid);
+ var res = 1;
+ if (cb) cb(res);
+ return res;
+};
+
+// DROP DATABASE databaseid
+yy.DropDatabase = function(params) {
+ return yy.extend(this, params);
+};
+yy.DropDatabase.prototype.toString = function() {
+ var s = 'DROP';
+ if (this.ifexists) s += ' IF EXISTS';
+ s += ' DATABASE ' + this.databaseid;
+ return s;
+};
+//yy.DropDatabase.prototype.compile = returnUndefined;
+yy.DropDatabase.prototype.execute = function(databaseid, params, cb) {
+ if (this.engineid) {
+ return alasql.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, cb);
+ }
+ var res;
+
+ var dbid = this.databaseid;
+
+ if (dbid === alasql.DEFAULTDATABASEID) {
+ throw new Error('Drop of default database is prohibited');
+ }
+ if (!alasql.databases[dbid]) {
+ if (!this.ifexists) {
+ throw new Error("Database '" + dbid + "' does not exist");
+ } else {
+ res = 0;
+ }
+ } else {
+ if (alasql.databases[dbid].engineid) {
+ throw new Error(
+ "Cannot drop database '" + dbid + "', because it is attached. Detach it."
+ );
+ }
+
+ delete alasql.databases[dbid];
+ if (dbid === alasql.useid) {
+ alasql.use();
+ }
+ res = 1;
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+/*
+//
+// SET for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Declare = function(params) {
+ return yy.extend(this, params);
+};
+yy.Declare.prototype.toString = function() {
+ var s = 'DECLARE ';
+ if (this.declares && this.declares.length > 0) {
+ s = this.declares
+ .map(function(declare) {
+ var s = '';
+ s += '@' + declare.variable + ' ';
+ s += declare.dbtypeid;
+ if (this.dbsize) {
+ s += '(' + this.dbsize;
+ if (this.dbprecision) {
+ s += ',' + this.dbprecision;
+ }
+ s += ')';
+ }
+ if (declare.expression) {
+ s += ' = ' + declare.expression.toString();
+ }
+ return s;
+ })
+ .join(',');
+ }
+ return s;
+};
+
+yy.Declare.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (this.declares && this.declares.length > 0) {
+ this.declares.map(function(declare) {
+ var dbtypeid = declare.dbtypeid;
+ if (!alasql.fn[dbtypeid]) {
+ dbtypeid = dbtypeid.toUpperCase();
+ }
+ alasql.declares[declare.variable] = {
+ dbtypeid: dbtypeid,
+ dbsize: declare.dbsize,
+ dbprecision: declare.dbprecision,
+ };
+
+ // Set value
+ if (declare.expression) {
+
+ alasql.vars[declare.variable] = new Function(
+ 'params,alasql',
+ 'return ' + declare.expression.toJS('({})', '', null)
+ )(params, alasql);
+ if (alasql.declares[declare.variable]) {
+ alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
+ alasql.vars[declare.variable],
+ alasql.declares[declare.variable]
+ );
+ }
+ }
+ });
+ }
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+/*
+//
+// SHOW for Alasql.js
+// Date: 19.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.ShowDatabases = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowDatabases.prototype.toString = function() {
+ var s = 'SHOW DATABASES';
+ if (this.like) s += 'LIKE ' + this.like.toString();
+ return s;
+};
+yy.ShowDatabases.prototype.execute = function(databaseid, params, cb) {
+ if (this.engineid) {
+ return alasql.engines[this.engineid].showDatabases(this.like, cb);
+ } else {
+ var self = this;
+ var res = [];
+ for (var dbid in alasql.databases) {
+ res.push({databaseid: dbid});
+ }
+ if (self.like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ // return d.databaseid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
+ return alasql.utils.like(self.like.value, d.databaseid);
+ });
+ }
+ if (cb) cb(res);
+ return res;
+ }
+};
+
+yy.ShowTables = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowTables.prototype.toString = function() {
+ var s = 'SHOW TABLES';
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ if (this.like) s += ' LIKE ' + this.like.toString();
+ return s;
+};
+yy.ShowTables.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
+
+ var self = this;
+ var res = [];
+ for (var tableid in db.tables) {
+ res.push({tableid: tableid});
+ }
+ if (self.like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ //return d.tableid.match(new RegExp((self.like.value||'').replace(/\%/g,'.*').replace(/\?|_/g,'.'),'g'));
+ return alasql.utils.like(self.like.value, d.tableid);
+ });
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+yy.ShowColumns = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowColumns.prototype.toString = function() {
+ var s = 'SHOW COLUMNS';
+ if (this.table.tableid) s += ' FROM ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
+};
+
+yy.ShowColumns.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
+
+ if (table && table.columns) {
+ var res = table.columns.map(function(col) {
+ return {columnid: col.columnid, dbtypeid: col.dbtypeid, dbsize: col.dbsize};
+ });
+ if (cb) cb(res);
+ return res;
+ } else {
+ if (cb) cb([]);
+ return [];
+ }
+};
+
+yy.ShowIndex = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowIndex.prototype.toString = function() {
+ var s = 'SHOW INDEX';
+ if (this.table.tableid) s += ' FROM ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
+};
+yy.ShowIndex.prototype.execute = function(databaseid, params, cb) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
+ var res = [];
+ if (table && table.indices) {
+ for (var ind in table.indices) {
+ res.push({hh: ind, len: Object.keys(table.indices[ind]).length});
+ }
+ }
+
+ if (cb) cb(res);
+ return res;
+};
+
+yy.ShowCreateTable = function(params) {
+ return yy.extend(this, params);
+};
+yy.ShowCreateTable.prototype.toString = function() {
+ var s = 'SHOW CREATE TABLE ' + this.table.tableid;
+ if (this.databaseid) s += ' FROM ' + this.databaseid;
+ return s;
+};
+yy.ShowCreateTable.prototype.execute = function(databaseid) {
+ var db = alasql.databases[this.databaseid || databaseid];
+ var table = db.tables[this.table.tableid];
+ if (table) {
+ var s = 'CREATE TABLE ' + this.table.tableid + ' (';
+ var ss = [];
+ if (table.columns) {
+ table.columns.forEach(function(col) {
+ var a = col.columnid + ' ' + col.dbtypeid;
+ if (col.dbsize) a += '(' + col.dbsize + ')';
+ if (col.primarykey) a += ' PRIMARY KEY';
+ // TODO extend
+ ss.push(a);
+ });
+ s += ss.join(', ');
+ }
+ s += ')';
+ return s;
+ } else {
+ throw new Error('There is no such table "' + this.table.tableid + '"');
+ }
+};
+
+/*
+//
+// SET for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.SetVariable = function(params) {
+ return yy.extend(this, params);
+};
+yy.SetVariable.prototype.toString = function() {
+ var s = 'SET ';
+ if (typeof this.value != 'undefined')
+ s += this.variable.toUpperCase() + ' ' + (this.value ? 'ON' : 'OFF');
+ if (this.expression) s += this.method + this.variable + ' = ' + this.expression.toString();
+ return s;
+};
+
+yy.SetVariable.prototype.execute = function(databaseid, params, cb) {
+
+ if (typeof this.value != 'undefined') {
+ var val = this.value;
+ if (val == 'ON') val = true;
+ else if (val == 'OFF') val = false;
+ // if(this.method == '@') {
+ alasql.options[this.variable] = val;
+ // } else {
+ // params[this.variable] = val;
+ // }
+ } else if (this.expression) {
+ if (this.exists) {
+ this.existsfn = this.exists.map(function(ex) {
+ var nq = ex.compile(databaseid);
+ if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ return nq;
+ // return ex.compile(databaseid);
+ // TODO Include modifier
+ });
+ }
+ if (this.queries) {
+ this.queriesfn = this.queries.map(function(q) {
+ var nq = q.compile(databaseid);
+ if (nq.query && !nq.query.modifier) nq.query.modifier = 'RECORDSET';
+ return nq;
+ // TODO Include modifier
+ });
+ }
+
+ var res = new Function(
+ 'params,alasql',
+ 'return ' + this.expression.toJS('({})', '', null)
+ ).bind(this)(params, alasql);
+ if (alasql.declares[this.variable]) {
+ res = alasql.stdfn.CONVERT(res, alasql.declares[this.variable]);
+ }
+ if (this.props && this.props.length > 0) {
+ if (this.method == '@') {
+ var fs = "alasql.vars['" + this.variable + "']";
+ } else {
+ var fs = "params['" + this.variable + "']";
+ }
+ fs += this.props
+ .map(function(prop) {
+ if (typeof prop == 'string') {
+ return "['" + prop + "']";
+ } else if (typeof prop == 'number') {
+ return '[' + prop + ']';
+ } else {
+
+ return '[' + prop.toJS() + ']';
+ // } else {
+
+ // throw new Error('Wrong SET property');
+ }
+ })
+ .join();
+
+ new Function('value,params,alasql', 'var y;' + fs + '=value')(res, params, alasql);
+ } else {
+ if (this.method == '@') {
+ alasql.vars[this.variable] = res;
+ } else {
+ params[this.variable] = res;
+ }
+ }
+ }
+ var res = 1;
+ if (cb) res = cb(res);
+ return res;
+};
+
+// Console functions
+
+/* global alasql, yy */
+
+alasql.test = function(name, times, fn) {
+ if (arguments.length === 0) {
+ alasql.log(alasql.con.results);
+ return;
+ }
+
+ var tm = Date.now();
+
+ if (arguments.length === 1) {
+ fn();
+ alasql.con.log(Date.now() - tm);
+ return;
+ }
+
+ if (arguments.length === 2) {
+ fn = times;
+ times = 1;
+ }
+
+ for (var i = 0; i < times; i++) {
+ fn();
+ }
+ alasql.con.results[name] = Date.now() - tm;
+};
+
+// Console
+// alasql.log = function(sql, params) {
+
+// };
+
+/* global alasql, yy, utils */
+
+// Console
+alasql.log = function(sql, params) {
+ var olduseid = alasql.useid;
+ var target = alasql.options.logtarget;
+ // For node other
+ if (utils.isNode) {
+ target = 'console';
+ }
+
+ var res;
+ if (typeof sql === 'string') {
+ res = alasql(sql, params);
+ } else {
+ res = sql;
+ }
+
+ // For Node and console.output
+ if (target === 'console' || utils.isNode) {
+ if (typeof sql === 'string' && alasql.options.logprompt) {
+ console.log(olduseid + '>', sql);
+ }
+
+ if (Array.isArray(res)) {
+ if (console.table) {
+ // For Chrome and other consoles
+ console.table(res);
+ } else {
+ // Add print procedure
+ console.log(JSONtoString(res));
+ }
+ } else {
+ console.log(JSONtoString(res));
+ }
+ } else {
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
+
+ var s = '';
+
+ if (typeof sql === 'string' && alasql.options.logprompt) {
+ // s += ''+olduseid+'> '+alasql.pretty(sql)+'
';
+ s += '' + alasql.pretty(sql) + ' ';
+ }
+
+ if (Array.isArray(res)) {
+ if (res.length === 0) {
+ s += '[ ]
';
+ } else if (typeof res[0] !== 'object' || Array.isArray(res[0])) {
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ s += '' + loghtml(res[i]) + '
';
+ }
+ } else {
+ s += loghtml(res);
+ }
+ } else {
+ s += loghtml(res);
+ }
+ el.innerHTML += s;
+ }
+};
+
+alasql.clear = function() {
+ var target = alasql.options.logtarget;
+ // For node other
+
+ if (utils.isNode || utils.isMeteorServer) {
+ if (console.clear) {
+ console.clear();
+ }
+ } else {
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
+ el.innerHTML = '';
+ }
+};
+
+alasql.write = function(s) {
+
+ var target = alasql.options.logtarget;
+ // For node other
+ if (utils.isNode || utils.isMeteorServer) {
+ if (console.log) {
+ console.log(s);
+ }
+ } else {
+ var el;
+ if (target === 'output') {
+ el = document.getElementsByTagName('output')[0];
+ } else {
+ if (typeof target === 'string') {
+ el = document.getElementById(target);
+ } else {
+ // in case of DOM
+ el = target;
+ }
+ }
+ el.innerHTML += s;
+ }
+};
+
+function loghtml(res) {
+
+ var s = '';
+ if (res === undefined) {
+ s += 'undefined';
+ } else if (Array.isArray(res)) {
+ s += '';
+ s += '';
+ var cols = [];
+ for (var colid in res[0]) {
+ cols.push(colid);
+ }
+ s += '#';
+ cols.forEach(function(colid) {
+ s += ' ' + colid;
+ });
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ s += ' ' + (i + 1);
+ cols.forEach(function(colid) {
+ s += ' ';
+ if (res[i][colid] == +res[i][colid]) {
+ // jshint ignore:line
+ s += '';
+ if (typeof res[i][colid] === 'undefined') {
+ s += 'NULL';
+ } else {
+ s += res[i][colid];
+ }
+ s += '
';
+ } else {
+ if (typeof res[i][colid] === 'undefined') {
+ s += 'NULL';
+ } else if (typeof res[i][colid] === 'string') {
+ s += res[i][colid];
+ } else {
+ s += JSONtoString(res[i][colid]);
+ }
+ // s += res[i][colid];
+ }
+ });
+ }
+
+ s += '
';
+ } else {
+ s += '' + JSONtoString(res) + '
';
+ }
+ // if() {}
+
+ // if(typeof res == 'object') {
+ // s += ''+JSON.stringify(res)+'
';
+ // } else {
+ // }
+ return s;
+}
+
+function scrollTo(element, to, duration) {
+ if (duration <= 0) {
+ return;
+ }
+ var difference = to - element.scrollTop;
+ var perTick = (difference / duration) * 10;
+
+ setTimeout(function() {
+ if (element.scrollTop === to) {
+ return;
+ }
+ element.scrollTop = element.scrollTop + perTick;
+ scrollTo(element, to, duration - 10);
+ }, 10);
+}
+
+alasql.prompt = function(el, useidel, firstsql) {
+ if (utils.isNode) {
+ throw new Error('The prompt not realized for Node.js');
+ }
+
+ var prompti = 0;
+
+ if (typeof el === 'string') {
+ el = document.getElementById(el);
+ }
+
+ if (typeof useidel === 'string') {
+ useidel = document.getElementById(useidel);
+ }
+
+ useidel.textContent = alasql.useid;
+
+ if (firstsql) {
+ alasql.prompthistory.push(firstsql);
+ prompti = alasql.prompthistory.length;
+ try {
+ var tm = Date.now();
+ alasql.log(firstsql);
+ alasql.write('' + (Date.now() - tm) + ' ms
');
+ } catch (err) {
+ alasql.write('' + olduseid + '> ' + sql + '
');
+ alasql.write('' + err + '
');
+ }
+ }
+
+ var y = el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
+ scrollTo(document.getElementsByTagName('body')[0], y, 500);
+
+ el.onkeydown = function(event) {
+ if (event.which === 13) {
+ var sql = el.value;
+ var olduseid = alasql.useid;
+ el.value = '';
+ alasql.prompthistory.push(sql);
+ prompti = alasql.prompthistory.length;
+ try {
+ var tm = Date.now();
+ alasql.log(sql);
+ alasql.write('
' + (Date.now() - tm) + ' ms
');
+ } catch (err) {
+ alasql.write('' + olduseid + '> ' + alasql.pretty(sql, false) + '
');
+ alasql.write('' + err + '
');
+ }
+ el.focus();
+
+ useidel.textContent = alasql.useid;
+ var y =
+ el.getBoundingClientRect().top + document.getElementsByTagName('body')[0].scrollTop;
+ scrollTo(document.getElementsByTagName('body')[0], y, 500);
+ } else if (event.which === 38) {
+ prompti--;
+ if (prompti < 0) {
+ prompti = 0;
+ }
+ if (alasql.prompthistory[prompti]) {
+ el.value = alasql.prompthistory[prompti];
+ event.preventDefault();
+ }
+ } else if (event.which === 40) {
+ prompti++;
+ if (prompti >= alasql.prompthistory.length) {
+ prompti = alasql.prompthistory.length;
+ el.value = '';
+ } else if (alasql.prompthistory[prompti]) {
+ el.value = alasql.prompthistory[prompti];
+ event.preventDefault();
+ }
+ }
+ };
+};
+
+/*
+//
+// Commit for Alasql.js
+// Date: 01.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+yy.BeginTransaction = function(params) {
+ return yy.extend(this, params);
+};
+yy.BeginTransaction.prototype.toString = function() {
+ return 'BEGIN TRANSACTION';
+};
+
+yy.BeginTransaction.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid, cb);
+ } else {
+ // alasql commit!!!
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+yy.CommitTransaction = function(params) {
+ return yy.extend(this, params);
+};
+yy.CommitTransaction.prototype.toString = function() {
+ return 'COMMIT TRANSACTION';
+};
+
+yy.CommitTransaction.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid, cb);
+ } else {
+ // alasql commit!!!
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+yy.RollbackTransaction = function(params) {
+ return yy.extend(this, params);
+};
+yy.RollbackTransaction.prototype.toString = function() {
+ return 'ROLLBACK TRANSACTION';
+};
+
+yy.RollbackTransaction.prototype.execute = function(databaseid, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid].engineid) {
+ return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid, cb);
+ } else {
+ // alasql commit!!!
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+if (alasql.options.tsql) {
+ //
+ // Check tables and views
+ // IF OBJECT_ID('dbo.Employees') IS NOT NULL
+ // DROP TABLE dbo.Employees;
+ // IF OBJECT_ID('dbo.VSortedOrders', 'V') IS NOT NULL
+ // DROP VIEW dbo.VSortedOrders;
+
+ alasql.stdfn.OBJECT_ID = function(name, type) {
+ if (typeof type == 'undefined') type = 'T';
+ type = type.toUpperCase();
+
+ var sname = name.split('.');
+ var dbid = alasql.useid;
+ var objname = sname[0];
+ if (sname.length == 2) {
+ dbid = sname[0];
+ objname = sname[1];
+ }
+
+ var tables = alasql.databases[dbid].tables;
+ dbid = alasql.databases[dbid].databaseid;
+ for (var tableid in tables) {
+ if (tableid == objname) {
+ // TODO: What OBJECT_ID actually returns
+
+ if (tables[tableid].view && type == 'V') return dbid + '.' + tableid;
+ if (!tables[tableid].view && type == 'T') return dbid + '.' + tableid;
+ return undefined;
+ }
+ }
+
+ return undefined;
+ };
+}
+
+if (alasql.options.mysql) {
+}
+
+if (alasql.options.mysql || alasql.options.sqlite) {
+ // Pseudo INFORMATION_SCHEMA function
+ alasql.from.INFORMATION_SCHEMA = function(filename, opts, cb, idx, query) {
+ if (filename == 'VIEWS' || filename == 'TABLES') {
+ var res = [];
+ for (var databaseid in alasql.databases) {
+ var tables = alasql.databases[databaseid].tables;
+ for (var tableid in tables) {
+ if (
+ (tables[tableid].view && filename == 'VIEWS') ||
+ (!tables[tableid].view && filename == 'TABLES')
+ ) {
+ res.push({TABLE_CATALOG: databaseid, TABLE_NAME: tableid});
+ }
+ }
+ }
+ if (cb) res = cb(res, idx, query);
+ return res;
+ }
+ throw new Error('Unknown INFORMATION_SCHEMA table');
+ };
+}
+
+if (alasql.options.postgres) {
+}
+
+if (alasql.options.oracle) {
+}
+
+if (alasql.options.sqlite) {
+}
+
+//
+// into functions
+//
+// (c) 2014 Andrey Gershun
+//
+
+alasql.into.SQL = function(filename, opts, data, columns, cb) {
+ var res;
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+ if (typeof opt.tableid === 'undefined') {
+ throw new Error('Table for INSERT TO is not defined.');
+ }
+
+ var s = '';
+ if (columns.length === 0) {
+ if (typeof data[0] === 'object') {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ } else {
+ // What should I do?
+ // columns = [{columnid:"_"}];
+ }
+ }
+
+ for (var i = 0, ilen = data.length; i < ilen; i++) {
+ s += 'INSERT INTO ' + opts.tableid + '(';
+ s += columns
+ .map(function(col) {
+ return col.columnid;
+ })
+ .join(',');
+ s += ') VALUES (';
+ s += columns.map(function(col) {
+ var val = data[i][col.columnid];
+ if (col.typeid) {
+ if (
+ col.typeid === 'STRING' ||
+ col.typeid === 'VARCHAR' ||
+ col.typeid === 'NVARCHAR' ||
+ col.typeid === 'CHAR' ||
+ col.typeid === 'NCHAR'
+ ) {
+ val = "'" + escapeqq(val) + "'";
+ }
+ } else {
+ if (typeof val == 'string') {
+ val = "'" + escapeqq(val) + "'";
+ }
+ }
+ return val;
+ });
+ s += ');\n';
+ }
+ // if(filename === '') {
+ // res = s;
+ // } else {
+ // res = data.length;
+ filename = alasql.utils.autoExtFilename(filename, 'sql', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.HTML = function(selector, opts, data, columns, cb) {
+ var res = 1;
+ if (typeof exports !== 'object') {
+ var opt = {headers: true};
+ alasql.utils.extend(opt, opts);
+
+ var sel = document.querySelector(selector);
+ if (!sel) {
+ throw new Error('Selected HTML element is not found');
+ }
+
+ if (columns.length === 0) {
+ if (typeof data[0] === 'object') {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ } else {
+ // What should I do?
+ // columns = [{columnid:"_"}];
+ }
+ }
+
+ var tbe = document.createElement('table');
+ var thead = document.createElement('thead');
+ tbe.appendChild(thead);
+ if (opt.headers) {
+ var tre = document.createElement('tr');
+ for (var i = 0; i < columns.length; i++) {
+ var the = document.createElement('th');
+ the.textContent = columns[i].columnid;
+ tre.appendChild(the);
+ }
+ thead.appendChild(tre);
+ }
+
+ var tbody = document.createElement('tbody');
+ tbe.appendChild(tbody);
+ for (var j = 0; j < data.length; j++) {
+ var tre = document.createElement('tr');
+ for (var i = 0; i < columns.length; i++) {
+ var the = document.createElement('td');
+ the.textContent = data[j][columns[i].columnid];
+ tre.appendChild(the);
+ }
+ tbody.appendChild(tre);
+ }
+ alasql.utils.domEmptyChildren(sel);
+
+ sel.appendChild(tbe);
+ }
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.JSON = function(filename, opts, data, columns, cb) {
+ var res = 1;
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+ var s = JSON.stringify(data);
+
+ filename = alasql.utils.autoExtFilename(filename, 'json', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.TXT = function(filename, opts, data, columns, cb) {
+ // If columns is empty
+ if (columns.length === 0 && data.length > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ // If one parameter
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ var res = data.length;
+ var s = '';
+ if (data.length > 0) {
+ var key = columns[0].columnid;
+ s += data
+ .map(function(d) {
+ return d[key];
+ })
+ .join('\n');
+ }
+
+ // } else {
+ // if(utils.isNode) {
+ // process.stdout.write(s);
+ // } else {
+
+ // };
+ // }
+ filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
+ res = alasql.utils.saveFile(filename, s);
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+alasql.into.TAB = alasql.into.TSV = function(filename, opts, data, columns, cb) {
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+ opt.separator = '\t';
+ filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
+ opt.autoExt = false;
+ return alasql.into.CSV(filename, opt, data, columns, cb);
+};
+
+alasql.into.CSV = function(filename, opts, data, columns, cb) {
+ if (columns.length === 0 && data.length > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ if (typeof filename === 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ var opt = {headers: true};
+ //opt.separator = ',';
+ opt.separator = ';';
+ opt.quote = '"';
+
+ opt.utf8Bom = true;
+ if (opts && !opts.headers && typeof opts.headers !== 'undefined') {
+ opt.utf8Bom = false;
+ }
+
+ alasql.utils.extend(opt, opts);
+ var res = data.length;
+ var s = opt.utf8Bom ? '\ufeff' : '';
+ if (opt.headers) {
+ s +=
+ opt.quote +
+ columns
+ .map(function(col) {
+ return col.columnid.trim();
+ })
+ .join(opt.quote + opt.separator + opt.quote) +
+ opt.quote +
+ '\r\n';
+ }
+
+ data.forEach(function(d) {
+ s +=
+ columns
+ .map(function(col) {
+ var s = d[col.columnid];
+ // escape the character wherever it appears in the field
+ if (opt.quote !== '') {
+ s = (s + '').replace(
+ new RegExp('\\' + opt.quote, 'g'),
+ opt.quote + opt.quote
+ );
+ }
+ // if((s+"").indexOf(opt.separator) > -1 || (s+"").indexOf(opt.quote) > -1) s = opt.quote + s + opt.quote;
+
+ //Excel 2013 needs quotes around strings - thanks for _not_ complying with RFC for CSV
+ if (+s != s) {
+ // jshint ignore:line
+ s = opt.quote + s + opt.quote;
+ }
+
+ return s;
+ })
+ .join(opt.separator) + '\r\n';
+ });
+
+ filename = alasql.utils.autoExtFilename(filename, 'csv', opts);
+ res = alasql.utils.saveFile(filename, s, null, {disableAutoBom: true});
+ if (cb) {
+ res = cb(res);
+ }
+ return res;
+};
+
+//
+// 831xl.js - Coloring Excel
+// 18.04.2015
+// Generate XLS file with colors and styles
+// with Excel
+
+alasql.into.XLS = function(filename, opts, data, columns, cb) {
+ // If filename is not defined then output to the result
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ // Set sheets
+ var sheets = {};
+ if (opts && opts.sheets) {
+ sheets = opts.sheets;
+ }
+
+ // Default sheet
+ var sheet = {headers: true};
+ if (typeof sheets['Sheet1'] != 'undefined') {
+ sheet = sheets[0];
+ } else {
+ if (typeof opts != 'undefined') {
+ sheet = opts;
+ }
+ }
+
+ // Set sheet name and default is 'Sheet1'
+ if (typeof sheet.sheetid == 'undefined') {
+ sheet.sheetid = 'Sheet1';
+ }
+
+ var s = toHTML();
+
+ // File is ready to save
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ var res = alasql.utils.saveFile(filename, s);
+ if (cb) res = cb(res);
+ return res;
+
+ function toHTML() {
+ // Generate prologue
+ var s =
+ '
\
+ \
+ ';
+
+ // Generate body
+ s += '';
+ s += '';
+ if (typeof sheet.caption != 'undefined') {
+ var caption = sheet.caption;
+ if (typeof caption == 'string') {
+ caption = {title: caption};
+ }
+ s += '';
+ s += caption.title;
+ s += ' ';
+ }
+
+ // Columns
+
+ // var columns = [];
+
+ // If columns defined in sheet, then take them
+ if (typeof sheet.columns != 'undefined') {
+ columns = sheet.columns;
+ } else {
+ // Autogenerate columns if they are passed as parameters
+ if (columns.length == 0 && data.length > 0) {
+ if (typeof data[0] == 'object') {
+ if (Array.isArray(data[0])) {
+ columns = data[0].map(function(d, columnidx) {
+ return {columnid: columnidx};
+ });
+ } else {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ }
+ }
+ }
+
+ // Prepare columns
+ columns.forEach(function(column, columnidx) {
+ if (typeof sheet.column != 'undefined') {
+ extend(column, sheet.column);
+ }
+
+ if (typeof column.width == 'undefined') {
+ if (sheet.column && sheet.column.width != 'undefined') {
+ column.width = sheet.column.width;
+ } else {
+ column.width = '120px';
+ }
+ }
+ if (typeof column.width == 'number') column.width = column.width + 'px';
+ if (typeof column.columnid == 'undefined') column.columnid = columnidx;
+ if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
+ if (sheet.headers && Array.isArray(sheet.headers))
+ column.title = sheet.headers[columnidx];
+ });
+
+ // Set columns widths
+ s += '';
+ columns.forEach(function(column) {
+ s += ' ';
+ });
+ s += ' ';
+
+ // Headers
+ if (sheet.headers) {
+ s += '';
+ s += '';
+
+ // TODO: Skip columns to body
+
+ // Headers
+ columns.forEach(function(column, columnidx) {
+ s += '';
+
+ // Column title
+ if (typeof column.title != 'undefined') {
+ if (typeof column.title == 'function') {
+ s += column.title(sheet, column, columnidx);
+ } else {
+ s += column.title;
+ }
+ }
+ s += ' ';
+ });
+
+ s += ' ';
+ s += ' ';
+ }
+
+ s += '';
+
+ // TODO: Skip lines between header and body
+
+ if (data && data.length > 0) {
+ // TODO: Skip columns to body
+
+ // Loop over data rows
+ data.forEach(function(row, rowidx) {
+ // Limit number of rows on the sheet
+ if (rowidx > sheet.limit) return;
+ // Create row
+ s += '';
+ // Loop over columns
+ columns.forEach(function(column, columnidx) {
+ // Parameters
+ var cell = {};
+ extend(cell, sheet.cell);
+ extend(cell, srow.cell);
+ if (typeof sheet.column != 'undefined') {
+ extend(cell, sheet.column.cell);
+ }
+ extend(cell, column.cell);
+ if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
+ extend(cell, sheet.cells[rowidx][columnidx]);
+ }
+
+ // Create value
+ var value = row[column.columnid];
+ if (typeof cell.value == 'function') {
+ value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ // Define cell type
+ var typeid = cell.typeid;
+ if (typeof typeid == 'function') {
+ typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ if (typeof typeid == 'undefined') {
+ if (typeof value == 'number') typeid = 'number';
+ else if (typeof value == 'string') typeid = 'string';
+ else if (typeof value == 'boolean') typeid = 'boolean';
+ else if (typeof value == 'object') {
+ if (value instanceof Date) typeid = 'date';
+ }
+ }
+
+ var typestyle = '';
+
+ if (typeid == 'money') {
+ typestyle =
+ 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
+ } else if (typeid == 'number') {
+ typestyle = ' ';
+ } else if (typeid == 'date') {
+ typestyle = 'mso-number-format:"Short Date";';
+ } else {
+ // FOr other types is saved
+ if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
+ typestyle = opts.types[typeid].typestyle;
+ }
+ }
+
+ // TODO Replace with extend...
+ typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
+
+ s += "';
+
+ // TODO Replace with extend...
+ var format = cell.format;
+ if (typeof value == 'undefined') {
+ s += '';
+ } else if (typeof format != 'undefined') {
+ if (typeof format == 'function') {
+ s += format(value);
+ } else if (typeof format == 'string') {
+ s += value; // TODO - add string format
+ } else {
+ throw new Error('Unknown format type. Should be function or string');
+ }
+ } else {
+ if (typeid == 'number' || typeid == 'date') {
+ s += value.toString();
+ } else if (typeid == 'money') {
+ s += (+value).toFixed(2);
+ } else {
+ s += value;
+ }
+ }
+ s += ' ';
+ });
+
+ s += ' ';
+ });
+ }
+
+ s += ' ';
+
+ // Generate epilogue
+ s += '
';
+ s += '';
+ s += '';
+
+ return s;
+ }
+
+ // Style function
+ function style(a) {
+ var s = ' style="';
+ if (a && typeof a.style != 'undefined') {
+ s += a.style + ';';
+ }
+ s += '" ';
+ return s;
+ }
+};
+
+alasql.into.XLSXML = function(filename, opts, data, columns, cb) {
+ opts = opts || {};
+
+ // If filename is not defined then output to the result
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ // Set sheets
+ var sheets = {};
+ var sheetsdata;
+ var sheetscolumns;
+ if (opts && opts.sheets) {
+ sheets = opts.sheets;
+ // data and columns are already an array for the sheets
+ sheetsdata = data;
+ sheetscolumns = columns;
+ } else {
+ sheets.Sheet1 = opts;
+ // wrapd ata and columns array for single sheet
+ sheetsdata = [data];
+ sheetscolumns = [columns];
+ }
+
+ // File is ready to save
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ var res = alasql.utils.saveFile(filename, toXML());
+ if (cb) res = cb(res);
+ return res;
+
+ function toXML() {
+ var s1 =
+ ' \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ 0 \
+ \
+ \
+ ';
+
+ var s2 = ''; // for styles
+
+ var s3 = ' ';
+
+ var styles = {}; // hash based storage for styles
+ var stylesn = 62; // First style
+
+ // Generate style
+ function hstyle(st) {
+ // Prepare string
+ var s = '';
+ for (var key in st) {
+ s += '<' + key;
+ for (var attr in st[key]) {
+ s += ' ';
+ if (attr.substr(0, 2) == 'x:') {
+ s += attr;
+ } else {
+ s += 'ss:';
+ }
+ s += attr + '="' + st[key][attr] + '"';
+ }
+ s += '/>';
+ }
+
+ var hh = hash(s);
+ // Store in hash
+ if (styles[hh]) {
+ } else {
+ styles[hh] = {styleid: stylesn};
+ s2 += '';
+ stylesn++;
+ }
+ return 's' + styles[hh].styleid;
+ }
+
+ function values(obj) {
+ try {
+ return Object.values(obj);
+ } catch (e) {
+ // support for older runtimes
+ return Object.keys(obj).map(function(e) {
+ return obj[e];
+ });
+ }
+ }
+
+ var sheetidx = 0;
+ for (var sheetid in sheets) {
+ var sheet = sheets[sheetid];
+ var idx = typeof sheet.dataidx != 'undefined' ? sheet.dataidx : sheetidx++;
+ var data = values(sheetsdata[idx]);
+ // If columns defined in sheet, then take them
+ var columns = undefined;
+ if (typeof sheet.columns != 'undefined') {
+ columns = sheet.columns;
+ } else {
+ // Autogenerate columns if they are passed as parameters
+ columns = sheetscolumns[idx];
+ if (columns === undefined || (columns.length == 0 && data.length > 0)) {
+ if (typeof data[0] == 'object') {
+ if (Array.isArray(data[0])) {
+ columns = data[0].map(function(d, columnidx) {
+ return {columnid: columnidx};
+ });
+ } else {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+ }
+ }
+ }
+
+ // Prepare columns
+ columns.forEach(function(column, columnidx) {
+ if (typeof sheet.column != 'undefined') {
+ extend(column, sheet.column);
+ }
+
+ if (typeof column.width == 'undefined') {
+ if (sheet.column && typeof sheet.column.width != 'undefined') {
+ column.width = sheet.column.width;
+ } else {
+ column.width = 120;
+ }
+ }
+ if (typeof column.width == 'number') column.width = column.width;
+ if (typeof column.columnid == 'undefined') column.columnid = columnidx;
+ if (typeof column.title == 'undefined') column.title = '' + column.columnid.trim();
+ if (sheet.headers && Array.isArray(sheet.headers))
+ column.title = sheet.headers[columnidx];
+ });
+
+ // Header
+ s3 +=
+ ' \
+ ';
+
+ columns.forEach(function(column, columnidx) {
+ s3 +=
+ ' ';
+ });
+
+ // Headers
+ if (sheet.headers) {
+ s3 += '';
+
+ // TODO: Skip columns to body
+
+ // Headers
+ columns.forEach(function(column, columnidx) {
+ s3 += '';
+
+ // Column title
+ if (typeof column.title != 'undefined') {
+ if (typeof column.title == 'function') {
+ s3 += column.title(sheet, column, columnidx);
+ } else {
+ s3 += column.title;
+ }
+ }
+ s3 += ' | ';
+ });
+
+ s3 += '
';
+ }
+
+ // Data
+ if (data && data.length > 0) {
+ // Loop over data rows
+ data.forEach(function(row, rowidx) {
+ // Limit number of rows on the sheet
+ if (rowidx > sheet.limit) return;
+
+ // Extend row properties
+ var srow = {};
+ extend(srow, sheet.row);
+ if (sheet.rows && sheet.rows[rowidx]) {
+ extend(srow, sheet.rows[rowidx]);
+ }
+
+ s3 += ''; //'ss:AutoFitHeight="0">'
+
+ // Data
+ columns.forEach(function(column, columnidx) {
+ // Parameters
+ var cell = {};
+ extend(cell, sheet.cell);
+ extend(cell, srow.cell);
+ if (typeof sheet.column != 'undefined') {
+ extend(cell, sheet.column.cell);
+ }
+ extend(cell, column.cell);
+ if (sheet.cells && sheet.cells[rowidx] && sheet.cells[rowidx][columnidx]) {
+ extend(cell, sheet.cells[rowidx][columnidx]);
+ }
+
+ // Create value
+ var value = row[column.columnid];
+ if (typeof cell.value == 'function') {
+ value = cell.value(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ // Define cell type
+ var typeid = cell.typeid;
+ if (typeof typeid == 'function') {
+ typeid = typeid(value, sheet, row, column, cell, rowidx, columnidx);
+ }
+
+ if (typeof typeid == 'undefined') {
+ if (typeof value == 'number') typeid = 'number';
+ else if (typeof value == 'string') typeid = 'string';
+ else if (typeof value == 'boolean') typeid = 'boolean';
+ else if (typeof value == 'object') {
+ if (value instanceof Date) typeid = 'date';
+ }
+ }
+
+ var Type = 'String';
+ if (typeid == 'number') Type = 'Number';
+ else if (typeid == 'date') Type = 'Date';
+ // TODO: What else?
+
+ // Prepare Data types styles
+ var typestyle = '';
+
+ if (typeid == 'money') {
+ typestyle =
+ 'mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;';
+ } else if (typeid == 'number') {
+ typestyle = ' ';
+ } else if (typeid == 'date') {
+ typestyle = 'mso-number-format:"Short Date";';
+ } else {
+ // For other types is saved
+ if (opts.types && opts.types[typeid] && opts.types[typeid].typestyle) {
+ typestyle = opts.types[typeid].typestyle;
+ }
+ }
+
+ // TODO Replace with extend...
+ typestyle = typestyle || 'mso-number-format:"\\@";'; // Default type style
+
+ s3 += '';
+
+ s3 += '';
+
+ // TODO Replace with extend...
+ var format = cell.format;
+ if (typeof value == 'undefined') {
+ s3 += '';
+ } else if (typeof format != 'undefined') {
+ if (typeof format == 'function') {
+ s3 += format(value);
+ } else if (typeof format == 'string') {
+ s3 += value; // TODO - add string format
+ } else {
+ throw new Error(
+ 'Unknown format type. Should be function or string'
+ );
+ }
+ } else {
+ if (typeid == 'number' || typeid == 'date') {
+ s3 += value.toString();
+ } else if (typeid == 'money') {
+ s3 += (+value).toFixed(2);
+ } else {
+ s3 += value;
+ }
+ }
+
+ // s3 += row[column.columnid];
+ s3 += ' | ';
+ });
+
+ s3 += '
';
+ });
+ }
+ // Finish
+ s3 += '
';
+ }
+
+ s3 += ' ';
+
+ return s1 + s2 + s3;
+ }
+};
+
+/**
+ Export to XLSX function
+ @function
+ @param {string|object} filename Filename or options
+ @param {object|undefined} opts Options or undefined
+ @param {array} data Data
+ @param {array} columns Columns
+ @parab {callback} cb Callback function
+ @return {number} Number of files processed
+*/
+
+alasql.into.XLSX = function(filename, opts, data, columns, cb) {
+ /** @type {number} result */
+ var res = 1;
+
+ if (deepEqual(columns, [{columnid: '_'}])) {
+ data = data.map(function(dat) {
+ return dat._;
+ });
+ columns = undefined;
+ // res = [{_:1}];
+ } else {
+ // data = data1;
+ }
+
+ filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
+
+ var XLSX = getXLSX();
+
+ /* If called without filename, use opts */
+ if (typeof filename == 'object') {
+ opts = filename;
+ filename = undefined;
+ }
+
+ /** @type {object} Workbook */
+ var wb = {SheetNames: [], Sheets: {}};
+
+ // ToDo: check if cb must be treated differently here
+ if (opts.sourcefilename) {
+ alasql.utils.loadBinaryFile(opts.sourcefilename, !!cb, function(data) {
+ wb = XLSX.read(data, {type: 'binary'});
+ doExport();
+ });
+ } else {
+ doExport();
+ }
+
+ /* Return result */
+ if (cb) res = cb(res);
+ return res;
+
+ /**
+ Export workbook
+ @function
+ */
+ function doExport() {
+ /*
+ If opts is array of arrays then this is a
+ multisheet workboook, else it is a singlesheet
+ */
+ if (typeof opts == 'object' && Array.isArray(opts)) {
+ if (data && data.length > 0) {
+ data.forEach(function(dat, idx) {
+ prepareSheet(opts[idx], dat, undefined, idx + 1);
+ });
+ }
+ } else {
+ prepareSheet(opts, data, columns, 1);
+ }
+
+ saveWorkbook(cb);
+ }
+
+ /**
+ Prepare sheet
+ @params {object} opts
+ @params {array|object} data
+ @params {array} columns Columns
+ */
+ function prepareSheet(opts, data, columns, idx) {
+ /** Default options for sheet */
+ var opt = {sheetid: 'Sheet ' + idx, headers: true};
+ alasql.utils.extend(opt, opts);
+
+ var dataLength = Object.keys(data).length;
+
+ // Generate columns if they are not defined
+ if ((!columns || columns.length == 0) && dataLength > 0) {
+ columns = Object.keys(data[0]).map(function(columnid) {
+ return {columnid: columnid};
+ });
+ }
+
+ var cells = {};
+
+ if (wb.SheetNames.indexOf(opt.sheetid) > -1) {
+ cells = wb.Sheets[opt.sheetid];
+ } else {
+ wb.SheetNames.push(opt.sheetid);
+ wb.Sheets[opt.sheetid] = {};
+ cells = wb.Sheets[opt.sheetid];
+ }
+
+ var range = 'A1';
+ if (opt.range) range = opt.range;
+
+ var col0 = alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);
+ var row0 = +range.match(/[0-9]+/)[0] - 1;
+
+ if (wb.Sheets[opt.sheetid]['!ref']) {
+ var rangem = wb.Sheets[opt.sheetid]['!ref'];
+ var colm = alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);
+ var rowm = +rangem.match(/[0-9]+/)[0] - 1;
+ } else {
+ var colm = 1,
+ rowm = 1;
+ }
+ var colmax = Math.max(col0 + columns.length, colm);
+ var rowmax = Math.max(row0 + dataLength + 2, rowm);
+
+ var i = row0 + 1;
+
+ wb.Sheets[opt.sheetid]['!ref'] = 'A1:' + alasql.utils.xlsnc(colmax) + rowmax;
+ // var i = 1;
+
+ if (opt.headers) {
+ columns.forEach(function(col, idx) {
+ cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = {v: col.columnid.trim()};
+ });
+ i++;
+ }
+
+ for (var j = 0; j < dataLength; j++) {
+ columns.forEach(function(col, idx) {
+ var cell = {v: data[j][col.columnid]};
+ if (typeof data[j][col.columnid] == 'number') {
+ cell.t = 'n';
+ } else if (typeof data[j][col.columnid] == 'string') {
+ cell.t = 's';
+ } else if (typeof data[j][col.columnid] == 'boolean') {
+ cell.t = 'b';
+ } else if (typeof data[j][col.columnid] == 'object') {
+ if (data[j][col.columnid] instanceof Date) {
+ cell.t = 'd';
+ }
+ }
+ cells[alasql.utils.xlsnc(col0 + idx) + '' + i] = cell;
+ });
+ i++;
+ }
+ }
+
+ /**
+ Save Workbook
+ @params {array} wb Workbook
+ @params {callback} cb Callback
+ */
+ function saveWorkbook(cb) {
+
+ var XLSX;
+
+ if (typeof filename == 'undefined') {
+ res = wb;
+ } else {
+ XLSX = getXLSX();
+
+ if (utils.isNode || utils.isMeteorServer) {
+ XLSX.writeFile(wb, filename);
+ } else {
+ var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
+ var wbout = XLSX.write(wb, wopts);
+
+ var s2ab = function(s) {
+ var buf = new ArrayBuffer(s.length);
+ var view = new Uint8Array(buf);
+ for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
+ return buf;
+ };
+
+ /* the saveAs call downloads a file on the local machine */
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"')
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), filename)
+ // saveAs(new Blob([s2ab(wbout)],{type:"application/vnd.ms-excel"}), '"'+filename+'"');
+ if (isIE() == 9) {
+ throw new Error(
+ 'Cannot save XLSX files in IE9. Please use XLS() export function'
+ );
+ // var URI = 'data:text/plain;charset=utf-8,';
+
+ /** @todo Check if this code is required */
+
+ // alert('ie9');
+ } else {
+ saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);
+ }
+ }
+ }
+
+ }
+};
+
+/*
+//
+// FROM functions Alasql.js
+// Date: 11.12.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/**
+ Meteor
+ */
+
+/* global alasql Tabletop document Event */
+
+alasql.from.METEOR = function(filename, opts, cb, idx, query) {
+ var res = filename.find(opts).fetch();
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+/**
+ Google Spreadsheet reader
+ */
+alasql.from.TABLETOP = function(key, opts, cb, idx, query) {
+ var res = [];
+
+ var opt = {headers: true, simpleSheet: true, key: key};
+ alasql.utils.extend(opt, opts);
+ opt.callback = function(data) {
+ res = data;
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ };
+
+ Tabletop.init(opt);
+ return null;
+};
+
+alasql.from.HTML = function(selector, opts, cb, idx, query) {
+ var opt = {};
+ alasql.utils.extend(opt, opts);
+
+ var sel = document.querySelector(selector);
+ if (!sel && sel.tagName !== 'TABLE') {
+ throw new Error('Selected HTML element is not a TABLE');
+ }
+
+ var res = [];
+ var headers = opt.headers;
+
+ if (headers && !Array.isArray(headers)) {
+ headers = [];
+ var ths = sel.querySelector('thead tr').children;
+ for (var i = 0; i < ths.length; i++) {
+ if (
+ !(ths.item(i).style && ths.item(i).style.display === 'none' && opt.skipdisplaynone)
+ ) {
+ headers.push(ths.item(i).textContent);
+ } else {
+ headers.push(undefined);
+ }
+ }
+ }
+
+ var trs = sel.querySelectorAll('tbody tr');
+
+ for (var j = 0; j < trs.length; j++) {
+ var tds = trs.item(j).children;
+ var r = {};
+ for (i = 0; i < tds.length; i++) {
+ if (
+ !(tds.item(i).style && tds.item(i).style.display === 'none' && opt.skipdisplaynone)
+ ) {
+ if (headers) {
+ r[headers[i]] = tds.item(i).textContent;
+ } else {
+ r[i] = tds.item(i).textContent;
+
+ }
+ }
+ }
+ res.push(r);
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+alasql.from.RANGE = function(start, finish, cb, idx, query) {
+ var res = [];
+ for (var i = start; i <= finish; i++) {
+ res.push(i);
+ }
+ // res = new alasql.Recordset({data:res,columns:{columnid:'_'}});
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ return res;
+};
+
+// Read data from any file
+alasql.from.FILE = function(filename, opts, cb, idx, query) {
+ var fname;
+ if (typeof filename === 'string') {
+ fname = filename;
+ } else if (filename instanceof Event) {
+ fname = filename.target.files[0].name;
+ } else {
+ throw new Error('Wrong usage of FILE() function');
+ }
+
+ var parts = fname.split('.');
+
+ var ext = parts[parts.length - 1].toUpperCase();
+
+ if (alasql.from[ext]) {
+
+ return alasql.from[ext](filename, opts, cb, idx, query);
+ } else {
+ throw new Error('Cannot recognize file type for loading');
+ }
+};
+
+// Read JSON file
+
+alasql.from.JSON = function(filename, opts, cb, idx, query) {
+ var res;
+
+ filename = alasql.utils.autoExtFilename(filename, 'json', opts);
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+
+ // res = [{a:1}];
+ res = JSON.parse(data);
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ });
+ return res;
+};
+
+alasql.from.TXT = function(filename, opts, cb, idx, query) {
+ var res;
+ filename = alasql.utils.autoExtFilename(filename, 'txt', opts);
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+ res = data.split(/\r?\n/);
+
+ // Remove last line if empty
+ if (res[res.length - 1] === '') {
+ res.pop();
+ }
+ for (var i = 0, ilen = res.length; i < ilen; i++) {
+ // Please avoid '===' here
+ if (res[i] == +res[i]) {
+ // eslint:ignore
+ // jshint ignore:line
+ res[i] = +res[i];
+ }
+ res[i] = [res[i]];
+ }
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ });
+ return res;
+};
+
+alasql.from.TAB = alasql.from.TSV = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ opts.separator = '\t';
+ filename = alasql.utils.autoExtFilename(filename, 'tab', opts);
+ opts.autoext = false;
+ return alasql.from.CSV(filename, opts, cb, idx, query);
+};
+
+alasql.from.CSV = function(contents, opts, cb, idx, query) {
+ var opt = {
+ separator: ',',
+ quote: '"',
+ headers: true,
+ };
+ alasql.utils.extend(opt, opts);
+ var res;
+ var hs = [];
+ function parseText(text) {
+ var delimiterCode = opt.separator.charCodeAt(0);
+ var quoteCode = opt.quote.charCodeAt(0);
+
+ var EOL = {},
+ EOF = {},
+ rows = [],
+ N = text.length,
+ I = 0,
+ n = 0,
+ t,
+ eol;
+ function token() {
+ if (I >= N) {
+ return EOF;
+ }
+ if (eol) {
+ return (eol = false, EOL);
+ }
+ var j = I;
+ if (text.charCodeAt(j) === quoteCode) {
+ var i = j;
+ while (i++ < N) {
+ if (text.charCodeAt(i) === quoteCode) {
+ if (text.charCodeAt(i + 1) !== quoteCode) {
+ break;
+ }
+ ++i;
+ }
+ }
+ I = i + 2;
+ var c = text.charCodeAt(i + 1);
+ if (c === 13) {
+ eol = true;
+ if (text.charCodeAt(i + 2) === 10) {
+ ++I;
+ }
+ } else if (c === 10) {
+ eol = true;
+ }
+ return text.substring(j + 1, i).replace(/""/g, '"');
+ }
+ while (I < N) {
+ var c = text.charCodeAt(I++),
+ k = 1;
+ if (c === 10) {
+ eol = true;
+ } else if (c === 13) {
+ eol = true;
+ if (text.charCodeAt(I) === 10) {
+ ++I;
+ ++k;
+ }
+ } else if (c !== delimiterCode) {
+ continue;
+ }
+ return text.substring(j, I - k);
+ }
+ return text.substring(j);
+ }
+
+ while ((t = token()) !== EOF) {
+ var a = [];
+ while (t !== EOL && t !== EOF) {
+ a.push(t.trim());
+ t = token();
+ }
+
+ if (opt.headers) {
+ if (n === 0) {
+ if (typeof opt.headers === 'boolean') {
+ hs = a;
+ } else if (Array.isArray(opt.headers)) {
+ hs = opt.headers;
+ var r = {};
+ hs.forEach(function(h, idx) {
+ r[h] = a[idx];
+ // Please avoid === here
+ if (
+ typeof r[h] !== 'undefined' &&
+ r[h].length !== 0 &&
+ r[h].trim() == +r[h]
+ ) {
+ // jshint ignore:line
+ r[h] = +r[h];
+ }
+ });
+ rows.push(r);
+ }
+ } else {
+ var r = {};
+ hs.forEach(function(h, idx) {
+ r[h] = a[idx];
+ if (
+ typeof r[h] !== 'undefined' &&
+ r[h].length !== 0 &&
+ r[h].trim() == +r[h]
+ ) {
+ // jshint ignore:line
+ r[h] = +r[h];
+ }
+ });
+ rows.push(r);
+ }
+ n++;
+ } else {
+ rows.push(a);
+ }
+ }
+
+ res = rows;
+
+ if (opt.headers) {
+ if (query && query.sources && query.sources[idx]) {
+ var columns = (query.sources[idx].columns = []);
+ hs.forEach(function(h) {
+ columns.push({columnid: h});
+ });
+ }
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ }
+ if (new RegExp('\n').test(contents)) {
+ parseText(contents);
+ } else {
+ contents = alasql.utils.autoExtFilename(contents, 'csv', opts);
+ alasql.utils.loadFile(contents, !!cb, parseText, query.cb);
+ }
+ return res;
+};
+
+function XLSXLSX(X, filename, opts, cb, idx, query) {
+ var opt = {};
+ opts = opts || {};
+ alasql.utils.extend(opt, opts);
+ if (typeof opt.headers === 'undefined') {
+ opt.headers = true;
+ }
+ var res;
+
+ /**
+ * see https://github.com/SheetJS/js-xlsx/blob/5ae6b1965bfe3764656a96f536b356cd1586fec7/README.md
+ * for example of using readAsArrayBuffer under `Parsing Workbooks`
+ */
+ function fixdata(data) {
+ var o = '',
+ l = 0,
+ w = 10240;
+ for (; l < data.byteLength / w; ++l)
+ o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
+ o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
+ return o;
+ }
+ function getHeaderText(text) {
+ // if casesensitive option is set to false and there is a text value return lowercase value of text
+ if (text && alasql.options.casesensitive === false) {
+ return text.toLowerCase();
+ } else {
+ return text;
+ }
+ }
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ alasql.utils.loadBinaryFile(
+ filename,
+ !!cb,
+ function(data) {
+ // function processData(data) {
+ if (data instanceof ArrayBuffer) {
+ var arr = fixdata(data);
+ var workbook = X.read(btoa(arr), {type: 'base64'});
+ } else {
+ var workbook = X.read(data, {type: 'binary'});
+ }
+
+ var sheetid;
+ if (typeof opt.sheetid === 'undefined') {
+ sheetid = workbook.SheetNames[0];
+ } else if (typeof opt.sheetid === 'number') {
+ sheetid = workbook.SheetNames[opt.sheetid];
+ } else {
+ sheetid = opt.sheetid;
+ }
+ var range;
+ var res = [];
+ if (typeof opt.range === 'undefined') {
+ range = workbook.Sheets[sheetid]['!ref'];
+ } else {
+ range = opt.range;
+ if (workbook.Sheets[sheetid][range]) {
+ range = workbook.Sheets[sheetid][range];
+ }
+ }
+ // if range has some value then data is present in the current sheet
+ // else current sheet is empty
+ if (range) {
+ var rg = range.split(':');
+ var col0 = rg[0].match(/[A-Z]+/)[0];
+ var row0 = +rg[0].match(/[0-9]+/)[0];
+ var col1 = rg[1].match(/[A-Z]+/)[0];
+ var row1 = +rg[1].match(/[0-9]+/)[0];
+
+ var hh = {};
+ var xlscnCol0 = alasql.utils.xlscn(col0);
+ var xlscnCol1 = alasql.utils.xlscn(col1);
+ for (var j = xlscnCol0; j <= xlscnCol1; j++) {
+ var col = alasql.utils.xlsnc(j);
+ if (opt.headers) {
+ if (workbook.Sheets[sheetid][col + '' + row0]) {
+ hh[col] = getHeaderText(workbook.Sheets[sheetid][col + '' + row0].v);
+ } else {
+ hh[col] = getHeaderText(col);
+ }
+ } else {
+ hh[col] = col;
+ }
+ }
+ if (opt.headers) {
+ row0++;
+ }
+ for (var i = row0; i <= row1; i++) {
+ var row = {};
+ for (var j = xlscnCol0; j <= xlscnCol1; j++) {
+ var col = alasql.utils.xlsnc(j);
+ if (workbook.Sheets[sheetid][col + '' + i]) {
+ row[hh[col]] = workbook.Sheets[sheetid][col + '' + i].v;
+ }
+ }
+ res.push(row);
+ }
+ } else {
+ res.push([]);
+ }
+
+ // Remove last empty line (issue #548)
+ if (
+ res.length > 0 &&
+ res[res.length - 1] &&
+ Object.keys(res[res.length - 1]).length == 0
+ ) {
+ res.pop();
+ }
+
+ if (cb) {
+ res = cb(res, idx, query);
+ }
+ },
+ function(err) {
+ throw err;
+ }
+ );
+
+ return res;
+}
+
+alasql.from.XLS = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'xls', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.XLSX = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'xlsx', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.ODS = function(filename, opts, cb, idx, query) {
+ opts = opts || {};
+ filename = alasql.utils.autoExtFilename(filename, 'ods', opts);
+ opts.autoExt = false;
+ return XLSXLSX(getXLSX(), filename, opts, cb, idx, query);
+};
+
+alasql.from.XML = function(filename, opts, cb, idx, query) {
+ var res;
+
+ alasql.utils.loadFile(filename, !!cb, function(data) {
+
+ // res = [{a:1}];
+
+ res = xmlparse(data).root;
+
+ if (cb) res = cb(res, idx, query);
+ });
+ return res;
+};
+
+/**
+ * Parse the given string of `xml`.
+ *
+ * @param {String} xml
+ * @return {Object}
+ * @api public
+ */
+
+function xmlparse(xml) {
+ xml = xml.trim();
+
+ // strip comments
+ xml = xml.replace(//g, '');
+
+ return document();
+
+ /**
+ * XML document.
+ */
+
+ function document() {
+ return {
+ declaration: declaration(),
+ root: tag(),
+ };
+ }
+
+ /**
+ * Declaration.
+ */
+
+ function declaration() {
+ var m = match(/^<\?xml\s*/);
+ if (!m) return;
+
+ // tag
+ var node = {
+ attributes: {},
+ };
+
+ // attributes
+ while (!(eos() || is('?>'))) {
+ var attr = attribute();
+ if (!attr) return node;
+ node.attributes[attr.name] = attr.value;
+ }
+
+ match(/\?>\s*/);
+
+ return node;
+ }
+
+ /**
+ * Tag.
+ */
+
+ function tag() {
+ var m = match(/^<([\w-:.]+)\s*/);
+ if (!m) return;
+
+ // name
+ var node = {
+ name: m[1],
+ attributes: {},
+ children: [],
+ };
+
+ // attributes
+ while (!(eos() || is('>') || is('?>') || is('/>'))) {
+ var attr = attribute();
+ if (!attr) return node;
+ node.attributes[attr.name] = attr.value;
+ }
+
+ // self closing tag
+ if (match(/^\s*\/>\s*/)) {
+ return node;
+ }
+
+ match(/\??>\s*/);
+
+ // content
+ node.content = content();
+
+ // children
+ var child;
+ while ((child = tag())) {
+ node.children.push(child);
+ }
+
+ // closing
+ match(/^<\/[\w-:.]+>\s*/);
+
+ return node;
+ }
+
+ /**
+ * Text content.
+ */
+
+ function content() {
+ var m = match(/^([^<]*)/);
+ if (m) return m[1];
+ return '';
+ }
+
+ /**
+ * Attribute.
+ */
+
+ function attribute() {
+ var m = match(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);
+ if (!m) return;
+ return {name: m[1], value: strip(m[2])};
+ }
+
+ /**
+ * Strip quotes from `val`.
+ */
+
+ function strip(val) {
+ return val.replace(/^['"]|['"]$/g, '');
+ }
+
+ /**
+ * Match `re` and advance the string.
+ */
+
+ function match(re) {
+ var m = xml.match(re);
+ if (!m) return;
+ xml = xml.slice(m[0].length);
+ return m;
+ }
+
+ /**
+ * End-of-source.
+ */
+
+ function eos() {
+ return 0 == xml.length;
+ }
+
+ /**
+ * Check for `prefix`.
+ */
+
+ function is(prefix) {
+ return 0 == xml.indexOf(prefix);
+ }
+}
+
+alasql.from.GEXF = function(filename, opts, cb, idx, query) {
+ var res;
+ alasql('SEARCH FROM XML(' + filename + ')', [], function(data) {
+ res = data;
+
+ if (cb) res = cb(res);
+ });
+ return res;
+};
+
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* globals: alasql, yy */
+
+/**
+ Print statement
+ @class
+ @param {object} params Initial setup properties
+*/
+
+/* global alasql, yy */
+
+yy.Print = function(params) {
+ return yy.extend(this, params);
+};
+
+/**
+ Generate SQL string
+ @this Print statement object
+*/
+yy.Print.prototype.toString = function() {
+ var s = 'PRINT';
+ if (this.statement) s += ' ' + this.statement.toString();
+ return s;
+};
+
+/**
+ Print result of select statement or expression
+ @param {string} databaseid Database identificator
+ @param {object} params Query parameters
+ @param {statement-callback} cb Callback function
+ @this Print statement object
+*/
+yy.Print.prototype.execute = function(databaseid, params, cb) {
+
+ var self = this;
+ var res = 1;
+
+ alasql.precompile(this, databaseid, params); /** @todo Change from alasql to this */
+
+ if (this.exprs && this.exprs.length > 0) {
+ var rs = this.exprs.map(function(expr) {
+
+ var exprfn = new Function(
+ 'params,alasql,p',
+ 'var y;return ' + expr.toJS('({})', '', null)
+ ).bind(self);
+ var r = exprfn(params, alasql);
+ return JSONtoString(r);
+ });
+ console.log.apply(console, rs);
+ } else if (this.select) {
+ var r = this.select.execute(databaseid, params);
+ console.log(JSONtoString(r));
+ } else {
+ console.log();
+ }
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Source = function(params) {
+ return yy.extend(this, params);
+};
+yy.Source.prototype.toString = function() {
+ var s = 'SOURCE';
+ if (this.url) s += " '" + this.url + " '";
+ return s;
+};
+
+// SOURCE FILE
+yy.Source.prototype.execute = function(databaseid, params, cb) {
+
+ var res;
+ loadFile(
+ this.url,
+ !!cb,
+ function(data) {
+
+ // res = 1;
+ res = alasql(data);
+ if (cb) res = cb(res);
+ return res;
+ },
+ function(err) {
+ throw err;
+ }
+ );
+ return res;
+};
+
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+/* global alasql, yy */
+
+yy.Require = function(params) {
+ return yy.extend(this, params);
+};
+yy.Require.prototype.toString = function() {
+ var s = 'REQUIRE';
+ if (this.paths && this.paths.length > 0) {
+ s += this.paths
+ .map(function(path) {
+ return path.toString();
+ })
+ .join(',');
+ }
+ if (this.plugins && this.plugins.length > 0) {
+ s += this.plugins
+ .map(function(plugin) {
+ return plugin.toUpperCase();
+ })
+ .join(',');
+ }
+ return s;
+};
+
+/**
+ Attach plug-in for Alasql
+ */
+yy.Require.prototype.execute = function(databaseid, params, cb) {
+ var self = this;
+ var res = 0;
+ var ss = '';
+
+ if (this.paths && this.paths.length > 0) {
+ this.paths.forEach(function(path) {
+ loadFile(path.value, !!cb, function(data) {
+ res++;
+
+ ss += data;
+ if (res < self.paths.length) return;
+
+ new Function('params,alasql', ss)(params, alasql);
+ if (cb) res = cb(res);
+ });
+ });
+ } else if (this.plugins && this.plugins.length > 0) {
+ this.plugins.forEach(function(plugin) {
+ // If plugin is not loaded already
+ if (!alasql.plugins[plugin]) {
+ loadFile(alasql.path + '/alasql-' + plugin.toLowerCase() + '.js', !!cb, function(
+ data
+ ) {
+ // Execute all plugins at the same time
+ res++;
+ ss += data;
+ if (res < self.plugins.length) return;
+
+ new Function('params,alasql', ss)(params, alasql);
+ alasql.plugins[plugin] = true; // Plugin is loaded
+ if (cb) res = cb(res);
+ });
+ }
+ });
+ } else {
+ if (cb) res = cb(res);
+ }
+ return res;
+};
+
+/*
+//
+// HELP for Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+yy.Assert = function(params) {
+ return yy.extend(this, params);
+};
+yy.Source.prototype.toString = function() {
+ var s = 'ASSERT';
+ if (this.value) s += ' ' + JSON.stringify(this.value);
+ return s;
+};
+
+// SOURCE FILE
+yy.Assert.prototype.execute = function(databaseid) {
+
+ if (!deepEqual(alasql.res, this.value)) {
+ // if(this.message) {
+ // throw this.
+ // } else {
+ throw new Error(
+ (this.message || 'Assert wrong') +
+ ': ' +
+ JSON.stringify(alasql.res) +
+ ' == ' +
+ JSON.stringify(this.value)
+ );
+ // }
+ }
+ return 1;
+};
+
+//
+// 91websql.js
+// WebSQL database support
+// (c) 2014, Andrey Gershun
+//
+
+var WEBSQL = (alasql.engines.WEBSQL = function() {});
+
+WEBSQL.createDatabase = function(wdbid, args, dbid, cb) {
+ var res = 1;
+ var wdb = openDatabase(wdbid, args[0], args[1], args[2]);
+ if (this.dbid) {
+ var db = alasql.createDatabase(this.dbid);
+ db.engineid = 'WEBSQL';
+ db.wdbid = wdbid;
+ sb.wdb = db;
+ }
+ if (!wdb) {
+ throw new Error('Cannot create WebSQL database "' + databaseid + '"');
+ }
+ if (cb) cb(res);
+ return res;
+};
+
+WEBSQL.dropDatabase = function(databaseid) {
+ throw new Error('This is impossible to drop WebSQL database.');
+};
+
+WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+ alasqlopenDatabase(databaseid, args[0], args[1], args[2]);
+ return res;
+};
+
+//
+// 91indexeddb.js
+// AlaSQL IndexedDB module
+// Date: 18.04.2015
+// (c) Andrey Gershun
+//
+
+/* global alasql, yy, utils*/
+
+var IDB = (alasql.engines.INDEXEDDB = function() {
+ '';
+});
+
+if (utils.hasIndexedDB) {
+ // For Chrome it work normally, for Firefox - simple shim
+ if (typeof utils.global.indexedDB.webkitGetDatabaseNames == 'function') {
+ IDB.getDatabaseNames = utils.global.indexedDB.webkitGetDatabaseNames.bind(
+ utils.global.indexedDB
+ );
+ } else {
+ IDB.getDatabaseNames = function() {
+ var request = {};
+ var result = {
+ contains: function(name) {
+ return true; // Always return true
+ },
+ notsupported: true,
+ };
+ setTimeout(function() {
+ var event = {target: {result: result}};
+ request.onsuccess(event);
+ }, 0);
+ return request;
+ };
+ IDB.getDatabaseNamesNotSupported = true;
+ }
+}
+
+//
+// SHOW DATABASES
+// work only in chrome
+//
+IDB.showDatabases = function(like, cb) {
+
+ var request = IDB.getDatabaseNames();
+ request.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (IDB.getDatabaseNamesNotSupported) {
+ throw new Error('SHOW DATABASE is not supported in this browser');
+ }
+ var res = [];
+ if (like) {
+ var relike = new RegExp(like.value.replace(/\%/g, '.*'), 'g');
+ }
+ for (var i = 0; i < dblist.length; i++) {
+ if (!like || dblist[i].match(relike)) {
+ res.push({databaseid: dblist[i]});
+ }
+ }
+ cb(res);
+ };
+};
+
+IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
+
+ var indexedDB = utils.global.indexedDB;
+ if (ifnotexists) {
+ var request2 = indexedDB.open(ixdbid, 1);
+ request2.onsuccess = function(event) {
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ } else {
+ var request1 = indexedDB.open(ixdbid, 1);
+ request1.onupgradeneeded = function(e) {
+
+ e.target.transaction.abort();
+ };
+ request1.onsuccess = function(e) {
+
+ if (ifnotexists) {
+ if (cb) cb(0);
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ }
+ };
+ }
+
+};
+
+IDB.createDatabase = function(ixdbid, args, ifnotexists, dbid, cb) {
+ var indexedDB = utils.global.indexedDB;
+ if (IDB.getDatabaseNamesNotSupported) {
+ // Hack for Firefox
+ if (ifnotexists) {
+
+ var dbExists = true;
+ var request2 = indexedDB.open(ixdbid);
+
+ request2.onupgradeneeded = function(e) {
+
+ dbExists = false;
+ // e.target.transaction.abort();
+ // cb(0);
+ };
+ request2.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (dbExists) {
+ if (cb) cb(0);
+ } else {
+ if (cb) cb(1);
+ }
+ };
+ } else {
+
+ var request1 = indexedDB.open(ixdbid);
+ request1.onupgradeneeded = function(e) {
+ e.target.transaction.abort();
+ };
+ request1.onabort = function(event) {
+ if (cb) cb(1);
+ };
+ request1.onsuccess = function(event) {
+ event.target.result.close();
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ // cb(0);
+ };
+ }
+ } else {
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (dblist.contains(ixdbid)) {
+ if (ifnotexists) {
+ if (cb) cb(0);
+ return;
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot create new database "' +
+ ixdbid +
+ '" because it already exists'
+ );
+ }
+ }
+
+ var request2 = indexedDB.open(ixdbid, 1);
+ request2.onsuccess = function(event) {
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ };
+ }
+};
+
+IDB.dropDatabase = function(ixdbid, ifexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (!dblist.contains(ixdbid)) {
+ if (ifexists) {
+ if (cb) cb(0);
+ return;
+ } else {
+ throw new Error(
+ 'IndexedDB: Cannot drop new database "' + ixdbid + '" because it does not exist'
+ );
+ }
+ }
+ var request2 = indexedDB.deleteDatabase(ixdbid);
+ request2.onsuccess = function(event) {
+
+ if (cb) cb(1);
+ };
+ };
+};
+
+IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
+ if (!utils.hasIndexedDB) {
+ throw new Error('The current browser does not support IndexedDB');
+ }
+ var indexedDB = utils.global.indexedDB;
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot attach database "' + ixdbid + '" because it does not exist'
+ );
+ }
+ var request2 = indexedDB.open(ixdbid);
+ request2.onsuccess = function(event) {
+ var ixdb = event.target.result;
+ var db = new alasql.Database(dbid || ixdbid);
+ db.engineid = 'INDEXEDDB';
+ db.ixdbid = ixdbid;
+ db.tables = [];
+ var tblist = ixdb.objectStoreNames;
+ for (var i = 0; i < tblist.length; i++) {
+ db.tables[tblist[i]] = {};
+ }
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ };
+};
+
+IDB.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event__) {
+ var dblist = event__.target.result;
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot create table in database "' +
+ ixdbid +
+ '" because it does not exist'
+ );
+ }
+ var request2 = indexedDB.open(ixdbid);
+ request2.onversionchange = function(event_) {
+
+ event_.target.result.close();
+ };
+ request2.onsuccess = function(event_) {
+ var version = event_.target.result.version;
+ event_.target.result.close();
+
+ var request3 = indexedDB.open(ixdbid, version + 1);
+ request3.onupgradeneeded = function(event) {
+ var ixdb = event.target.result;
+
+ var store = ixdb.createObjectStore(tableid, {autoIncrement: true});
+
+ };
+ request3.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ request3.onerror = function(event) {
+ throw event;
+
+ };
+ request3.onblocked = function(event) {
+ throw new Error(
+ 'Cannot create table "' +
+ tableid +
+ '" because database "' +
+ databaseid +
+ '" is blocked'
+ );
+
+ };
+ };
+ };
+};
+
+IDB.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+
+ var request1 = IDB.getDatabaseNames();
+ request1.onsuccess = function(event) {
+ var dblist = event.target.result;
+
+ if (!dblist.contains(ixdbid)) {
+ throw new Error(
+ 'IndexedDB: Cannot drop table in database "' +
+ ixdbid +
+ '" because it does not exist'
+ );
+ }
+
+ var request2 = indexedDB.open(ixdbid);
+ request2.onversionchange = function(event) {
+ event.target.result.close();
+ };
+
+ request2.onsuccess = function(event) {
+ var version = event.target.result.version;
+ event.target.result.close();
+
+ var request3 = indexedDB.open(ixdbid, version + 1);
+ request3.onupgradeneeded = function(event) {
+ var ixdb = event.target.result;
+ if (ixdb.objectStoreNames.contains(tableid)) {
+ ixdb.deleteObjectStore(tableid);
+ delete alasql.databases[databaseid].tables[tableid];
+ } else {
+ if (!ifexists) {
+ throw new Error(
+ 'IndexedDB: Cannot drop table "' +
+ tableid +
+ '" because it does not exist'
+ );
+ }
+ }
+ // var store = ixdb.createObjectStore(tableid);
+
+ };
+ request3.onsuccess = function(event) {
+
+ event.target.result.close();
+ if (cb) cb(1);
+ };
+ request3.onerror = function(event) {
+
+ throw event;
+ };
+ request3.onblocked = function(event) {
+ throw new Error(
+ 'Cannot drop table "' +
+ tableid +
+ '" because database "' +
+ databaseid +
+ '" is blocked'
+ );
+
+ };
+ };
+ };
+};
+
+IDB.intoTable = function(databaseid, tableid, value, columns, cb) {
+
+ // console.trace();
+
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request1 = indexedDB.open(ixdbid);
+ request1.onsuccess = function(event) {
+ var ixdb = event.target.result;
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var tb = tx.objectStore(tableid);
+
+ for (var i = 0, ilen = value.length; i < ilen; i++) {
+ tb.add(value[i]);
+ }
+ tx.oncomplete = function() {
+ ixdb.close();
+
+ if (cb) cb(ilen);
+ };
+ };
+
+};
+
+IDB.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid]);
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ res.push(cursor.value);
+ cursor["continue"]();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(res, idx, query);
+ }
+ };
+ };
+};
+
+IDB.deleteFromTable = function(databaseid, tableid, wherefn, params, cb) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+ var num = 0;
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ if (!wherefn || wherefn(cursor.value, params)) {
+
+ cursor["delete"]();
+ num++;
+ }
+ cursor["continue"]();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(num);
+ }
+ };
+ };
+};
+
+IDB.updateTable = function(databaseid, tableid, assignfn, wherefn, params, cb) {
+
+ // console.trace();
+ var indexedDB = utils.global.indexedDB;
+ var ixdbid = alasql.databases[databaseid].ixdbid;
+ var request = indexedDB.open(ixdbid);
+ request.onsuccess = function(event) {
+ var res = [];
+ var ixdb = event.target.result;
+
+ var tx = ixdb.transaction([tableid], 'readwrite');
+ var store = tx.objectStore(tableid);
+ var cur = store.openCursor();
+ var num = 0;
+
+ cur.onblocked = function(event) {
+
+ };
+ cur.onerror = function(event) {
+
+ };
+ cur.onsuccess = function(event) {
+
+ var cursor = event.target.result;
+
+ if (cursor) {
+ if (!wherefn || wherefn(cursor.value, params)) {
+
+ var r = cursor.value;
+ assignfn(r, params);
+
+ cursor.update(r);
+ num++;
+ }
+ cursor["continue"]();
+ } else {
+
+ ixdb.close();
+ if (cb) cb(num);
+ }
+ };
+ };
+};
+
+//
+// 91localstorage.js
+// localStorage and DOM-Storage engine
+// Date: 09.12.2014
+// (c) Andrey Gershun
+//
+
+/* global alasql, yy, localStorage*/
+
+var LS = (alasql.engines.LOCALSTORAGE = function() {});
+
+/**
+ Read data from localStorage with security breaks
+ @param key {string} Address in localStorage
+ @return {object} JSON object
+*/
+LS.get = function(key) {
+ var s = localStorage.getItem(key);
+ if (typeof s === 'undefined') return;
+ var v;
+ try {
+ v = JSON.parse(s);
+ } catch (err) {
+ throw new Error('Cannot parse JSON object from localStorage' + s);
+ }
+ return v;
+};
+
+/**
+ Store data into localStorage with security breaks
+ @param key {string} Address in localStorage
+ @return {object} JSON object
+*/
+LS.set = function(key, value) {
+ if (typeof value === 'undefined') localStorage.removeItem(key);
+ else localStorage.setItem(key, JSON.stringify(value));
+};
+
+/**
+ Store table structure and data into localStorage
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @return Nothing
+*/
+LS.storeTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var table = db.tables[tableid];
+ // Create empty structure for table
+ var tbl = {};
+ tbl.columns = table.columns;
+ tbl.data = table.data;
+ tbl.identities = table.identities;
+ // TODO: May be add indexes, objects and other fields?
+ LS.set(db.lsdbid + '.' + tableid, tbl);
+};
+
+/**
+ Restore table structure and data
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @return Nothing
+*/
+LS.restoreTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var tbl = LS.get(db.lsdbid + '.' + tableid);
+ var table = new alasql.Table();
+ for (var f in tbl) {
+ table[f] = tbl[f];
+ }
+ db.tables[tableid] = table;
+ table.indexColumns();
+ // We need to add other things here
+ return table;
+};
+
+/**
+ Remove table from localStorage
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+*/
+
+LS.removeTable = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ localStorage.removeItem(db.lsdbid + '.' + tableid);
+};
+
+/**
+ Create database in localStorage
+ @param lsdbid {string} localStorage database id
+ @param args {array} List of parameters (not used in localStorage)
+ @param ifnotexists {boolean} Check if database does not exist
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param cb {function} Callback
+*/
+
+LS.createDatabase = function(lsdbid, args, ifnotexists, databaseid, cb) {
+ var res = 1;
+ var ls = LS.get('alasql'); // Read list of all databases
+ if (!(ifnotexists && ls && ls.databases && ls.databases[lsdbid])) {
+ if (!ls) ls = {databases: {}}; // Empty record
+ if (ls.databases && ls.databases[lsdbid]) {
+ throw new Error(
+ 'localStorage: Cannot create new database "' +
+ lsdbid +
+ '" because it already exists'
+ );
+ }
+ ls.databases[lsdbid] = true;
+ LS.set('alasql', ls);
+ LS.set(lsdbid, {databaseid: lsdbid, tables: {}}); // Create database record
+ } else {
+ res = 0;
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Drop external database
+ @param lsdbid {string} localStorage database id
+ @param ifexists {boolean} Check if database exists
+ @param cb {function} Callback
+*/
+LS.dropDatabase = function(lsdbid, ifexists, cb) {
+ var res = 1;
+ var ls = LS.get('alasql');
+ if (!(ifexists && ls && ls.databases && !ls.databases[lsdbid])) {
+ // 1. Remove record from 'alasql' record
+ if (!ls) {
+ if (!ifexists) {
+ throw new Error('There is no any AlaSQL databases in localStorage');
+ } else {
+ return cb ? cb(0) : 0;
+ }
+ }
+
+ if (ls.databases && !ls.databases[lsdbid]) {
+ throw new Error(
+ 'localStorage: Cannot drop database "' +
+ lsdbid +
+ '" because there is no such database'
+ );
+ }
+ delete ls.databases[lsdbid];
+ LS.set('alasql', ls);
+
+ // 2. Remove tables definitions
+ var db = LS.get(lsdbid);
+ for (var tableid in db.tables) {
+ localStorage.removeItem(lsdbid + '.' + tableid);
+ }
+
+ // 3. Remove database definition
+ localStorage.removeItem(lsdbid);
+ } else {
+ res = 0;
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Attach existing localStorage database to AlaSQL database
+ @param lsdibid {string} localStorage database id
+ @param
+*/
+
+LS.attachDatabase = function(lsdbid, databaseid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[databaseid]) {
+ throw new Error(
+ 'Unable to attach database as "' + databaseid + '" because it already exists'
+ );
+ }
+ if (!databaseid) databaseid = lsdbid;
+ var db = new alasql.Database(databaseid);
+ db.engineid = 'LOCALSTORAGE';
+ db.lsdbid = lsdbid;
+ db.tables = LS.get(lsdbid).tables;
+ // IF AUTOABORT IS OFF then copy data to memory
+ if (!alasql.options.autocommit) {
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ LS.restoreTable(databaseid, tbid);
+ // db.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
+ }
+ }
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Show list of databases from localStorage
+ @param like {string} Mathing pattern
+ @param cb {function} Callback
+*/
+LS.showDatabases = function(like, cb) {
+ var res = [];
+ var ls = LS.get('alasql');
+ if (like) {
+ // TODO: If we have a special function for LIKE patterns?
+ var relike = new RegExp(like.value.replace(/%/g, '.*'), 'g');
+ }
+ if (ls && ls.databases) {
+ for (var dbid in ls.databases) {
+ res.push({databaseid: dbid});
+ }
+ if (like && res && res.length > 0) {
+ res = res.filter(function(d) {
+ return d.databaseid.match(relike);
+ });
+ }
+ }
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Create table in localStorage database
+ @param databaseid {string} AlaSQL database id
+ @param tableid {string} Table id
+ @param ifnotexists {boolean} If not exists flag
+ @param cb {function} Callback
+*/
+
+LS.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var tb = LS.get(lsdbid + '.' + tableid);
+ // Check if such record exists
+ if (tb && !ifnotexists) {
+ throw new Error(
+ 'Table "' + tableid + '" alsready exists in localStorage database "' + lsdbid + '"'
+ );
+ }
+ var lsdb = LS.get(lsdbid);
+ var table = alasql.databases[databaseid].tables[tableid];
+
+ // TODO: Check if required
+ lsdb.tables[tableid] = true;
+
+ LS.set(lsdbid, lsdb);
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Empty table and reset identities
+ @param databaseid {string} AlaSQL database id (not external localStorage)
+ @param tableid {string} Table name
+ @param ifexists {boolean} If exists flag
+ @param cb {function} Callback
+ @return 1 on success
+*/
+LS.truncateTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb;
+ if (alasql.options.autocommit) {
+ lsdb = LS.get(lsdbid);
+ } else {
+ lsdb = alasql.databases[databaseid];
+ }
+
+ if (!ifexists && !lsdb.tables[tableid]) {
+ throw new Error(
+ 'Cannot truncate table "' + tableid + '" in localStorage, because it does not exist'
+ );
+ }
+
+ //load table
+ var tbl = LS.restoreTable(databaseid, tableid);
+
+ //clear data from table
+ tbl.data = [];
+ //TODO reset all identities
+ //but identities are not working on LOCALSTORAGE
+ //See test 607 for details
+
+ //store table
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Create table in localStorage database
+ @param databaseid {string} AlaSQL database id
+ @param tableid {string} Table id
+ @param ifexists {boolean} If exists flag
+ @param cb {function} Callback
+*/
+
+LS.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb;
+
+ if (alasql.options.autocommit) {
+ lsdb = LS.get(lsdbid);
+ } else {
+ lsdb = alasql.databases[databaseid];
+ }
+ if (!ifexists && !lsdb.tables[tableid]) {
+ throw new Error(
+ 'Cannot drop table "' + tableid + '" in localStorage, because it does not exist'
+ );
+ }
+ delete lsdb.tables[tableid];
+ LS.set(lsdbid, lsdb);
+ // localStorage.removeItem(lsdbid+'.'+tableid);
+ LS.removeTable(databaseid, tableid);
+ if (cb) res = cb(res);
+ return res;
+};
+
+/**
+ Read all data from table
+*/
+
+LS.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ // var res = LS.get(lsdbid+'.'+tableid);
+
+ var res = LS.restoreTable(databaseid, tableid).data;
+
+ if (cb) res = cb(res, idx, query);
+ return res;
+};
+
+/**
+ Insert data into the table
+ @param databaseid {string} Database id
+ @param tableid {string} Table id
+ @param value {array} Array of values
+ @param columns {array} Columns (not used)
+ @param cb {function} Callback
+*/
+
+LS.intoTable = function(databaseid, tableid, value, columns, cb) {
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var res = value.length;
+ // var tb = LS.get(lsdbid+'.'+tableid);
+ var tb = LS.restoreTable(databaseid, tableid);
+ for (var columnid in tb.identities) {
+ var ident = tb.identities[columnid];
+
+ for (var index in value) {
+ value[index][columnid] = ident.value;
+ ident.value += ident.step;
+ }
+ }
+ if (!tb.data) tb.data = [];
+ tb.data = tb.data.concat(value);
+ // LS.set(lsdbid+'.'+tableid, tb);
+ LS.storeTable(databaseid, tableid);
+
+ if (cb) res = cb(res);
+
+ return res;
+};
+
+/**
+ Laad data from table
+*/
+LS.loadTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ LS.restoreTable(databaseid, tableid);
+ // db.tables[tableid].data = LS.get(lsdbid+'.'+tableid);
+};
+
+/**
+ Save data to the table
+*/
+
+LS.saveTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ LS.storeTable(lsdbid, tableid);
+ // LS.set(lsdbid+'.'+tableid,db.tables[tableid].data);
+ db.tables[tableid].data = undefined;
+};
+
+/**
+ Commit
+*/
+
+LS.commit = function(databaseid, cb) {
+
+ var db = alasql.databases[databaseid];
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb = {databaseid: lsdbid, tables: {}};
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ // TODO: Question - do we need this line
+ lsdb.tables[tbid] = true;
+ LS.storeTable(databaseid, tbid);
+ // LS.set(lsdbid+'.'+tbid, db.tables[tbid].data);
+ }
+ }
+ LS.set(lsdbid, lsdb);
+ return cb ? cb(1) : 1;
+};
+
+/**
+ Alias BEGIN = COMMIT
+*/
+LS.begin = LS.commit;
+
+/**
+ ROLLBACK
+*/
+
+LS.rollback = function(databaseid, cb) {
+ // This does not work and should be fixed
+ // Plus test 151 and 231
+
+ return;
+
+ var db = alasql.databases[databaseid];
+ db.dbversion++;
+
+ var lsdbid = alasql.databases[databaseid].lsdbid;
+ var lsdb = LS.get(lsdbid);
+ // if(!alasql.options.autocommit) {
+
+ delete alasql.databases[databaseid];
+ alasql.databases[databaseid] = new alasql.Database(databaseid);
+ extend(alasql.databases[databaseid], lsdb);
+ alasql.databases[databaseid].databaseid = databaseid;
+ alasql.databases[databaseid].engineid = 'LOCALSTORAGE';
+
+ if (lsdb.tables) {
+ for (var tbid in lsdb.tables) {
+ // var tb = new alasql.Table({columns: db.tables[tbid].columns});
+ // extend(tb,lsdb.tables[tbid]);
+ // lsdb.tables[tbid] = true;
+
+ // if(!alasql.options.autocommit) {
+
+ // lsdb.tables[tbid].data = LS.get(db.lsdbid+'.'+tbid);
+ LS.restoreTable(databaseid, tbid);
+ // }
+ // lsdb.tables[tbid].indexColumns();
+
+ // index columns
+ // convert types
+ }
+ }
+ // }
+
+};
+
+//
+// 91websql.js
+// WebSQL database support
+// (c) 2014, Andrey Gershun
+//
+
+var SQLITE = (alasql.engines.SQLITE = function() {});
+
+SQLITE.createDatabase = function(wdbid, args, ifnotexists, dbid, cb) {
+ throw new Error('Connot create SQLITE database in memory. Attach it.');
+};
+
+SQLITE.dropDatabase = function(databaseid) {
+ throw new Error('This is impossible to drop SQLite database. Detach it.');
+};
+
+SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb) {
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+
+ if ((args[0] && args[0] instanceof yy.StringValue) || args[0] instanceof yy.ParamValue) {
+ if (args[0] instanceof yy.StringValue) {
+ var value = args[0].value;
+ } else if (args[0] instanceof yy.ParamValue) {
+ var value = params[args[0].param];
+ }
+ alasql.utils.loadBinaryFile(
+ value,
+ true,
+ function(data) {
+ var db = new alasql.Database(dbid || sqldbid);
+ db.engineid = 'SQLITE';
+ db.sqldbid = sqldbid;
+ var sqldb = (db.sqldb = new SQL.Database(data));
+ db.tables = [];
+ var tables = sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;
+
+ tables.forEach(function(tbl) {
+ db.tables[tbl[1]] = {};
+ var columns = (db.tables[tbl[1]].columns = []);
+ var ast = alasql.parse(tbl[4]);
+
+ var coldefs = ast.statements[0].columns;
+ if (coldefs && coldefs.length > 0) {
+ coldefs.forEach(function(cd) {
+ columns.push(cd);
+ });
+ }
+ });
+
+ cb(1);
+ },
+ function(err) {
+ throw new Error('Cannot open SQLite database file "' + args[0].value + '"');
+ }
+ );
+ return res;
+ } else {
+ throw new Error('Cannot attach SQLite database without a file');
+ }
+
+ return res;
+};
+
+SQLITE.fromTable = function(databaseid, tableid, cb, idx, query) {
+ var data = alasql.databases[databaseid].sqldb.exec('SELECT * FROM ' + tableid);
+ var columns = (query.sources[idx].columns = []);
+ if (data[0].columns.length > 0) {
+ data[0].columns.forEach(function(columnid) {
+ columns.push({columnid: columnid});
+ });
+ }
+
+ var res = [];
+ if (data[0].values.length > 0) {
+ data[0].values.forEach(function(d) {
+ var r = {};
+ columns.forEach(function(col, idx) {
+ r[col.columnid] = d[idx];
+ });
+ res.push(r);
+ });
+ }
+ if (cb) cb(res, idx, query);
+};
+
+SQLITE.intoTable = function(databaseid, tableid, value, columns, cb) {
+ var sqldb = alasql.databases[databaseid].sqldb;
+ for (var i = 0, ilen = value.length; i < ilen; i++) {
+ var s = 'INSERT INTO ' + tableid + ' (';
+ var d = value[i];
+ var keys = Object.keys(d);
+ s += keys.join(',');
+ s += ') VALUES (';
+ s += keys
+ .map(function(k) {
+ v = d[k];
+ if (typeof v == 'string') v = "'" + v + "'";
+ return v;
+ })
+ .join(',');
+ s += ')';
+ sqldb.exec(s);
+ }
+ var res = ilen;
+ if (cb) cb(res);
+ return res;
+};
+
+//
+// 91localstorage.js
+// localStorage and DOM-Storage engine
+// Date: 09.12.2014
+// (c) Andrey Gershun
+//
+
+var FS = (alasql.engines.FILESTORAGE = alasql.engines.FILE = function() {});
+
+FS.createDatabase = function(fsdbid, args, ifnotexists, dbid, cb) {
+
+ var res = 1;
+ var filename = args[0].value;
+
+ alasql.utils.fileExists(filename, function(fex) {
+
+ if (fex) {
+ if (ifnotexists) {
+ res = 0;
+ if (cb) res = cb(res);
+ return res;
+ } else {
+ throw new Error('Cannot create new database file, because it already exists');
+ }
+ } else {
+ var data = {tables: {}};
+ alasql.utils.saveFile(filename, JSON.stringify(data), function(data) {
+ if (cb) res = cb(res);
+ });
+ }
+ });
+ return res;
+};
+
+FS.dropDatabase = function(fsdbid, ifexists, cb) {
+ var res;
+ var filename = fsdbid.value;
+
+ alasql.utils.fileExists(filename, function(fex) {
+ if (fex) {
+ res = 1;
+ alasql.utils.deleteFile(filename, function() {
+ res = 1;
+ if (cb) res = cb(res);
+ });
+ } else {
+ if (!ifexists) {
+ throw new Error('Cannot drop database file, because it does not exist');
+ }
+ res = 0;
+ if (cb) res = cb(res);
+ }
+ });
+ return res;
+};
+
+FS.attachDatabase = function(fsdbid, dbid, args, params, cb) {
+
+ var res = 1;
+ if (alasql.databases[dbid]) {
+ throw new Error('Unable to attach database as "' + dbid + '" because it already exists');
+ }
+ var db = new alasql.Database(dbid || fsdbid);
+ db.engineid = 'FILESTORAGE';
+ // db.fsdbid = fsdbid;
+ db.filename = args[0].value;
+ loadFile(db.filename, !!cb, function(s) {
+ try {
+ db.data = JSON.parse(s);
+ } catch (err) {
+ throw new Error('Data in FileStorage database are corrupted');
+ }
+ db.tables = db.data.tables;
+ // IF AUTOCOMMIT IS OFF then copy data to memory
+ if (!alasql.options.autocommit) {
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ db.tables[tbid].data = db.data[tbid];
+ }
+ }
+ }
+ if (cb) res = cb(res);
+ });
+ return res;
+};
+
+FS.createTable = function(databaseid, tableid, ifnotexists, cb) {
+ var db = alasql.databases[databaseid];
+ var tb = db.data[tableid];
+ var res = 1;
+
+ if (tb && !ifnotexists) {
+ throw new Error('Table "' + tableid + '" alsready exists in the database "' + fsdbid + '"');
+ }
+ var table = alasql.databases[databaseid].tables[tableid];
+ db.data.tables[tableid] = {columns: table.columns};
+ db.data[tableid] = [];
+
+ FS.updateFile(databaseid);
+
+ if (cb) cb(res);
+ return res;
+};
+
+FS.updateFile = function(databaseid) {
+
+ var db = alasql.databases[databaseid];
+ if (db.issaving) {
+ db.postsave = true;
+ return;
+ }
+ db.issaving = true;
+ db.postsave = false;
+ alasql.utils.saveFile(db.filename, JSON.stringify(db.data), function() {
+ db.issaving = false;
+
+ if (db.postsave) {
+ setTimeout(function() {
+ FS.updateFile(databaseid);
+ }, 50); // TODO Test with different timeout parameters
+ }
+ });
+};
+
+FS.dropTable = function(databaseid, tableid, ifexists, cb) {
+ var res = 1;
+ var db = alasql.databases[databaseid];
+ if (!ifexists && !db.tables[tableid]) {
+ throw new Error(
+ 'Cannot drop table "' + tableid + '" in fileStorage, because it does not exist'
+ );
+ }
+ delete db.tables[tableid];
+ delete db.data.tables[tableid];
+ delete db.data[tableid];
+ FS.updateFile(databaseid);
+ if (cb) cb(res);
+ return res;
+};
+
+FS.fromTable = function(databaseid, tableid, cb, idx, query) {
+
+ var db = alasql.databases[databaseid];
+ var res = db.data[tableid];
+ if (cb) res = cb(res, idx, query);
+ return res;
+};
+
+FS.intoTable = function(databaseid, tableid, value, columns, cb) {
+ var db = alasql.databases[databaseid];
+ var res = value.length;
+ var tb = db.data[tableid];
+ if (!tb) tb = [];
+ db.data[tableid] = tb.concat(value);
+ FS.updateFile(databaseid);
+ if (cb) cb(res);
+ return res;
+};
+
+FS.loadTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ db.tables[tableid].data = db.data[tableid];
+};
+
+FS.saveTableData = function(databaseid, tableid) {
+ var db = alasql.databases[databaseid];
+ db.data[tableid] = db.tables[tableid].data;
+ db.tables[tableid].data = null;
+ FS.updateFile(databaseid);
+};
+
+FS.commit = function(databaseid, cb) {
+
+ var db = alasql.databases[databaseid];
+ var fsdb = {tables: {}};
+ if (db.tables) {
+ for (var tbid in db.tables) {
+ db.data.tables[tbid] = {columns: db.tables[tbid].columns};
+ db.data[tbid] = db.tables[tbid].data;
+ }
+ }
+ FS.updateFile(databaseid);
+ return cb ? cb(1) : 1;
+};
+
+FS.begin = FS.commit;
+
+FS.rollback = function(databaseid, cb) {
+ var res = 1;
+ var db = alasql.databases[databaseid];
+ db.dbversion++;
+
+ // var lsdbid = alasql.databases[databaseid].lsdbid;
+ // lsdb = LS.get(lsdbid);
+ wait();
+ function wait() {
+ setTimeout(function() {
+ if (db.issaving) {
+ return wait();
+ } else {
+ alasql.loadFile(db.filename, !!cb, function(data) {
+ db.data = data;
+ db.tables = {};
+ for (var tbid in db.data.tables) {
+ var tb = new alasql.Table({columns: db.data.tables[tbid].columns});
+ extend(tb, db.data.tables[tbid]);
+ db.tables[tbid] = tb;
+ if (!alasql.options.autocommit) {
+ db.tables[tbid].data = db.data[tbid];
+ }
+ db.tables[tbid].indexColumns();
+
+ // index columns
+ // convert types
+ }
+
+ delete alasql.databases[databaseid];
+ alasql.databases[databaseid] = new alasql.Database(databaseid);
+ extend(alasql.databases[databaseid], db);
+ alasql.databases[databaseid].engineid = 'FILESTORAGE';
+ alasql.databases[databaseid].filename = db.filename;
+
+ if (cb) res = cb(res);
+ // Todo: check why no return
+ });
+ }
+ }, 100);
+ }
+
+ // if(!alasql.options.autocommit) {
+
+};
+
+if(utils.isBrowser && !utils.isWebWorker) {
+
+alasql = alasql || false;
+
+if (!alasql) {
+ throw new Error('alasql was not found');
+}
+
+alasql.worker = function() {
+ throw new Error('Can find webworker in this enviroment');
+};
+
+if (typeof Worker !== 'undefined') {
+ alasql.worker = function(path, paths, cb) {
+ // var path;
+ if (path === true) {
+ path = undefined;
+ }
+
+ if (typeof path === 'undefined') {
+ var sc = document.getElementsByTagName('script');
+ for (var i = 0; i < sc.length; i++) {
+ if (sc[i].src.substr(-16).toLowerCase() === 'alasql-worker.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 16) + 'alasql.js';
+ break;
+ } else if (sc[i].src.substr(-20).toLowerCase() === 'alasql-worker.min.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 20) + 'alasql.min.js';
+ break;
+ } else if (sc[i].src.substr(-9).toLowerCase() === 'alasql.js') {
+ path = sc[i].src;
+ break;
+ } else if (sc[i].src.substr(-13).toLowerCase() === 'alasql.min.js') {
+ path = sc[i].src.substr(0, sc[i].src.length - 13) + 'alasql.min.js';
+ break;
+ }
+ }
+ }
+
+ if (typeof path === 'undefined') {
+ throw new Error('Path to alasql.js is not specified');
+ } else if (path !== false) {
+ var js = "importScripts('";
+ js += path;
+ js +=
+ "');self.onmessage = function(event) {" +
+ 'alasql(event.data.sql,event.data.params, function(data){' +
+ 'postMessage({id:event.data.id, data:data});});}';
+
+ var blob = new Blob([js], {type: 'text/plain'});
+ alasql.webworker = new Worker(URL.createObjectURL(blob));
+
+ alasql.webworker.onmessage = function(event) {
+ var id = event.data.id;
+
+ alasql.buffer[id](event.data.data);
+ delete alasql.buffer[id];
+ };
+
+ alasql.webworker.onerror = function(e) {
+ throw e;
+ };
+
+ if (arguments.length > 1) {
+ var sql =
+ 'REQUIRE ' +
+ paths
+ .map(function(p) {
+ return '"' + p + '"';
+ })
+ .join(',');
+ alasql(sql, [], cb);
+ }
+ } else if (path === false) {
+ delete alasql.webworker;
+ return;
+ }
+ };
+}
+
+/* FileSaver.js
+ * A saveAs() FileSaver implementation.
+ * 1.3.2
+ * 2016-06-16 18:25:19
+ *
+ * By Eli Grey, http://eligrey.com
+ * License: MIT
+ * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
+ */
+
+/*global self */
+/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
+
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+
+var saveAs =
+ saveAs ||
+ (function(view) {
+ 'use strict';
+ // IE <10 is explicitly unsupported
+ if (
+ typeof view === 'undefined' ||
+ (typeof navigator !== 'undefined' && /MSIE [1-9]\./.test(navigator.userAgent))
+ ) {
+ return;
+ }
+ var doc = view.document,
+ // only get URL when necessary in case Blob.js hasn't overridden it yet
+ get_URL = function() {
+ return view.URL || view.webkitURL || view;
+ },
+ save_link = doc.createElementNS('http://www.w3.org/1999/xhtml', 'a'),
+ can_use_save_link = 'download' in save_link,
+ click = function(node) {
+ var event = new MouseEvent('click');
+ node.dispatchEvent(event);
+ },
+ is_safari = /constructor/i.test(view.HTMLElement) || view.safari,
+ is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent),
+ throw_outside = function(ex) {
+ (view.setImmediate || view.setTimeout)(function() {
+ throw ex;
+ }, 0);
+ },
+ force_saveable_type = 'application/octet-stream',
+ // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
+ arbitrary_revoke_timeout = 1000 * 40, // in ms
+ revoke = function(file) {
+ var revoker = function() {
+ if (typeof file === 'string') {
+ // file is an object URL
+ get_URL().revokeObjectURL(file);
+ } else {
+ // file is a File
+ file.remove();
+ }
+ };
+ setTimeout(revoker, arbitrary_revoke_timeout);
+ },
+ dispatch = function(filesaver, event_types, event) {
+ event_types = [].concat(event_types);
+ var i = event_types.length;
+ while (i--) {
+ var listener = filesaver['on' + event_types[i]];
+ if (typeof listener === 'function') {
+ try {
+ listener.call(filesaver, event || filesaver);
+ } catch (ex) {
+ throw_outside(ex);
+ }
+ }
+ }
+ },
+ auto_bom = function(blob) {
+ // prepend BOM for UTF-8 XML and text/* types (including HTML)
+ // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
+ if (
+ /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(
+ blob.type
+ )
+ ) {
+ return new Blob([String.fromCharCode(0xfeff), blob], {type: blob.type});
+ }
+ return blob;
+ },
+ FileSaver = function(blob, name, no_auto_bom) {
+ if (!no_auto_bom) {
+ blob = auto_bom(blob);
+ }
+ // First try a.download, then web filesystem, then object URLs
+ var filesaver = this,
+ type = blob.type,
+ force = type === force_saveable_type,
+ object_url,
+ dispatch_all = function() {
+ dispatch(filesaver, 'writestart progress write writeend'.split(' '));
+ },
+ // on any filesys errors revert to saving with object URLs
+ fs_error = function() {
+ if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
+ // Safari doesn't allow downloading of blob urls
+ var reader = new FileReader();
+ reader.onloadend = function() {
+ var url = is_chrome_ios
+ ? reader.result
+ : reader.result.replace(
+ /^data:[^;]*;/,
+ 'data:attachment/file;'
+ );
+ var popup = view.open(url, '_blank');
+ if (!popup) view.location.href = url;
+ url = undefined; // release reference before dispatching
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ };
+ reader.readAsDataURL(blob);
+ filesaver.readyState = filesaver.INIT;
+ return;
+ }
+ // don't create more object URLs than needed
+ if (!object_url) {
+ object_url = get_URL().createObjectURL(blob);
+ }
+ if (force) {
+ view.location.href = object_url;
+ } else {
+ var opened = view.open(object_url, '_blank');
+ if (!opened) {
+ // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
+ view.location.href = object_url;
+ }
+ }
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ revoke(object_url);
+ };
+ filesaver.readyState = filesaver.INIT;
+
+ if (can_use_save_link) {
+ object_url = get_URL().createObjectURL(blob);
+ setTimeout(function() {
+ save_link.href = object_url;
+ save_link.download = name;
+ click(save_link);
+ dispatch_all();
+ revoke(object_url);
+ filesaver.readyState = filesaver.DONE;
+ });
+ return;
+ }
+
+ fs_error();
+ },
+ FS_proto = FileSaver.prototype,
+ saveAs = function(blob, name, no_auto_bom) {
+ return new FileSaver(blob, name || blob.name || 'download', no_auto_bom);
+ };
+ // IE 10+ (native saveAs)
+ if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
+ return function(blob, name, no_auto_bom) {
+ name = name || blob.name || 'download';
+
+ if (!no_auto_bom) {
+ blob = auto_bom(blob);
+ }
+ return navigator.msSaveOrOpenBlob(blob, name);
+ };
+ }
+
+ FS_proto.abort = function() {};
+ FS_proto.readyState = FS_proto.INIT = 0;
+ FS_proto.WRITING = 1;
+ FS_proto.DONE = 2;
+
+ FS_proto.error = FS_proto.onwritestart = FS_proto.onprogress = FS_proto.onwrite = FS_proto.onabort = FS_proto.onerror = FS_proto.onwriteend = null;
+
+ return saveAs;
+ })(
+ (typeof self !== 'undefined' && self) ||
+ (typeof window !== 'undefined' && window) ||
+ this.content
+ );
+// `self` is undefined in Firefox for Android content script context
+// while `this` is nsIContentFrameMessageManager
+// with an attribute `content` that corresponds to the window
+
+if (typeof module !== 'undefined' && module.exports) {
+ module.exports.saveAs = saveAs;
+} else if (typeof define !== 'undefined' && define !== null && define.amd !== null) {
+ define('FileSaver.js', function() {
+ return saveAs;
+ });
+}
+
+/* eslint-disable */
+
+/*
+//
+// Last part of Alasql.js
+// Date: 03.11.2014
+// (c) 2014, Andrey Gershun
+//
+*/
+
+// This is a final part of Alasql
+
+//*only-for-browser/*
+if(utils.isCordova || utils.isMeteorServer || utils.isNode ){
+ console.warn('It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead.')
+}
+//*/
+
+// FileSaveAs
+alasql.utils.saveAs = saveAs;
+
+};
+
+// Create default database
+new Database("alasql");
+
+// Set default database
+alasql.use("alasql");
+
+return alasql;
+}));
+
diff --git a/dist/alasql.min.js b/dist/alasql.min.js
index cced5a035a..b0f55b1546 100755
--- a/dist/alasql.min.js
+++ b/dist/alasql.min.js
@@ -1,16 +1,2 @@
-//! AlaSQL v0.4.11-develop-d00d3b02undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
-"use strict";!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.alasql=t()}(this,function(){function e(e){return"(y="+e+",y===y?y:undefined)"}function t(e,t){return"(y="+e+',typeof y=="undefined"?undefined:'+t+")"}function r(){return!0}function n(){}function a(){var e=navigator.userAgent.toLowerCase();return-1!==e.indexOf("msie")&&parseInt(e.split("msie")[1])}function s(e,t,r){function n(e,r,a){var o,u,c,l=e[r];if(l.selid){if("PATH"===l.selid){for(var h=[{node:a,stack:[]}],d={},f=T.databases[T.useid].objects;h.length>0;){var p=h.shift(),b=p.node,E=p.stack,c=n(l.args,0,b);if(c.length>0){if(r+1+1>e.length)return E;var g=[];return E&&E.length>0&&E.forEach(function(t){g=g.concat(n(e,r+1,t))}),g}void 0===d[b.$id]&&(d[b.$id]=!0,b.$out&&b.$out.length>0&&b.$out.forEach(function(e){var t=f[e],r=E.concat(t);r.push(f[t.$out[0]]),h.push({node:f[t.$out[0]],stack:r})}))}return[]}if("NOT"===l.selid){var u=n(l.args,0,a);return u.length>0?[]:r+1+1>e.length?[a]:n(e,r+1,a)}if("DISTINCT"===l.selid){var u;if(u=void 0===l.args||0===l.args.length?P(a):n(l.args,0,a),0===u.length)return[];var m=P(u);return r+1+1>e.length?m:n(e,r+1,m)}if("AND"===l.selid){var m=!0;return l.args.forEach(function(e){m=m&&n(e,0,a).length>0}),m?r+1+1>e.length?[a]:n(e,r+1,a):[]}if("OR"===l.selid){var m=!1;return l.args.forEach(function(e){m=m||n(e,0,a).length>0}),m?r+1+1>e.length?[a]:n(e,r+1,a):[]}if("ALL"===l.selid){var u=n(l.args[0],0,a);return 0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("ANY"===l.selid){var u=n(l.args[0],0,a);return 0===u.length?[]:r+1+1>e.length?[u[0]]:n(e,r+1,[u[0]])}if("UNIONALL"===l.selid){var u=[];return l.args.forEach(function(e){u=u.concat(n(e,0,a))}),0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("UNION"===l.selid){var u=[];l.args.forEach(function(e){u=u.concat(n(e,0,a))});var u=P(u);return 0===u.length?[]:r+1+1>e.length?u:n(e,r+1,u)}if("IF"===l.selid){var u=n(l.args,0,a);return 0===u.length?[]:r+1+1>e.length?[a]:n(e,r+1,a)}if("REPEAT"===l.selid){var v,S,A=l.args[0].value;S=l.args[1]?l.args[1].value:A,l.args[2]&&(v=l.args[2].variable);var y=[];if(0===A&&(r+1+1>e.length?y=[a]:(v&&(T.vars[v]=0),y=y.concat(n(e,r+1,a)))),S>0)for(var N=[{value:a,lvl:1}],C=0;N.length>0;){var u=N[0];if(N.shift(),u.lvl<=S){v&&(T.vars[v]=u.lvl);var R=n(l.sels,0,u.value);R.forEach(function(e){N.push({value:e,lvl:u.lvl+1})}),u.lvl>=A&&(r+1+1>e.length?y=y.concat(R):R.forEach(function(t){y=y.concat(n(e,r+1,t))}))}if(++C>1e5)throw new Error("Security brake. Number of iterations = "+C)}return y}if("OF"===l.selid){if(r+1+1>e.length)return[a];var O=[];return Object.keys(a).forEach(function(t){T.vars[l.args[0].variable]=t,O=O.concat(n(e,r+1,a[t]))}),O}if("TO"===l.selid){var w=T.vars[l.args[0]],I=[];if(I=void 0!==w?w.slice(0):[],I.push(a),r+1+1>e.length)return[a];T.vars[l.args[0]]=I;var O=n(e,r+1,a);return T.vars[l.args[0]]=w,O}if("ARRAY"===l.selid){var u=n(l.args,0,a);return u.length>0?(o=u,r+1+1>e.length?[o]:n(e,r+1,o)):[]}if("SUM"===l.selid){var u=n(l.args,0,a);if(!(u.length>0))return[];var o=u.reduce(function(e,t){return e+t},0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("AVG"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u.reduce(function(e,t){return e+t},0)/u.length,r+1+1>e.length?[o]:n(e,r+1,o)):[];if("COUNT"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u.length,r+1+1>e.length?[o]:n(e,r+1,o)):[];if("FIRST"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u[0],r+1+1>e.length?[o]:n(e,r+1,o)):[];if("LAST"===l.selid)return u=n(l.args,0,a),u.length>0?(o=u[u.length-1],r+1+1>e.length?[o]:n(e,r+1,o)):[];if("MIN"===l.selid){if(u=n(l.args,0,a),0===u.length)return[];var o=u.reduce(function(e,t){return Math.min(e,t)},1/0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("MAX"===l.selid){var u=n(l.args,0,a);if(0===u.length)return[];var o=u.reduce(function(e,t){return Math.max(e,t)},-1/0);return r+1+1>e.length?[o]:n(e,r+1,o)}if("PLUS"===l.selid){var y=[],N=n(l.args,0,a).slice();r+1+1>e.length?y=y.concat(N):N.forEach(function(t){y=y.concat(n(e,r+1,t))});for(var C=0;N.length>0;){var u=N.shift();if(u=n(l.args,0,u),N=N.concat(u),r+1+1>e.length?y=y.concat(u):u.forEach(function(t){var a=n(e,r+1,t);y=y.concat(a)}),++C>1e5)throw new Error("Security brake. Number of iterations = "+C)}return y}if("STAR"===l.selid){var y=[];y=n(e,r+1,a);var N=n(l.args,0,a).slice();r+1+1>e.length?y=y.concat(N):N.forEach(function(t){y=y.concat(n(e,r+1,t))});for(var C=0;N.length>0;){var u=N[0];if(N.shift(),u=n(l.args,0,u),N=N.concat(u),r+1+1<=e.length&&u.forEach(function(t){y=y.concat(n(e,r+1,t))}),++C>1e5)throw new Error("Loop brake. Number of iterations = "+C)}return y}if("QUESTION"===l.selid){var y=[];y=y.concat(n(e,r+1,a));var u=n(l.args,0,a);return r+1+1<=e.length&&u.forEach(function(t){y=y.concat(n(e,r+1,t))}),y}if("WITH"!==l.selid){if("ROOT"===l.selid)return r+1+1>e.length?[a]:n(e,r+1,s);throw new Error("Wrong selector "+l.selid)}var u=n(l.args,0,a);if(0===u.length)return[];var c={status:1,values:u}}else{if(!l.srchid)throw new Error("Selector not found");var c=T.srch[l.srchid.toUpperCase()](a,l.args,i,t)}void 0===c&&(c={status:1,values:[a]});var m=[];if(1===c.status){var x=c.values;if(r+1+1>e.length)m=x;else for(var C=0;C0&&(o&&o[0]&&"PROP"===o[0].srchid&&o[0].args&&o[0].args[0]&&("XML"===o[0].args[0].toUpperCase()?(i.mode="XML",o.shift()):"HTML"===o[0].args[0].toUpperCase()?(i.mode="HTML",o.shift()):"JSON"===o[0].args[0].toUpperCase()&&(i.mode="JSON",o.shift())),o.length>0&&"VALUE"===o[0].srchid&&(i.value=!0,o.shift())),this.from instanceof X.Column){var u=this.from.databaseid||e;s=T.databases[u].tables[this.from.columnid].data}else if(this.from instanceof X.FuncValue&&T.from[this.from.funcid.toUpperCase()]){var c=this.from.args.map(function(e){var r=e.toJS();return new Function("params,alasql","var y;return "+r).bind(this)(t,T)});s=T.from[this.from.funcid.toUpperCase()].apply(this,c)}else if(void 0===this.from)s=T.databases[e].objects;else{var l=new Function("params,alasql","var y;return "+this.from.toJS());s=l(t,T),"object"==typeof Mongo&&"object"!=typeof Mongo.Collection&&s instanceof Mongo.Collection&&(s=s.find().fetch())}if(a=void 0!==o&&o.length>0?n(o,0,s):s,this.into){var h,d;void 0!==this.into.args[0]&&(h=new Function("params,alasql","var y;return "+this.into.args[0].toJS())(t,T)),void 0!==this.into.args[1]&&(d=new Function("params,alasql","var y;return "+this.into.args[1].toJS())(t,T)),a=T.into[this.into.funcid.toUpperCase()](h,d,a,[],r)}else i.value&&a.length>0&&(a=a[0]),r&&(a=r(a));return a}function i(e,t,r,n,a){e.sources.length;e.sourceslen=e.sources.length;var s=e.sourceslen;e.query=e,e.A=n,e.B=a,e.cb=r,e.oldscope=t,e.queriesfn&&(e.sourceslen+=e.queriesfn.length,s+=e.queriesfn.length,e.queriesdata=[],e.queriesfn.forEach(function(t,r){t.query.params=e.params,o([],-r-1,e)}));var i;i=t?_(t):{},e.scope=i;var c;return e.sources.forEach(function(t,r){t.query=e;var n=t.datafn(e,e.params,o,r,T);void 0!==n&&((e.intofn||e.intoallfn)&&Array.isArray(n)&&(n=n.length),c=n),t.queriesdata=e.queriesdata}),0!=e.sources.length&&0!==s||(c=u(e)),c}function o(e,t,r){if(t>=0){var n=r.sources[t];n.data=e,"function"==typeof n.data&&(n.getfn=n.data,n.dontcache=n.getfn.dontcache,"OUTER"!=n.joinmode&&"RIGHT"!=n.joinmode&&"ANTI"!=n.joinmode||(n.dontcache=!1),n.data={})}else r.queriesdata[-t-1]=G(e);if(!(--r.sourceslen>0))return u(r)}function u(e){var t,r=e.scope;z(e),e.data=[],e.xgroups={},e.groups=[];if(h(e,r,0),e.groupfn){if(e.data=[],0===e.groups.length){var n={};e.selectGroup.length>0&&e.selectGroup.forEach(function(e){"COUNT"==e.aggregatorid||"SUM"==e.aggregatorid?n[e.nick]=0:n[e.nick]=void 0}),e.groups=[n]}if(e.aggrKeys.length>0){var a="";e.aggrKeys.forEach(function(e){a+="g['"+e.nick+"']=alasql.aggr['"+e.funcid+"'](undefined,g['"+e.nick+"'],3);"});var s=new Function("g,params,alasql","var y;"+a)}for(var i=0,o=e.groups.length;i0){var g=e.removeKeys;if((t=g.length)>0)for(o=e.data.length,i=0;i0&&(e.columns=e.columns.filter(function(e){var t=!1;return g.forEach(function(r){e.columnid==r&&(t=!0)}),!t}))}if(void 0!==e.removeLikeKeys&&e.removeLikeKeys.length>0){for(var m=e.removeLikeKeys,i=0,o=e.data.length;i0&&(e.columns=e.columns.filter(function(e){var t=!1;return m.forEach(function(r){T.utils.like(r,e.columnid)&&(t=!0)}),!t}))}if(e.pivotfn&&e.pivotfn(),e.unpivotfn&&e.unpivotfn(),e.intoallfn){var S=e.intoallfn(e.columns,e.cb,e.params,e.alasql);return S}if(e.intofn){for(o=e.data.length,i=0;i=e.sources.length)e.wherefn(t,e.params,T)&&(e.groupfn?e.groupfn(t,e.params,T):e.data.push(e.selectfn(t,e.params,T)));else if(e.sources[r].applyselect){var n=e.sources[r];n.applyselect(e.params,function(a){if(a.length>0)for(var s=0;s0){for(var a={},s=Math.min(t.length,T.options.columnlookup||10)-1;0<=s;s--)for(var i in t[s])a[i]=!0;n=Object.keys(a).map(function(e){return{columnid:e}})}else n=[];if("VALUE"===r)if(t.length>0){var i;i=n&&n.length>0?n[0].columnid:Object.keys(t[0])[0],t=t[0][i]}else t=void 0;else if("ROW"===r)if(t.length>0){var i,o=[];for(var i in t[0])o.push(t[0][i]);t=o}else t=void 0;else if("COLUMN"===r){var u=[];if(t.length>0){var i;i=n&&n.length>0?n[0].columnid:Object.keys(t[0])[0];for(var s=0,c=t.length;s0)i=n[0].columnid,d=n[1].columnid;else{var f=Object.keys(t[0]);i=f[0],d=f[1]}for(var s=0,c=t.length;s0?n[0].columnid:Object.keys(t[0])[0];for(var s=0,c=t.length;s0?i.forEach(function(i){if(r&&"underscore"==T.options.joinstar)a.push("'"+t+"_"+i.columnid+"':p['"+t+"']['"+i.columnid+"']");else if(r&&"json"==T.options.joinstar)n+="r['"+t+"']['"+i.columnid+"']=p['"+t+"']['"+i.columnid+"'];";else{var o="p['"+t+"']['"+i.columnid+"']";if(s[i.columnid]){var u=o+" !== undefined ? "+o+" : "+s[i.columnid].value;a[s[i.columnid].id]=s[i.columnid].key+u,s[i.columnid].value=u}else{var c="'"+i.columnid+"':";a.push(c+o),s[i.columnid]={id:a.length-1,value:o,key:c}}}e.selectColumns[C(i.columnid)]=!0;var l={columnid:i.columnid,dbtypeid:i.dbtypeid,dbsize:i.dbsize,dbprecision:i.dbprecision,dbenum:i.dbenum};e.columns.push(l),e.xcolumns[l.columnid]=l}):(n+='var w=p["'+t+'"];for(var k in w){r[k]=w[k]};',e.dirtyColumns=!0)}),{s:a.join(","),sp:n}}function p(e,t){if(Array.isArray(e)){for(var r=[[]],n=0;n",t+="table {border:1px black solid; border-collapse: collapse; border-spacing: 0px;}",t+="td,th {border:1px black solid; padding-left:5px; padding-right:5px}",t+="th {background-color: #EEE}",t+="",t+="";var r=[];for(var n in e[0])r.push(n);t+="#",r.forEach(function(e){t+=" "+e});for(var a=0,s=e.length;a"+(a+1),r.forEach(function(r){t+=" ",e[a][r]==+e[a][r]?(t+='',void 0===e[a][r]?t+="NULL":t+=e[a][r],t+="
"):void 0===e[a][r]?t+="NULL":"string"==typeof e[a][r]?t+=e[a][r]:t+=oe(e[a][r])});t+="
"}else t+=""+oe(e)+"
";return t}function g(e,t,r){if(!(r<=0)){var n=t-e.scrollTop,a=n/r*10;setTimeout(function(){e.scrollTop!==t&&(e.scrollTop=e.scrollTop+a,g(e,t,r-10))},10)}}function m(e,t,r,n,a,s){function i(e){for(var t="",r=0,n=10240;r0&&d[d.length-1]&&0==Object.keys(d[d.length-1]).length&&d.pop(),n&&(d=n(d,a,s))},function(e){throw e})}function S(e){function t(){if(i(/^<\?xml\s*/)){for(var e={attributes:{}};!o()&&!u("?>");){var t=a();if(!t)return e;e.attributes[t.name]=t.value}return i(/\?>\s*/),e}}function r(){var e=i(/^<([\w-:.]+)\s*/);if(e){for(var t={name:e[1],attributes:{},children:[]};!(o()||u(">")||u("?>")||u("/>"));){var s=a();if(!s)return t;t.attributes[s.name]=s.value}if(i(/^\s*\/>\s*/))return t;i(/\??>\s*/),t.content=n();for(var c;c=r();)t.children.push(c);return i(/^<\/[\w-:.]+>\s*/),t}}function n(){var e=i(/^([^<]*)/);return e?e[1]:""}function a(){var e=i(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(e)return{name:e[1],value:s(e[2])}}function s(e){return e.replace(/^['"]|['"]$/g,"")}function i(t){var r=e.match(t);if(r)return e=e.slice(r[0].length),r}function o(){return 0==e.length}function u(t){return 0==e.indexOf(t)}return e=e.trim(),e=e.replace(//g,""),function(){return{declaration:t(),root:r()}}()}var T=function(e,t,r,n){if(t=t||[],"function"!=typeof importScripts&&T.webworker){var a=T.lastid++;return T.buffer[a]=r,void T.webworker.postMessage({id:a,sql:e,params:t})}return 0===arguments.length?new X.Select({columns:[new X.Column({columnid:"*"})],from:[new X.ParamValue({param:0})]}):1===arguments.length&&e.constructor===Array?T.promise(e):("function"==typeof t&&(n=r,r=t,t=[]),"object"!=typeof t&&(t=[t]),"string"==typeof e&&"#"===e[0]&&"object"==typeof document?e=document.querySelector(e).textContent:"object"==typeof e&&e instanceof HTMLElement?e=e.textContent:"function"==typeof e&&(e=e.toString(),e=(/\/\*([\S\s]+)\*\//m.exec(e)||["","Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function."])[1]),T.exec(e,t,r,n))};T.version="0.4.11-develop-d00d3b02undefined",T.debug=void 0;var A=function(){return null},y=function(){function e(){this.yy={}}var t=function(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r
-},r=[2,13],n=[1,104],a=[1,102],s=[1,103],i=[1,6],o=[1,42],u=[1,79],c=[1,76],l=[1,94],h=[1,93],d=[1,69],f=[1,101],p=[1,85],b=[1,64],E=[1,71],g=[1,84],m=[1,66],v=[1,70],S=[1,68],A=[1,61],y=[1,74],N=[1,62],C=[1,67],R=[1,83],w=[1,77],I=[1,86],x=[1,87],D=[1,81],k=[1,82],L=[1,80],$=[1,88],M=[1,89],U=[1,90],_=[1,91],F=[1,92],P=[1,98],q=[1,65],G=[1,78],V=[1,72],B=[1,96],j=[1,97],H=[1,63],J=[1,73],Y=[1,108],W=[1,107],X=[10,306,602,764],K=[10,306,310,602,764],Q=[1,115],z=[1,116],Z=[1,117],ee=[1,118],te=[1,119],re=[130,353,410],ne=[1,127],ae=[1,126],se=[1,134],ie=[1,164],oe=[1,175],ue=[1,178],ce=[1,173],le=[1,181],he=[1,185],de=[1,160],fe=[1,182],pe=[1,169],be=[1,171],Ee=[1,174],ge=[1,183],me=[1,166],ve=[1,193],Se=[1,188],Te=[1,189],Ae=[1,194],ye=[1,195],Ne=[1,196],Ce=[1,197],Re=[1,198],Oe=[1,199],we=[1,200],Ie=[1,201],xe=[1,202],De=[1,176],ke=[1,177],Le=[1,179],$e=[1,180],Me=[1,186],Ue=[1,192],_e=[1,184],Fe=[1,187],Pe=[1,172],qe=[1,170],Ge=[1,191],Ve=[1,203],Be=[2,4,5],je=[2,471],He=[1,206],Je=[1,211],Ye=[1,220],We=[1,216],Xe=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ke=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],Qe=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ze=[1,249],Ze=[1,256],et=[1,265],tt=[1,270],rt=[1,269],nt=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],at=[2,162],st=[1,281],it=[10,74,78,306,310,505,602,764],ot=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],ut=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],ct=[1,562],lt=[1,564],ht=[2,503],dt=[1,569],ft=[1,580],pt=[1,583],bt=[1,584],Et=[10,78,89,132,137,146,189,296,306,310,470,602,764],gt=[10,74,306,310,602,764],mt=[2,567],vt=[1,602],St=[2,4,5,156],Tt=[1,640],At=[1,612],yt=[1,646],Nt=[1,647],Ct=[1,620],Rt=[1,631],Ot=[1,618],wt=[1,626],It=[1,619],xt=[1,627],Dt=[1,629],kt=[1,621],Lt=[1,622],$t=[1,641],Mt=[1,638],Ut=[1,639],_t=[1,615],Ft=[1,617],Pt=[1,609],qt=[1,610],Gt=[1,611],Vt=[1,613],Bt=[1,614],jt=[1,616],Ht=[1,623],Jt=[1,624],Yt=[1,628],Wt=[1,630],Xt=[1,632],Kt=[1,633],Qt=[1,634],zt=[1,635],Zt=[1,636],er=[1,642],tr=[1,643],rr=[1,644],nr=[1,645],ar=[2,287],sr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ir=[2,359],or=[1,668],ur=[1,678],cr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],lr=[1,694],hr=[1,703],dr=[1,702],fr=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],pr=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],br=[2,202],Er=[1,725],gr=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],mr=[2,163],vr=[1,728],Sr=[2,4,5,112],Tr=[1,741],Ar=[1,760],yr=[1,740],Nr=[1,739],Cr=[1,734],Rr=[1,735],Or=[1,737],wr=[1,738],Ir=[1,742],xr=[1,743],Dr=[1,744],kr=[1,745],Lr=[1,746],$r=[1,747],Mr=[1,748],Ur=[1,749],_r=[1,750],Fr=[1,751],Pr=[1,752],qr=[1,753],Gr=[1,754],Vr=[1,755],Br=[1,756],jr=[1,757],Hr=[1,759],Jr=[1,761],Yr=[1,762],Wr=[1,763],Xr=[1,764],Kr=[1,765],Qr=[1,766],zr=[1,767],Zr=[1,770],en=[1,771],tn=[1,772],rn=[1,773],nn=[1,774],an=[1,775],sn=[1,776],on=[1,777],un=[1,778],cn=[1,779],ln=[1,780],hn=[1,781],dn=[74,89,189],fn=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],pn=[1,798],bn=[10,74,78,300,306,310,602,764],En=[1,799],gn=[1,805],mn=[1,806],vn=[1,810],Sn=[10,74,78,306,310,602,764],Tn=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],An=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],yn=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],Nn=[2,4,5,132,296],Cn=[1,844],Rn=[10,74,76,78,306,310,602,764],On=[2,738],wn=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],In=[2,1161],xn=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],Dn=[10,74,76,78,139,141,145,306,310,420,424,602,764],kn=[10,74,78,139,141,306,310,602,764],Ln=[10,78,89,132,146,189,296,306,310,470,602,764],$n=[335,338,339],Mn=[2,764],Un=[1,869],_n=[1,870],Fn=[1,871],Pn=[1,872],qn=[1,881],Gn=[1,880],Vn=[164,166,334],Bn=[2,444],jn=[1,936],Hn=[2,4,5,77,131,156,290,291,292,293],Jn=[1,951],Yn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Wn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Xn=[2,375],Kn=[1,958],Qn=[306,308,310],zn=[74,300],Zn=[74,300,426],ea=[1,965],ta=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ra=[74,426],na=[1,978],aa=[1,977],sa=[1,984],ia=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],oa=[1,1010],ua=[10,72,78,306,310,602,764],ca=[1,1016],la=[1,1017],ha=[1,1018],da=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],fa=[1,1068],pa=[1,1067],ba=[1,1081],Ea=[1,1080],ga=[1,1088],ma=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],va=[1,1119],Sa=[10,78,89,146,189,306,310,470,602,764],Ta=[1,1139],Aa=[1,1138],ya=[1,1137],Na=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ca=[1,1153],Ra=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Oa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],wa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ia=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],xa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Da=[2,406],ka=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],La=[2,285],$a=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ma=[10,78,306,310,602,764],Ua=[1,1189],_a=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],Fa=[10,74,78,306,308,310,464,602,764],Pa=[1,1200],qa=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],Ga=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Va=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ba=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],ja=[2,1085],Ha=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ja=[1,1252],Ya=[10,74,78,128,306,308,310,464,602,764],Wa=[115,116,124],Xa=[2,584],Ka=[1,1280],Qa=[76,139],za=[2,724],Za=[1,1297],es=[1,1298],ts=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],rs=[2,330],ns=[1,1322],as=[1,1336],ss=[1,1338],is=[2,487],os=[74,78],us=[10,306,308,310,464,602,764],cs=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],ls=[1,1354],hs=[1,1358],ds=[1,1359],fs=[1,1361],ps=[1,1362],bs=[1,1363],Es=[1,1364],gs=[1,1365],ms=[1,1366],vs=[1,1367],Ss=[1,1368],Ts=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],As=[1,1393],ys=[10,72,78,118,162,168,169,245,247,306,310,602,764],Ns=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],Cs=[1,1490],Rs=[1,1492],Os=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],ws=[1,1506],Is=[10,72,74,78,162,168,169,245,247,306,310,602,764],xs=[1,1524],Ds=[1,1526],ks=[1,1527],Ls=[1,1523],$s=[1,1522],Ms=[1,1521],Us=[1,1528],_s=[1,1518],Fs=[1,1519],Ps=[1,1520],qs=[1,1545],Gs=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Vs=[1,1556],Bs=[1,1564],js=[1,1563],Hs=[10,72,78,162,168,169,245,247,306,310,602,764],Js=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Ys=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Ws=[1,1621],Xs=[1,1623],Ks=[1,1620],Qs=[1,1622],zs=[187,193,368,369,370,373],Zs=[2,515],ei=[1,1628],ti=[1,1647],ri=[10,72,78,162,168,169,306,310,602,764],ni=[1,1657],ai=[1,1658],si=[1,1659],ii=[1,1678],oi=[4,10,243,306,310,343,356,602,764],ui=[1,1726],ci=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],li=[2,4,5,77],hi=[1,1820],di=[1,1832],fi=[1,1851],pi=[10,72,78,162,168,169,306,310,415,602,764],bi=[10,74,78,230,306,310,602,764],Ei={trace:function(){},yy:{},symbols_:{error:2,Literal:3,LITERAL:4,BRALITERAL:5,NonReserved:6,LiteralWithSpaces:7,main:8,Statements:9,EOF:10,Statements_group0:11,AStatement:12,ExplainStatement:13,EXPLAIN:14,QUERY:15,PLAN:16,Statement:17,AlterTable:18,AttachDatabase:19,Call:20,CreateDatabase:21,CreateIndex:22,CreateGraph:23,CreateTable:24,CreateView:25,CreateEdge:26,CreateVertex:27,Declare:28,Delete:29,DetachDatabase:30,DropDatabase:31,DropIndex:32,DropTable:33,DropView:34,If:35,Insert:36,Merge:37,Reindex:38,RenameTable:39,Select:40,ShowCreateTable:41,ShowColumns:42,ShowDatabases:43,ShowIndex:44,ShowTables:45,TruncateTable:46,WithSelect:47,CreateTrigger:48,DropTrigger:49,BeginTransaction:50,CommitTransaction:51,RollbackTransaction:52,EndTransaction:53,UseDatabase:54,Update:55,JavaScript:56,Source:57,Assert:58,While:59,Continue:60,Break:61,BeginEnd:62,Print:63,Require:64,SetVariable:65,ExpressionStatement:66,AddRule:67,Query:68,Echo:69,CreateFunction:70,CreateAggregate:71,WITH:72,WithTablesList:73,COMMA:74,WithTable:75,AS:76,LPAR:77,RPAR:78,SelectClause:79,Select_option0:80,IntoClause:81,FromClause:82,Select_option1:83,WhereClause:84,GroupClause:85,OrderClause:86,LimitClause:87,UnionClause:88,SEARCH:89,Select_repetition0:90,Select_option2:91,PivotClause:92,PIVOT:93,Expression:94,FOR:95,PivotClause_option0:96,PivotClause_option1:97,UNPIVOT:98,IN:99,ColumnsList:100,PivotClause_option2:101,PivotClause2:102,AsList:103,AsLiteral:104,AsPart:105,RemoveClause:106,REMOVE:107,RemoveClause_option0:108,RemoveColumnsList:109,RemoveColumn:110,Column:111,LIKE:112,StringValue:113,ArrowDot:114,ARROW:115,DOT:116,SearchSelector:117,ORDER:118,BY:119,OrderExpressionsList:120,SearchSelector_option0:121,DOTDOT:122,CARET:123,EQ:124,SearchSelector_repetition_plus0:125,SearchSelector_repetition_plus1:126,SearchSelector_option1:127,WHERE:128,OF:129,CLASS:130,NUMBER:131,STRING:132,SLASH:133,VERTEX:134,EDGE:135,EXCLAMATION:136,SHARP:137,MODULO:138,GT:139,LT:140,GTGT:141,LTLT:142,DOLLAR:143,Json:144,AT:145,SET:146,SetColumnsList:147,TO:148,VALUE:149,ROW:150,ExprList:151,COLON:152,PlusStar:153,NOT:154,SearchSelector_repetition2:155,IF:156,SearchSelector_repetition3:157,Aggregator:158,SearchSelector_repetition4:159,SearchSelector_group0:160,SearchSelector_repetition5:161,UNION:162,SearchSelectorList:163,ALL:164,SearchSelector_repetition6:165,ANY:166,SearchSelector_repetition7:167,INTERSECT:168,EXCEPT:169,AND:170,OR:171,PATH:172,RETURN:173,ResultColumns:174,REPEAT:175,SearchSelector_repetition8:176,SearchSelectorList_repetition0:177,SearchSelectorList_repetition1:178,PLUS:179,STAR:180,QUESTION:181,SearchFrom:182,FROM:183,SelectModifier:184,DISTINCT:185,TopClause:186,UNIQUE:187,SelectClause_option0:188,SELECT:189,COLUMN:190,MATRIX:191,TEXTSTRING:192,INDEX:193,RECORDSET:194,TOP:195,NumValue:196,TopClause_option0:197,INTO:198,Table:199,FuncValue:200,ParamValue:201,VarValue:202,FromTablesList:203,JoinTablesList:204,ApplyClause:205,CROSS:206,APPLY:207,OUTER:208,FromTable:209,FromTable_option0:210,FromTable_option1:211,INDEXED:212,INSERTED:213,FromString:214,JoinTable:215,JoinMode:216,JoinTableAs:217,OnClause:218,JoinTableAs_option0:219,JoinTableAs_option1:220,JoinModeMode:221,NATURAL:222,JOIN:223,INNER:224,LEFT:225,RIGHT:226,FULL:227,SEMI:228,ANTI:229,ON:230,USING:231,GROUP:232,GroupExpressionsList:233,HavingClause:234,GroupExpression:235,GROUPING:236,ROLLUP:237,CUBE:238,HAVING:239,CORRESPONDING:240,OrderExpression:241,DIRECTION:242,COLLATE:243,NOCASE:244,LIMIT:245,OffsetClause:246,OFFSET:247,LimitClause_option0:248,FETCH:249,LimitClause_option1:250,LimitClause_option2:251,LimitClause_option3:252,ResultColumn:253,Star:254,AggrValue:255,Op:256,LogicValue:257,NullValue:258,ExistsValue:259,CaseValue:260,CastClause:261,ArrayValue:262,NewClause:263,Expression_group0:264,CURRENT_TIMESTAMP:265,JAVASCRIPT:266,CREATE:267,FUNCTION:268,AGGREGATE:269,NEW:270,CAST:271,ColumnType:272,CONVERT:273,PrimitiveValue:274,OverClause:275,OVER:276,OverPartitionClause:277,OverOrderByClause:278,PARTITION:279,SUM:280,COUNT:281,MIN:282,MAX:283,AVG:284,FIRST:285,LAST:286,AGGR:287,ARRAY:288,FuncValue_option0:289,REPLACE:290,DATEADD:291,DATEDIFF:292,INTERVAL:293,TRUE:294,FALSE:295,NSTRING:296,NULL:297,EXISTS:298,ARRAYLBRA:299,RBRA:300,ParamValue_group0:301,BRAQUESTION:302,CASE:303,WhensList:304,ElseClause:305,END:306,When:307,WHEN:308,THEN:309,ELSE:310,REGEXP:311,TILDA:312,GLOB:313,ESCAPE:314,NOT_LIKE:315,BARBAR:316,MINUS:317,AMPERSAND:318,BAR:319,GE:320,LE:321,EQEQ:322,EQEQEQ:323,NE:324,NEEQEQ:325,NEEQEQEQ:326,CondOp:327,AllSome:328,ColFunc:329,BETWEEN:330,NOT_BETWEEN:331,IS:332,DOUBLECOLON:333,SOME:334,UPDATE:335,SetColumn:336,SetColumn_group0:337,DELETE:338,INSERT:339,Into:340,Values:341,ValuesListsList:342,DEFAULT:343,VALUES:344,ValuesList:345,Value:346,DateValue:347,TemporaryClause:348,TableClass:349,IfNotExists:350,CreateTableDefClause:351,CreateTableOptionsClause:352,TABLE:353,CreateTableOptions:354,CreateTableOption:355,IDENTITY:356,TEMP:357,ColumnDefsList:358,ConstraintsList:359,Constraint:360,ConstraintName:361,PrimaryKey:362,ForeignKey:363,UniqueKey:364,IndexKey:365,Check:366,CONSTRAINT:367,CHECK:368,PRIMARY:369,KEY:370,PrimaryKey_option0:371,ColsList:372,FOREIGN:373,REFERENCES:374,ForeignKey_option0:375,OnForeignKeyClause:376,ParColsList:377,OnDeleteClause:378,OnUpdateClause:379,NO:380,ACTION:381,UniqueKey_option0:382,UniqueKey_option1:383,ColumnDef:384,ColumnConstraintsClause:385,ColumnConstraints:386,SingularColumnType:387,NumberMax:388,ENUM:389,MAXNUM:390,ColumnConstraintsList:391,ColumnConstraint:392,ParLiteral:393,ColumnConstraint_option0:394,ColumnConstraint_option1:395,DROP:396,DropTable_group0:397,IfExists:398,TablesList:399,ALTER:400,RENAME:401,ADD:402,MODIFY:403,ATTACH:404,DATABASE:405,DETACH:406,AsClause:407,USE:408,SHOW:409,VIEW:410,CreateView_option0:411,CreateView_option1:412,SubqueryRestriction:413,READ:414,ONLY:415,OPTION:416,SOURCE:417,ASSERT:418,JsonObject:419,ATLBRA:420,JsonArray:421,JsonValue:422,JsonPrimitiveValue:423,LCUR:424,JsonPropertiesList:425,RCUR:426,JsonElementsList:427,JsonProperty:428,OnOff:429,SetPropsList:430,AtDollar:431,SetProp:432,OFF:433,COMMIT:434,TRANSACTION:435,ROLLBACK:436,BEGIN:437,ElseStatement:438,WHILE:439,CONTINUE:440,BREAK:441,PRINT:442,REQUIRE:443,StringValuesList:444,PluginsList:445,Plugin:446,ECHO:447,DECLARE:448,DeclaresList:449,DeclareItem:450,TRUNCATE:451,MERGE:452,MergeInto:453,MergeUsing:454,MergeOn:455,MergeMatchedList:456,OutputClause:457,MergeMatched:458,MergeNotMatched:459,MATCHED:460,MergeMatchedAction:461,MergeNotMatchedAction:462,TARGET:463,OUTPUT:464,CreateVertex_option0:465,CreateVertex_option1:466,CreateVertex_option2:467,CreateVertexSet:468,SharpValue:469,CONTENT:470,CreateEdge_option0:471,GRAPH:472,GraphList:473,GraphVertexEdge:474,GraphElement:475,GraphVertexEdge_option0:476,GraphVertexEdge_option1:477,GraphElementVar:478,GraphVertexEdge_option2:479,GraphVertexEdge_option3:480,GraphVertexEdge_option4:481,GraphVar:482,GraphAsClause:483,GraphAtClause:484,GraphElement2:485,GraphElement2_option0:486,GraphElement2_option1:487,GraphElement2_option2:488,GraphElement2_option3:489,GraphElement_option0:490,GraphElement_option1:491,GraphElement_option2:492,SharpLiteral:493,GraphElement_option3:494,GraphElement_option4:495,GraphElement_option5:496,ColonLiteral:497,DeleteVertex:498,DeleteVertex_option0:499,DeleteEdge:500,DeleteEdge_option0:501,DeleteEdge_option1:502,DeleteEdge_option2:503,Term:504,COLONDASH:505,TermsList:506,QUESTIONDASH:507,CALL:508,TRIGGER:509,BeforeAfter:510,InsertDeleteUpdate:511,CreateTrigger_option0:512,CreateTrigger_option1:513,BEFORE:514,AFTER:515,INSTEAD:516,REINDEX:517,A:518,ABSENT:519,ABSOLUTE:520,ACCORDING:521,ADA:522,ADMIN:523,ALWAYS:524,ASC:525,ASSERTION:526,ASSIGNMENT:527,ATTRIBUTE:528,ATTRIBUTES:529,BASE64:530,BERNOULLI:531,BLOCKED:532,BOM:533,BREADTH:534,C:535,CASCADE:536,CATALOG:537,CATALOG_NAME:538,CHAIN:539,CHARACTERISTICS:540,CHARACTERS:541,CHARACTER_SET_CATALOG:542,CHARACTER_SET_NAME:543,CHARACTER_SET_SCHEMA:544,CLASS_ORIGIN:545,COBOL:546,COLLATION:547,COLLATION_CATALOG:548,COLLATION_NAME:549,COLLATION_SCHEMA:550,COLUMNS:551,COLUMN_NAME:552,COMMAND_FUNCTION:553,COMMAND_FUNCTION_CODE:554,COMMITTED:555,CONDITION_NUMBER:556,CONNECTION:557,CONNECTION_NAME:558,CONSTRAINTS:559,CONSTRAINT_CATALOG:560,CONSTRAINT_NAME:561,CONSTRAINT_SCHEMA:562,CONSTRUCTOR:563,CONTROL:564,CURSOR_NAME:565,DATA:566,DATETIME_INTERVAL_CODE:567,DATETIME_INTERVAL_PRECISION:568,DB:569,DEFAULTS:570,DEFERRABLE:571,DEFERRED:572,DEFINED:573,DEFINER:574,DEGREE:575,DEPTH:576,DERIVED:577,DESC:578,DESCRIPTOR:579,DIAGNOSTICS:580,DISPATCH:581,DOCUMENT:582,DOMAIN:583,DYNAMIC_FUNCTION:584,DYNAMIC_FUNCTION_CODE:585,EMPTY:586,ENCODING:587,ENFORCED:588,EXCLUDE:589,EXCLUDING:590,EXPRESSION:591,FILE:592,FINAL:593,FLAG:594,FOLLOWING:595,FORTRAN:596,FOUND:597,FS:598,G:599,GENERAL:600,GENERATED:601,GO:602,GOTO:603,GRANTED:604,HEX:605,HIERARCHY:606,ID:607,IGNORE:608,IMMEDIATE:609,IMMEDIATELY:610,IMPLEMENTATION:611,INCLUDING:612,INCREMENT:613,INDENT:614,INITIALLY:615,INPUT:616,INSTANCE:617,INSTANTIABLE:618,INTEGRITY:619,INVOKER:620,ISOLATION:621,K:622,KEY_MEMBER:623,KEY_TYPE:624,LENGTH:625,LEVEL:626,LIBRARY:627,LINK:628,LOCATION:629,LOCATOR:630,M:631,MAP:632,MAPPING:633,MAXVALUE:634,MESSAGE_LENGTH:635,MESSAGE_OCTET_LENGTH:636,MESSAGE_TEXT:637,MINVALUE:638,MORE:639,MUMPS:640,NAME:641,NAMES:642,NAMESPACE:643,NESTING:644,NEXT:645,NFC:646,NFD:647,NFKC:648,NFKD:649,NIL:650,NORMALIZED:651,NULLABLE:652,NULLS:653,OBJECT:654,OCTETS:655,OPTIONS:656,ORDERING:657,ORDINALITY:658,OTHERS:659,OVERRIDING:660,P:661,PAD:662,PARAMETER_MODE:663,PARAMETER_NAME:664,PARAMETER_ORDINAL_POSITION:665,PARAMETER_SPECIFIC_CATALOG:666,PARAMETER_SPECIFIC_NAME:667,PARAMETER_SPECIFIC_SCHEMA:668,PARTIAL:669,PASCAL:670,PASSING:671,PASSTHROUGH:672,PERMISSION:673,PLACING:674,PLI:675,PRECEDING:676,PRESERVE:677,PRIOR:678,PRIVILEGES:679,PUBLIC:680,RECOVERY:681,RELATIVE:682,REPEATABLE:683,REQUIRING:684,RESPECT:685,RESTART:686,RESTORE:687,RESTRICT:688,RETURNED_CARDINALITY:689,RETURNED_LENGTH:690,RETURNED_OCTET_LENGTH:691,RETURNED_SQLSTATE:692,RETURNING:693,ROLE:694,ROUTINE:695,ROUTINE_CATALOG:696,ROUTINE_NAME:697,ROUTINE_SCHEMA:698,ROW_COUNT:699,SCALE:700,SCHEMA:701,SCHEMA_NAME:702,SCOPE_CATALOG:703,SCOPE_NAME:704,SCOPE_SCHEMA:705,SECTION:706,SECURITY:707,SELECTIVE:708,SELF:709,SEQUENCE:710,SERIALIZABLE:711,SERVER:712,SERVER_NAME:713,SESSION:714,SETS:715,SIMPLE:716,SIZE:717,SPACE:718,SPECIFIC_NAME:719,STANDALONE:720,STATE:721,STATEMENT:722,STRIP:723,STRUCTURE:724,STYLE:725,SUBCLASS_ORIGIN:726,T:727,TABLE_NAME:728,TEMPORARY:729,TIES:730,TOKEN:731,TOP_LEVEL_COUNT:732,TRANSACTIONS_COMMITTED:733,TRANSACTIONS_ROLLED_BACK:734,TRANSACTION_ACTIVE:735,TRANSFORM:736,TRANSFORMS:737,TRIGGER_CATALOG:738,TRIGGER_NAME:739,TRIGGER_SCHEMA:740,TYPE:741,UNBOUNDED:742,UNCOMMITTED:743,UNDER:744,UNLINK:745,UNNAMED:746,UNTYPED:747,URI:748,USAGE:749,USER_DEFINED_TYPE_CATALOG:750,USER_DEFINED_TYPE_CODE:751,USER_DEFINED_TYPE_NAME:752,USER_DEFINED_TYPE_SCHEMA:753,VALID:754,VERSION:755,WHITESPACE:756,WORK:757,WRAPPER:758,WRITE:759,XMLDECLARATION:760,XMLSCHEMA:761,YES:762,ZONE:763,SEMICOLON:764,PERCENT:765,ROWS:766,FuncValue_option0_group0:767,$accept:0,$end:1},terminals_:{2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",
-553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},productions_:[0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],performAction:function(e,t,r,n,a,s,i){var o=s.length-1;switch(a){case 1:T.options.casesensitive?this.$=s[o]:this.$=s[o].toLowerCase();break;case 2:this.$=O(s[o].substr(1,s[o].length-2));break;case 3:this.$=s[o].toLowerCase();break;case 4:this.$=s[o];break;case 5:this.$=s[o]?s[o-1]+" "+s[o]:s[o-1];break;case 6:return new n.Statements({statements:s[o-1]});case 7:this.$=s[o-2],s[o]&&s[o-2].push(s[o]);break;case 8:case 9:case 70:case 80:case 85:case 143:case 177:case 205:case 206:case 242:case 261:case 273:case 354:case 372:case 451:case 474:case 475:case 479:case 487:case 528:case 529:case 566:case 649:case 659:case 683:case 685:case 687:case 701:case 702:case 732:case 756:this.$=[s[o]];break;case 10:case 11:this.$=s[o],s[o].explain=!0;break;case 12:this.$=s[o],n.exists&&(this.$.exists=n.exists),delete n.exists,n.queries&&(this.$.queries=n.queries),delete n.queries;break;case 13:case 162:case 172:case 237:case 238:case 240:case 248:case 250:case 259:case 267:case 270:case 375:case 491:case 501:case 503:case 515:case 521:case 522:case 567:this.$=void 0;break;case 68:this.$=new n.WithSelect({withs:s[o-1],select:s[o]});break;case 69:case 565:s[o-2].push(s[o]),this.$=s[o-2];break;case 71:this.$={name:s[o-4],select:s[o-1]};break;case 72:n.extend(this.$,s[o-9]),n.extend(this.$,s[o-8]),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]),this.$=s[o-9];break;case 73:this.$=new n.Search({selectors:s[o-2],from:s[o]}),n.extend(this.$,s[o-1]);break;case 74:this.$={pivot:{expr:s[o-5],columnid:s[o-3],inlist:s[o-2],as:s[o]}};break;case 75:this.$={unpivot:{tocolumnid:s[o-8],forcolumnid:s[o-6],inlist:s[o-3],as:s[o]}};break;case 76:case 520:case 549:case 585:case 619:case 636:case 637:case 640:case 662:this.$=s[o-1];break;case 77:case 78:case 86:case 147:case 185:case 247:case 280:case 288:case 289:case 290:case 291:case 292:case 293:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:case 304:case 305:case 320:case 321:case 322:case 323:case 324:case 325:case 374:case 440:case 441:case 442:case 443:case 444:case 445:case 516:case 542:case 546:case 548:case 623:case 624:case 625:case 626:case 627:case 628:case 632:case 634:case 635:case 644:case 660:case 661:case 723:case 738:case 739:case 741:case 742:case 748:case 749:this.$=s[o];break;case 79:case 84:case 731:case 755:this.$=s[o-2],this.$.push(s[o]);break;case 81:this.$={expr:s[o]};break;case 82:this.$={expr:s[o-2],as:s[o]};break;case 83:this.$={removecolumns:s[o]};break;case 87:this.$={like:s[o]};break;case 90:case 104:this.$={srchid:"PROP",args:[s[o]]};break;case 91:this.$={srchid:"ORDERBY",args:s[o-1]};break;case 92:var u=s[o-1];u||(u="ASC"),this.$={srchid:"ORDERBY",args:[{expression:new n.Column({columnid:"_"}),direction:u}]};break;case 93:this.$={srchid:"PARENT"};break;case 94:this.$={srchid:"APROP",args:[s[o]]};break;case 95:this.$={selid:"ROOT"};break;case 96:this.$={srchid:"EQ",args:[s[o]]};break;case 97:this.$={srchid:"LIKE",args:[s[o]]};break;case 98:case 99:this.$={selid:"WITH",args:s[o-1]};break;case 100:this.$={srchid:s[o-3].toUpperCase(),args:s[o-1]};break;case 101:this.$={srchid:"WHERE",args:[s[o-1]]};break;case 102:this.$={selid:"OF",args:[s[o-1]]};break;case 103:this.$={srchid:"CLASS",args:[s[o-1]]};break;case 105:this.$={srchid:"NAME",args:[s[o].substr(1,s[o].length-2)]};break;case 106:this.$={srchid:"CHILD"};break;case 107:this.$={srchid:"VERTEX"};break;case 108:this.$={srchid:"EDGE"};break;case 109:this.$={srchid:"REF"};break;case 110:this.$={srchid:"SHARP",args:[s[o]]};break;case 111:this.$={srchid:"ATTR",args:void 0===s[o]?void 0:[s[o]]};break;case 112:this.$={srchid:"ATTR"};break;case 113:this.$={srchid:"OUT"};break;case 114:this.$={srchid:"IN"};break;case 115:this.$={srchid:"OUTOUT"};break;case 116:this.$={srchid:"ININ"};break;case 117:this.$={srchid:"CONTENT"};break;case 118:this.$={srchid:"EX",args:[new n.Json({value:s[o]})]};break;case 119:this.$={srchid:"AT",args:[s[o]]};break;case 120:this.$={srchid:"AS",args:[s[o]]};break;case 121:this.$={srchid:"SET",args:s[o-1]};break;case 122:this.$={selid:"TO",args:[s[o]]};break;case 123:this.$={srchid:"VALUE"};break;case 124:this.$={srchid:"ROW",args:s[o-1]};break;case 125:this.$={srchid:"CLASS",args:[s[o]]};break;case 126:this.$={selid:s[o],args:[s[o-1]]};break;case 127:this.$={selid:"NOT",args:s[o-1]};break;case 128:this.$={selid:"IF",args:s[o-1]};break;case 129:this.$={selid:s[o-3],args:s[o-1]};break;case 130:this.$={selid:"DISTINCT",args:s[o-1]};break;case 131:this.$={selid:"UNION",args:s[o-1]};break;case 132:this.$={selid:"UNIONALL",args:s[o-1]};break;case 133:this.$={selid:"ALL",args:[s[o-1]]};break;case 134:this.$={selid:"ANY",args:[s[o-1]]};break;case 135:this.$={selid:"INTERSECT",args:s[o-1]};break;case 136:this.$={selid:"EXCEPT",args:s[o-1]};break;case 137:this.$={selid:"AND",args:s[o-1]};break;case 138:this.$={selid:"OR",args:s[o-1]};break;case 139:this.$={selid:"PATH",args:[s[o-1]]};break;case 140:this.$={srchid:"RETURN",args:s[o-1]};break;case 141:this.$={selid:"REPEAT",sels:s[o-3],args:s[o-1]};break;case 142:this.$=s[o-2],this.$.push(s[o]);break;case 144:this.$="PLUS";break;case 145:this.$="STAR";break;case 146:this.$="QUESTION";break;case 148:case 149:this.$=new n.Select({columns:s[o],distinct:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 150:this.$=new n.Select({columns:s[o],all:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 151:s[o]?(this.$=new n.Select({columns:s[o]}),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1])):this.$=new n.Select({columns:[new n.Column({columnid:"_"})],modifier:"COLUMN"});break;case 152:"SELECT"==s[o]?this.$=void 0:this.$={modifier:s[o]};break;case 153:this.$={modifier:"VALUE"};break;case 154:this.$={modifier:"ROW"};break;case 155:this.$={modifier:"COLUMN"};break;case 156:this.$={modifier:"MATRIX"};break;case 157:this.$={modifier:"TEXTSTRING"};break;case 158:this.$={modifier:"INDEX"};break;case 159:this.$={modifier:"RECORDSET"};break;case 160:this.$={top:s[o-1],percent:void 0!==s[o]||void 0};break;case 161:this.$={top:s[o-1]};break;case 163:case 330:case 523:case 524:case 724:this.$=void 0;break;case 164:case 165:case 166:case 167:this.$={into:s[o]};break;case 168:var c=s[o];c=c.substr(1,c.length-2);var l=c.substr(-3).toUpperCase(),h=c.substr(-4).toUpperCase();"#"==c[0]?this.$={into:new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}:"XLS"==l||"CSV"==l||"TAB"==l?this.$={into:new n.FuncValue({funcid:l,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}:"XLSX"!=h&&"JSON"!=h||(this.$={into:new n.FuncValue({funcid:h,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})});break;case 169:this.$={from:s[o]};break;case 170:this.$={from:s[o-1],joins:s[o]};break;case 171:this.$={from:s[o-2],joins:s[o-1]};break;case 173:this.$=new n.Apply({select:s[o-2],applymode:"CROSS",as:s[o]});break;case 174:this.$=new n.Apply({select:s[o-3],applymode:"CROSS",as:s[o]});break;case 175:this.$=new n.Apply({select:s[o-2],applymode:"OUTER",as:s[o]});break;case 176:this.$=new n.Apply({select:s[o-3],applymode:"OUTER",as:s[o]});break;case 178:case 243:case 452:case 530:case 531:this.$=s[o-2],s[o-2].push(s[o]);break;case 179:this.$=s[o-2],this.$.as=s[o];break;case 180:this.$=s[o-3],this.$.as=s[o];break;case 181:this.$=s[o-1],this.$.as="default";break;case 182:this.$=new n.Json({value:s[o-2]}),s[o-2].as=s[o];break;case 183:this.$=s[o-1],s[o-1].as=s[o];break;case 184:this.$=s[o-2],s[o-2].as=s[o];break;case 186:case 638:case 641:this.$=s[o-2];break;case 187:case 191:case 195:case 198:this.$=s[o-1],s[o-1].as=s[o];break;case 188:case 192:case 196:case 199:this.$=s[o-2],s[o-2].as=s[o];break;case 189:case 190:case 194:case 197:this.$=s[o],s[o].as="default";break;case 193:this.$={inserted:!0};break;case 200:var c=s[o];c=c.substr(1,c.length-2);var d,l=c.substr(-3).toUpperCase(),h=c.substr(-4).toUpperCase();if("#"==c[0])d=new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]});else if("XLS"==l||"CSV"==l||"TAB"==l)d=new n.FuncValue({funcid:l,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]});else{if("XLSX"!=h&&"JSON"!=h)throw new Error("Unknown string in FROM clause");d=new n.FuncValue({funcid:h,args:[new n.StringValue({value:c}),new n.Json({value:{headers:!0}})]})}this.$=d;break;case 201:"INFORMATION_SCHEMA"==s[o-2]?this.$=new n.FuncValue({funcid:s[o-2],args:[new n.StringValue({value:s[o]})]}):this.$=new n.Table({databaseid:s[o-2],tableid:s[o]});break;case 202:this.$=new n.Table({tableid:s[o]});break;case 203:case 204:this.$=s[o-1],s[o-1].push(s[o]);break;case 207:this.$=new n.Join(s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 208:this.$={table:s[o]};break;case 209:this.$={table:s[o-1],as:s[o]};break;case 210:this.$={table:s[o-2],as:s[o]};break;case 211:this.$={json:new n.Json({value:s[o-2],as:s[o]})};break;case 212:this.$={param:s[o-1],as:s[o]};break;case 213:this.$={param:s[o-2],as:s[o]};break;case 214:this.$={select:s[o-2],as:s[o]};break;case 215:this.$={select:s[o-3],as:s[o]};break;case 216:this.$={func:s[o],as:"default"};break;case 217:this.$={func:s[o-1],as:s[o]};break;case 218:this.$={func:s[o-2],as:s[o]};break;case 219:this.$={variable:s[o],as:"default"};break;case 220:this.$={variable:s[o-1],as:s[o]};break;case 221:this.$={variable:s[o-2],as:s[o]};break;case 222:this.$={joinmode:s[o]};break;case 223:this.$={joinmode:s[o-1],natural:!0};break;case 224:case 225:this.$="INNER";break;case 226:case 227:this.$="LEFT";break;case 228:case 229:this.$="RIGHT";break;case 230:case 231:this.$="OUTER";break;case 232:this.$="SEMI";break;case 233:this.$="ANTI";break;case 234:this.$="CROSS";break;case 235:this.$={on:s[o]};break;case 236:case 697:this.$={using:s[o]};break;case 239:this.$={where:new n.Expression({expression:s[o]})};break;case 241:this.$={group:s[o-1]},n.extend(this.$,s[o]);break;case 244:this.$=new n.GroupExpression({type:"GROUPING SETS",group:s[o-1]});break;case 245:this.$=new n.GroupExpression({type:"ROLLUP",group:s[o-1]});break;case 246:this.$=new n.GroupExpression({type:"CUBE",group:s[o-1]});break;case 249:this.$={having:s[o]};break;case 251:this.$={union:s[o]};break;case 252:this.$={unionall:s[o]};break;case 253:this.$={except:s[o]};break;case 254:this.$={intersect:s[o]};break;case 255:this.$={union:s[o],corresponding:!0};break;case 256:this.$={unionall:s[o],corresponding:!0};break;case 257:this.$={except:s[o],corresponding:!0};break;case 258:this.$={intersect:s[o],corresponding:!0};break;case 260:this.$={order:s[o]};break;case 262:this.$=s[o-2],s[o-2].push(s[o]);break;case 263:this.$=new n.Expression({expression:s[o],direction:"ASC"});break;case 264:this.$=new n.Expression({expression:s[o-1],direction:s[o].toUpperCase()});break;case 265:this.$=new n.Expression({expression:s[o-2],direction:"ASC",nocase:!0});break;case 266:this.$=new n.Expression({expression:s[o-3],direction:s[o].toUpperCase(),nocase:!0});break;case 268:this.$={limit:s[o-1]},n.extend(this.$,s[o]);break;case 269:this.$={limit:s[o-2],offset:s[o-6]};break;case 271:this.$={offset:s[o]};break;case 272:case 509:case 533:case 648:case 658:case 682:case 684:case 688:s[o-2].push(s[o]),this.$=s[o-2];break;case 274:case 276:case 278:s[o-2].as=s[o],this.$=s[o-2];break;case 275:case 277:case 279:s[o-1].as=s[o],this.$=s[o-1];break;case 281:this.$=new n.Column({columid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 282:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 283:this.$=new n.Column({columnid:s[o]});break;case 284:this.$=new n.Column({columnid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 285:case 286:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 287:this.$=new n.Column({columnid:s[o]});break;case 302:this.$=new n.DomainValueValue;break;case 303:this.$=new n.Json({value:s[o]});break;case 306:case 307:case 308:n.queries||(n.queries=[]),n.queries.push(s[o-1]),s[o-1].queriesidx=n.queries.length,this.$=s[o-1];break;case 309:this.$=s[o];break;case 310:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 311:this.$=new n.JavaScript({value:s[o].substr(2,s[o].length-4)});break;case 312:this.$=new n.JavaScript({value:'alasql.fn["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 313:this.$=new n.JavaScript({value:'alasql.aggr["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 314:this.$=new n.FuncValue({funcid:s[o],newid:!0});break;case 315:this.$=s[o],n.extend(this.$,{newid:!0});break;case 316:this.$=new n.Convert({expression:s[o-3]}),n.extend(this.$,s[o-1]);break;case 317:this.$=new n.Convert({expression:s[o-5],style:s[o-1]}),n.extend(this.$,s[o-3]);break;case 318:this.$=new n.Convert({expression:s[o-1]}),n.extend(this.$,s[o-3]);break;case 319:this.$=new n.Convert({expression:s[o-3],style:s[o-1]}),n.extend(this.$,s[o-5]);break;case 326:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 327:s[o-2].length>1&&("MAX"==s[o-4].toUpperCase()||"MIN"==s[o-4].toUpperCase())?this.$=new n.FuncValue({funcid:s[o-4],args:s[o-2]}):this.$=new n.AggrValue({aggregatorid:s[o-4].toUpperCase(),expression:s[o-2].pop(),over:s[o]});break;case 328:this.$=new n.AggrValue({aggregatorid:s[o-5].toUpperCase(),expression:s[o-2],distinct:!0,over:s[o]});break;case 329:this.$=new n.AggrValue({aggregatorid:s[o-5].toUpperCase(),expression:s[o-2],over:s[o]});break;case 331:case 332:this.$=new n.Over,n.extend(this.$,s[o-1]);break;case 333:this.$=new n.Over,n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 334:this.$={partition:s[o]};break;case 335:this.$={order:s[o]};break;case 336:this.$="SUM";break;case 337:this.$="COUNT";break;case 338:this.$="MIN";break;case 339:case 544:this.$="MAX";break;case 340:this.$="AVG";break;case 341:this.$="FIRST";break;case 342:this.$="LAST";break;case 343:this.$="AGGR";break;case 344:this.$="ARRAY";break;case 345:var f=s[o-4],p=s[o-1];p.length>1&&("MIN"==f.toUpperCase()||"MAX"==f.toUpperCase())?this.$=new n.FuncValue({funcid:f,args:p}):T.aggr[s[o-4]]?this.$=new n.AggrValue({aggregatorid:"REDUCE",funcid:f,expression:p.pop(),distinct:"DISTINCT"==s[o-2]}):this.$=new n.FuncValue({funcid:f,args:p});break;case 346:this.$=new n.FuncValue({funcid:s[o-2]});break;case 347:this.$=new n.FuncValue({funcid:"IIF",args:s[o-1]});break;case 348:this.$=new n.FuncValue({funcid:"REPLACE",args:s[o-1]});break;case 349:this.$=new n.FuncValue({funcid:"DATEADD",args:[new n.StringValue({value:s[o-5]}),s[o-3],s[o-1]]});break;case 350:this.$=new n.FuncValue({funcid:"DATEADD",args:[s[o-5],s[o-3],s[o-1]]});break;case 351:this.$=new n.FuncValue({funcid:"DATEDIFF",args:[new n.StringValue({value:s[o-5]}),s[o-3],s[o-1]]});break;case 352:this.$=new n.FuncValue({funcid:"DATEDIFF",args:[s[o-5],s[o-3],s[o-1]]});break;case 353:this.$=new n.FuncValue({funcid:"INTERVAL",args:[s[o-1],new n.StringValue({value:s[o].toLowerCase()})]});break;case 355:s[o-2].push(s[o]),this.$=s[o-2];break;case 356:this.$=new n.NumValue({value:+s[o]});break;case 357:this.$=new n.LogicValue({value:!0});break;case 358:this.$=new n.LogicValue({value:!1});break;case 359:this.$=new n.StringValue({value:s[o].substr(1,s[o].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 360:this.$=new n.StringValue({value:s[o].substr(2,s[o].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 361:this.$=new n.NullValue({value:void 0});break;case 362:this.$=new n.VarValue({variable:s[o]});break;case 363:n.exists||(n.exists=[]),this.$=new n.ExistsValue({value:s[o-1],existsidx:n.exists.length}),n.exists.push(s[o-1]);break;case 364:this.$=new n.ArrayValue({value:s[o-1]});break;case 365:case 366:this.$=new n.ParamValue({param:s[o]});break;case 367:void 0===n.question&&(n.question=0),this.$=new n.ParamValue({param:n.question++});break;case 368:void 0===n.question&&(n.question=0),this.$=new n.ParamValue({param:n.question++,array:!0});break;case 369:this.$=new n.CaseValue({expression:s[o-3],whens:s[o-2],elses:s[o-1]});break;case 370:this.$=new n.CaseValue({whens:s[o-2],elses:s[o-1]});break;case 371:case 699:case 700:this.$=s[o-1],this.$.push(s[o]);break;case 373:this.$={when:s[o-2],then:s[o]};break;case 376:case 377:this.$=new n.Op({left:s[o-2],op:"REGEXP",right:s[o]});break;case 378:this.$=new n.Op({left:s[o-2],op:"GLOB",right:s[o]});break;case 379:this.$=new n.Op({left:s[o-2],op:"LIKE",right:s[o]});break;case 380:this.$=new n.Op({left:s[o-4],op:"LIKE",right:s[o-2],escape:s[o]});break;case 381:this.$=new n.Op({left:s[o-2],op:"NOT LIKE",right:s[o]});break;case 382:this.$=new n.Op({left:s[o-4],op:"NOT LIKE",right:s[o-2],escape:s[o]});break;case 383:this.$=new n.Op({left:s[o-2],op:"||",right:s[o]});break;case 384:this.$=new n.Op({left:s[o-2],op:"+",right:s[o]});break;case 385:this.$=new n.Op({left:s[o-2],op:"-",right:s[o]});break;case 386:this.$=new n.Op({left:s[o-2],op:"*",right:s[o]});break;case 387:this.$=new n.Op({left:s[o-2],op:"/",right:s[o]});break;case 388:this.$=new n.Op({left:s[o-2],op:"%",right:s[o]});break;case 389:this.$=new n.Op({left:s[o-2],op:"^",right:s[o]});break;case 390:this.$=new n.Op({left:s[o-2],op:">>",right:s[o]});break;case 391:this.$=new n.Op({left:s[o-2],op:"<<",right:s[o]});break;case 392:this.$=new n.Op({left:s[o-2],op:"&",right:s[o]});break;case 393:this.$=new n.Op({left:s[o-2],op:"|",right:s[o]});break;case 394:case 395:case 397:this.$=new n.Op({left:s[o-2],op:"->",right:s[o]});break;case 396:this.$=new n.Op({left:s[o-4],op:"->",right:s[o-1]});break;case 398:case 399:case 401:this.$=new n.Op({left:s[o-2],op:"!",right:s[o]});break;case 400:this.$=new n.Op({left:s[o-4],op:"!",right:s[o-1]});break;case 402:this.$=new n.Op({left:s[o-2],op:">",right:s[o]});break;case 403:this.$=new n.Op({left:s[o-2],op:">=",right:s[o]});break;case 404:this.$=new n.Op({left:s[o-2],op:"<",right:s[o]});break;case 405:this.$=new n.Op({left:s[o-2],op:"<=",right:s[o]});break;case 406:this.$=new n.Op({left:s[o-2],op:"=",right:s[o]});break;case 407:this.$=new n.Op({left:s[o-2],op:"==",right:s[o]});break;case 408:this.$=new n.Op({left:s[o-2],op:"===",right:s[o]});break;case 409:this.$=new n.Op({left:s[o-2],op:"!=",right:s[o]});break;case 410:this.$=new n.Op({left:s[o-2],op:"!==",right:s[o]});break;case 411:this.$=new n.Op({left:s[o-2],op:"!===",right:s[o]});break;case 412:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 413:this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1]});break;case 414:"BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"BETWEEN",right1:s[o-2].right,right2:s[o]}):"NOT BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]}):this.$=new n.Op({left:s[o-2],op:"AND",right:s[o]});break;case 415:this.$=new n.Op({left:s[o-2],op:"OR",right:s[o]});break;case 416:this.$=new n.UniOp({op:"NOT",right:s[o]});break;case 417:this.$=new n.UniOp({op:"-",right:s[o]});break;case 418:this.$=new n.UniOp({op:"+",right:s[o]});break;case 419:this.$=new n.UniOp({op:"~",right:s[o]});break;case 420:this.$=new n.UniOp({op:"#",right:s[o]});break;case 421:this.$=new n.UniOp({right:s[o-1]});break;case 422:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 423:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1],queriesidx:n.queries.length}),
-n.queries.push(s[o-1]);break;case 424:this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1]});break;case 425:this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1]});break;case 426:this.$=new n.Op({left:s[o-3],op:"IN",right:[]});break;case 427:this.$=new n.Op({left:s[o-4],op:"NOT IN",right:[]});break;case 428:case 430:this.$=new n.Op({left:s[o-2],op:"IN",right:s[o]});break;case 429:case 431:this.$=new n.Op({left:s[o-3],op:"NOT IN",right:s[o]});break;case 432:this.$=new n.Op({left:s[o-2],op:"BETWEEN1",right:s[o]});break;case 433:this.$=new n.Op({left:s[o-2],op:"NOT BETWEEN1",right:s[o]});break;case 434:this.$=new n.Op({op:"IS",left:s[o-2],right:s[o]});break;case 435:this.$=new n.Op({op:"IS",left:s[o-2],right:new n.UniOp({op:"NOT",right:new n.NullValue({value:void 0})})});break;case 436:this.$=new n.Convert({expression:s[o-2]}),n.extend(this.$,s[o]);break;case 437:case 438:this.$=s[o];break;case 439:this.$=s[o-1];break;case 446:this.$="ALL";break;case 447:this.$="SOME";break;case 448:this.$="ANY";break;case 449:this.$=new n.Update({table:s[o-4],columns:s[o-2],where:s[o]});break;case 450:this.$=new n.Update({table:s[o-2],columns:s[o]});break;case 453:this.$=new n.SetColumn({column:s[o-2],expression:s[o]});break;case 454:this.$=new n.SetColumn({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 455:this.$=new n.Delete({table:s[o-2],where:s[o]});break;case 456:this.$=new n.Delete({table:s[o]});break;case 457:this.$=new n.Insert({into:s[o-2],values:s[o]});break;case 458:this.$=new n.Insert({into:s[o-1],values:s[o]});break;case 459:case 461:this.$=new n.Insert({into:s[o-2],values:s[o],orreplace:!0});break;case 460:case 462:this.$=new n.Insert({into:s[o-1],values:s[o],orreplace:!0});break;case 463:this.$=new n.Insert({into:s[o-2],default:!0});break;case 464:this.$=new n.Insert({into:s[o-5],columns:s[o-3],values:s[o]});break;case 465:this.$=new n.Insert({into:s[o-4],columns:s[o-2],values:s[o]});break;case 466:this.$=new n.Insert({into:s[o-1],select:s[o]});break;case 467:this.$=new n.Insert({into:s[o-1],select:s[o],orreplace:!0});break;case 468:this.$=new n.Insert({into:s[o-4],columns:s[o-2],select:s[o]});break;case 473:this.$=[s[o-1]];break;case 476:this.$=s[o-4],s[o-4].push(s[o-1]);break;case 477:case 478:case 480:case 488:this.$=s[o-2],s[o-2].push(s[o]);break;case 489:this.$=new n.CreateTable({table:s[o-4]}),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o]);break;case 490:this.$=new n.CreateTable({table:s[o]}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 492:this.$={class:!0};break;case 502:this.$={temporary:!0};break;case 504:this.$={ifnotexists:!0};break;case 505:this.$={columns:s[o-2],constraints:s[o]};break;case 506:this.$={columns:s[o]};break;case 507:this.$={as:s[o]};break;case 508:case 532:this.$=[s[o]];break;case 510:case 511:case 512:case 513:case 514:s[o].constraintid=s[o-1],this.$=s[o];break;case 517:this.$={type:"CHECK",expression:s[o-1]};break;case 518:this.$={type:"PRIMARY KEY",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 519:this.$={type:"FOREIGN KEY",columns:s[o-5],fktable:s[o-2],fkcolumns:s[o-1]};break;case 525:this.$={type:"UNIQUE",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 534:this.$=new n.ColumnDef({columnid:s[o-2]}),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 535:this.$=new n.ColumnDef({columnid:s[o-1]}),n.extend(this.$,s[o]);break;case 536:this.$=new n.ColumnDef({columnid:s[o],dbtypeid:""});break;case 537:this.$={dbtypeid:s[o-5],dbsize:s[o-3],dbprecision:+s[o-1]};break;case 538:this.$={dbtypeid:s[o-3],dbsize:s[o-1]};break;case 539:this.$={dbtypeid:s[o]};break;case 540:this.$={dbtypeid:"ENUM",enumvalues:s[o-1]};break;case 541:this.$=s[o-1],s[o-1].dbtypeid+="["+s[o]+"]";break;case 543:case 750:this.$=+s[o];break;case 545:this.$=void 0;break;case 547:n.extend(s[o-1],s[o]),this.$=s[o-1];break;case 550:this.$={primarykey:!0};break;case 551:case 552:this.$={foreignkey:{table:s[o-1],columnid:s[o]}};break;case 553:this.$={identity:{value:s[o-3],step:s[o-1]}};break;case 554:this.$={identity:{value:1,step:1}};break;case 555:case 557:this.$={default:s[o]};break;case 556:this.$={default:s[o-1]};break;case 558:this.$={null:!0};break;case 559:this.$={notnull:!0};break;case 560:this.$={check:s[o]};break;case 561:this.$={unique:!0};break;case 562:this.$={onupdate:s[o]};break;case 563:this.$={onupdate:s[o-1]};break;case 564:this.$=new n.DropTable({tables:s[o],type:s[o-2]}),n.extend(this.$,s[o-1]);break;case 568:this.$={ifexists:!0};break;case 569:this.$=new n.AlterTable({table:s[o-3],renameto:s[o]});break;case 570:this.$=new n.AlterTable({table:s[o-3],addcolumn:s[o]});break;case 571:this.$=new n.AlterTable({table:s[o-3],modifycolumn:s[o]});break;case 572:this.$=new n.AlterTable({table:s[o-5],renamecolumn:s[o-2],to:s[o]});break;case 573:this.$=new n.AlterTable({table:s[o-3],dropcolumn:s[o]});break;case 574:this.$=new n.AlterTable({table:s[o-2],renameto:s[o]});break;case 575:this.$=new n.AttachDatabase({databaseid:s[o],engineid:s[o-2].toUpperCase()});break;case 576:this.$=new n.AttachDatabase({databaseid:s[o-3],engineid:s[o-5].toUpperCase(),args:s[o-1]});break;case 577:this.$=new n.AttachDatabase({databaseid:s[o-2],engineid:s[o-4].toUpperCase(),as:s[o]});break;case 578:this.$=new n.AttachDatabase({databaseid:s[o-5],engineid:s[o-7].toUpperCase(),as:s[o],args:s[o-3]});break;case 579:this.$=new n.DetachDatabase({databaseid:s[o]});break;case 580:this.$=new n.CreateDatabase({databaseid:s[o]}),n.extend(this.$,s[o]);break;case 581:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),databaseid:s[o-1],as:s[o]}),n.extend(this.$,s[o-2]);break;case 582:this.$=new n.CreateDatabase({engineid:s[o-7].toUpperCase(),databaseid:s[o-4],args:s[o-2],as:s[o]}),n.extend(this.$,s[o-5]);break;case 583:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),as:s[o],args:[s[o-1]]}),n.extend(this.$,s[o-2]);break;case 584:this.$=void 0;break;case 586:case 587:this.$=new n.UseDatabase({databaseid:s[o]});break;case 588:this.$=new n.DropDatabase({databaseid:s[o]}),n.extend(this.$,s[o-1]);break;case 589:case 590:this.$=new n.DropDatabase({databaseid:s[o],engineid:s[o-3].toUpperCase()}),n.extend(this.$,s[o-1]);break;case 591:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1]});break;case 592:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1],unique:!0});break;case 593:this.$=new n.DropIndex({indexid:s[o]});break;case 594:this.$=new n.ShowDatabases;break;case 595:this.$=new n.ShowDatabases({like:s[o]});break;case 596:this.$=new n.ShowDatabases({engineid:s[o-1].toUpperCase()});break;case 597:this.$=new n.ShowDatabases({engineid:s[o-3].toUpperCase(),like:s[o]});break;case 598:this.$=new n.ShowTables;break;case 599:this.$=new n.ShowTables({like:s[o]});break;case 600:this.$=new n.ShowTables({databaseid:s[o]});break;case 601:this.$=new n.ShowTables({like:s[o],databaseid:s[o-2]});break;case 602:this.$=new n.ShowColumns({table:s[o]});break;case 603:this.$=new n.ShowColumns({table:s[o-2],databaseid:s[o]});break;case 604:this.$=new n.ShowIndex({table:s[o]});break;case 605:this.$=new n.ShowIndex({table:s[o-2],databaseid:s[o]});break;case 606:this.$=new n.ShowCreateTable({table:s[o]});break;case 607:this.$=new n.ShowCreateTable({table:s[o-2],databaseid:s[o]});break;case 608:this.$=new n.CreateTable({table:s[o-6],view:!0,select:s[o-1],viewcolumns:s[o-4]}),n.extend(this.$,s[o-9]),n.extend(this.$,s[o-7]);break;case 609:this.$=new n.CreateTable({table:s[o-3],view:!0,select:s[o-1]}),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-4]);break;case 613:this.$=new n.DropTable({tables:s[o],view:!0}),n.extend(this.$,s[o-1]);break;case 614:case 760:this.$=new n.ExpressionStatement({expression:s[o]});break;case 615:this.$=new n.Source({url:s[o].value});break;case 616:this.$=new n.Assert({value:s[o]});break;case 617:this.$=new n.Assert({value:s[o].value});break;case 618:this.$=new n.Assert({value:s[o],message:s[o-2]});break;case 620:case 631:case 633:this.$=s[o].value;break;case 621:case 629:this.$=+s[o].value;break;case 622:this.$=!!s[o].value;break;case 630:this.$=""+s[o].value;break;case 639:this.$={};break;case 642:this.$=[];break;case 643:n.extend(s[o-2],s[o]),this.$=s[o-2];break;case 645:this.$={},this.$[s[o-2].substr(1,s[o-2].length-2)]=s[o];break;case 646:case 647:this.$={},this.$[s[o-2]]=s[o];break;case 650:this.$=new n.SetVariable({variable:s[o-2].toLowerCase(),value:s[o]});break;case 651:this.$=new n.SetVariable({variable:s[o-1].toLowerCase(),value:s[o]});break;case 652:this.$=new n.SetVariable({variable:s[o-2],expression:s[o]});break;case 653:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o]});break;case 654:this.$=new n.SetVariable({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 655:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o],method:s[o-4]});break;case 656:this.$="@";break;case 657:this.$="$";break;case 663:this.$=!0;break;case 664:this.$=!1;break;case 665:this.$=new n.CommitTransaction;break;case 666:this.$=new n.RollbackTransaction;break;case 667:this.$=new n.BeginTransaction;break;case 668:this.$=new n.If({expression:s[o-2],thenstat:s[o-1],elsestat:s[o]}),s[o-1].exists&&(this.$.exists=s[o-1].exists),s[o-1].queries&&(this.$.queries=s[o-1].queries);break;case 669:this.$=new n.If({expression:s[o-1],thenstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 670:this.$=s[o];break;case 671:this.$=new n.While({expression:s[o-1],loopstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 672:this.$=new n.Continue;break;case 673:this.$=new n.Break;break;case 674:this.$=new n.BeginEnd({statements:s[o-1]});break;case 675:this.$=new n.Print({exprs:s[o]});break;case 676:this.$=new n.Print({select:s[o]});break;case 677:this.$=new n.Require({paths:s[o]});break;case 678:this.$=new n.Require({plugins:s[o]});break;case 679:case 680:this.$=s[o].toUpperCase();break;case 681:this.$=new n.Echo({expr:s[o]});break;case 686:this.$=new n.Declare({declares:s[o]});break;case 689:this.$={variable:s[o-1]},n.extend(this.$,s[o]);break;case 690:this.$={variable:s[o-2]},n.extend(this.$,s[o]);break;case 691:this.$={variable:s[o-3],expression:s[o]},n.extend(this.$,s[o-2]);break;case 692:this.$={variable:s[o-4],expression:s[o]},n.extend(this.$,s[o-2]);break;case 693:this.$=new n.TruncateTable({table:s[o]});break;case 694:this.$=new n.Merge,n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,{matches:s[o-1]}),n.extend(this.$,s[o]);break;case 695:case 696:this.$={into:s[o]};break;case 698:this.$={on:s[o]};break;case 703:this.$={matched:!0,action:s[o]};break;case 704:this.$={matched:!0,expr:s[o-2],action:s[o]};break;case 705:this.$={delete:!0};break;case 706:this.$={update:s[o]};break;case 707:case 708:this.$={matched:!1,bytarget:!0,action:s[o]};break;case 709:case 710:this.$={matched:!1,bytarget:!0,expr:s[o-2],action:s[o]};break;case 711:this.$={matched:!1,bysource:!0,action:s[o]};break;case 712:this.$={matched:!1,bysource:!0,expr:s[o-2],action:s[o]};break;case 713:this.$={insert:!0,values:s[o]};break;case 714:this.$={insert:!0,values:s[o],columns:s[o-3]};break;case 715:this.$={insert:!0,defaultvalues:!0};break;case 716:this.$={insert:!0,defaultvalues:!0,columns:s[o-3]};break;case 718:this.$={output:{columns:s[o]}};break;case 719:this.$={output:{columns:s[o-3],intovar:s[o],method:s[o-1]}};break;case 720:this.$={output:{columns:s[o-2],intotable:s[o]}};break;case 721:this.$={output:{columns:s[o-5],intotable:s[o-3],intocolumns:s[o-1]}};break;case 722:this.$=new n.CreateVertex({class:s[o-3],sharp:s[o-2],name:s[o-1]}),n.extend(this.$,s[o]);break;case 725:this.$={sets:s[o]};break;case 726:this.$={content:s[o]};break;case 727:this.$={select:s[o]};break;case 728:this.$=new n.CreateEdge({from:s[o-3],to:s[o-1],name:s[o-5]}),n.extend(this.$,s[o]);break;case 729:this.$=new n.CreateGraph({graph:s[o]});break;case 730:this.$=new n.CreateGraph({from:s[o]});break;case 733:this.$=s[o-2],s[o-1]&&(this.$.json=new n.Json({value:s[o-1]})),s[o]&&(this.$.as=s[o]);break;case 734:this.$={source:s[o-6],target:s[o]},s[o-3]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-2]&&(this.$.as=s[o-2]),n.extend(this.$,s[o-4]);break;case 735:this.$={source:s[o-5],target:s[o]},s[o-2]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-1]&&(this.$.as=s[o-2]);break;case 736:this.$={source:s[o-2],target:s[o]};break;case 740:this.$={vars:s[o],method:s[o-1]};break;case 743:case 744:var b=s[o-1];this.$={prop:s[o-3],sharp:s[o-2],name:void 0===b?void 0:b.substr(1,b.length-2),class:s[o]};break;case 745:var E=s[o-1];this.$={sharp:s[o-2],name:void 0===E?void 0:E.substr(1,E.length-2),class:s[o]};break;case 746:var g=s[o-1];this.$={name:void 0===g?void 0:g.substr(1,g.length-2),class:s[o]};break;case 747:this.$={class:s[o]};break;case 753:this.$=new n.AddRule({left:s[o-2],right:s[o]});break;case 754:this.$=new n.AddRule({right:s[o]});break;case 757:this.$=new n.Term({termid:s[o]});break;case 758:this.$=new n.Term({termid:s[o-3],args:s[o-1]});break;case 761:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-5],action:s[o-4],table:s[o-2],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 762:this.$=new n.CreateTrigger({trigger:s[o-5],when:s[o-4],action:s[o-3],table:s[o-1],funcid:s[o]});break;case 763:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-4],action:s[o-3],table:s[o-5],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 764:case 765:case 767:this.$="AFTER";break;case 766:this.$="BEFORE";break;case 768:this.$="INSTEADOF";break;case 769:this.$="INSERT";break;case 770:this.$="DELETE";break;case 771:this.$="UPDATE";break;case 772:this.$=new n.DropTrigger({trigger:s[o]});break;case 773:this.$=new n.Reindex({indexid:s[o]});break;case 1047:case 1067:case 1069:case 1071:case 1075:case 1077:case 1079:case 1081:case 1083:case 1085:this.$=[];break;case 1048:case 1062:case 1064:case 1068:case 1070:case 1072:case 1076:case 1078:case 1080:case 1082:case 1084:case 1086:s[o-1].push(s[o]);break;case 1061:case 1063:this.$=[s[o]]}},table:[t([10,602,764],r,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:n,4:a,5:s,14:i,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{1:[3]},{10:[1,105],11:106,602:Y,764:W},t(X,[2,8]),t(X,[2,9]),t(K,[2,12]),t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:n,4:a,5:s,15:[1,110],53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,14]),t(K,[2,15]),t(K,[2,16]),t(K,[2,17]),t(K,[2,18]),t(K,[2,19]),t(K,[2,20]),t(K,[2,21]),t(K,[2,22]),t(K,[2,23]),t(K,[2,24]),t(K,[2,25]),t(K,[2,26]),t(K,[2,27]),t(K,[2,28]),t(K,[2,29]),t(K,[2,30]),t(K,[2,31]),t(K,[2,32]),t(K,[2,33]),t(K,[2,34]),t(K,[2,35]),t(K,[2,36]),t(K,[2,37]),t(K,[2,38]),t(K,[2,39]),t(K,[2,40]),t(K,[2,41]),t(K,[2,42]),t(K,[2,43]),t(K,[2,44]),t(K,[2,45]),t(K,[2,46]),t(K,[2,47]),t(K,[2,48]),t(K,[2,49]),t(K,[2,50]),t(K,[2,51]),t(K,[2,52]),t(K,[2,53]),t(K,[2,54]),t(K,[2,55]),t(K,[2,56]),t(K,[2,57]),t(K,[2,58]),t(K,[2,59]),t(K,[2,60]),t(K,[2,61]),t(K,[2,62]),t(K,[2,63]),t(K,[2,64]),t(K,[2,65]),t(K,[2,66]),t(K,[2,67]),{353:[1,111]},{2:n,3:112,4:a,5:s},{2:n,3:114,4:a,5:s,156:Q,200:113,290:z,291:Z,292:ee,293:te},t(re,[2,501],{3:121,348:125,2:n,4:a,5:s,134:ne,135:ae,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:se,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:n,3:138,4:a,5:s,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:145,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Be,je,{340:204,171:[1,205],198:He}),t(Be,je,{340:207,198:He}),{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve,453:208},{2:n,3:221,4:a,5:s},{353:[1,222]},t(Xe,[2,1043],{80:223,106:224,107:[1,225]}),t(Ke,[2,1047],{90:226}),{2:n,3:230,4:a,5:s,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:n,3:236,4:a,5:s,73:234,75:235},t([306,602,764],r,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:n,4:a,5:s,14:i,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,435:[1,237],436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{435:[1,239]},{435:[1,240]},{2:n,3:242,4:a,5:s,405:[1,241]},{2:n,3:244,4:a,5:s,199:243},t(Qe,[2,311]),{113:245,132:ue,296:Le},{2:n,3:114,4:a,5:s,113:251,131:oe,132:[1,248],143:le,144:246,145:ze,152:fe,156:Q,181:ge,196:250,200:255,201:254,257:252,258:253,265:Ze,274:247,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:257,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,672]),t(K,[2,673]),{2:n,3:168,4:a,5:s,40:259,56:165,77:ie,79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:258,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:266,4:a,5:s,113:263,132:ue,296:Le,444:261,445:262,446:264,447:et},{2:n,3:267,4:a,5:s,143:tt,145:rt,431:268},{2:n,3:168,4:a,5:s,56:165,77:ie,94:271,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{505:[1,272]},{2:n,3:100,4:a,5:s,504:274,506:273},{2:n,3:114,4:a,5:s,156:Q,200:275,290:z,291:Z,292:ee,293:te},{2:n,3:168,4:a,5:s,56:165,77:ie,94:276,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(nt,at,{186:280,164:[1,279],185:[1,277],187:[1,278],195:st}),t(it,[2,757],{77:[1,282]}),t([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),t(ot,[2,1]),t(ot,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(ut,[2,1041]),t(ut,[2,1042]),t(X,[2,10]),{16:[1,559]},{2:n,3:244,4:a,5:s,199:560},{405:[1,561]},t(K,[2,760]),{77:ct},{77:[1,563]},{77:lt},{77:[1,565]},{77:[1,566]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:567,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Be,ht,{350:568,156:dt}),{405:[1,570]},{2:n,3:571,4:a,5:s},{193:[1,572]},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:ue,183:[2,1141],296:Le,471:590},t(Et,[2,1135],{465:592,3:593,2:n,4:a,5:s}),{2:n,3:594,4:a,5:s},{4:[1,595]},{4:[1,596]},t(re,[2,502]),t(K,[2,686],{74:[1,597]}),t(gt,[2,687]),{2:n,3:598,4:a,5:s},{2:n,3:244,4:a,5:s,199:599},{2:n,3:600,4:a,5:s},t(Be,mt,{398:601,156:vt}),{405:[1,603]},{2:n,3:604,4:a,5:s},t(Be,mt,{398:605,156:vt}),t(Be,mt,{398:606,156:vt}),{2:n,3:607,4:a,5:s},t(St,[2,1129]),t(St,[2,1130]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:n,4:a,5:s,53:o,72:u,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:Rt,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:h,154:$t,156:d,170:Mt,171:Ut,179:_t,180:Ft,189:f,266:p,267:b,290:E,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Qe,[2,288]),t(Qe,[2,289]),t(Qe,[2,290]),t(Qe,[2,291]),t(Qe,[2,292]),t(Qe,[2,293]),t(Qe,[2,294]),t(Qe,[2,295]),t(Qe,[2,296]),t(Qe,[2,297]),t(Qe,[2,298]),t(Qe,[2,299]),t(Qe,[2,300]),t(Qe,[2,301]),t(Qe,[2,302]),t(Qe,[2,303]),t(Qe,[2,304]),t(Qe,[2,305]),{2:n,3:168,4:a,5:s,26:654,27:653,36:649,40:648,56:165,77:ie,79:75,89:c,94:651,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:me,266:p,267:[1,655],270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:[1,652],291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,339:v,419:190,420:Ge,424:Ve},t(Qe,[2,309]),t(Qe,[2,310]),{77:[1,656]},t([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ar,{77:ct,116:[1,657]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:658,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:659,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:661,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:662,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve
-},t(Qe,[2,283]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),t(sr,[2,357]),t(sr,[2,358]),t(sr,ir),t(sr,[2,360]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:n,3:664,4:a,5:s,131:[1,665],301:663},{2:n,3:666,4:a,5:s},t(sr,[2,367]),t(sr,[2,368]),{2:n,3:667,4:a,5:s,77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},{77:[1,674]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:675,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,304:676,307:677,308:ur,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,679]},{77:[1,680]},t(cr,[2,624]),{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,300:[1,683],302:_e,419:190,420:Ge,421:681,422:684,423:686,424:Ve,427:682},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:696,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:697,4:a,5:s,156:Q,200:698,290:z,291:Z,292:ee,293:te},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:n,3:704,4:a,5:s,131:hr,132:dr,425:699,426:[1,700],428:701},{2:n,3:244,4:a,5:s,199:705},{290:[1,706]},t(Be,[2,472]),{2:n,3:244,4:a,5:s,199:707},{231:[1,709],454:708},{231:[2,695]},{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:710,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{40:711,79:75,89:c,184:99,189:f},t(fr,[2,1091],{210:712,76:[1,713]}),t(pr,[2,185],{3:714,2:n,4:a,5:s,76:[1,715],154:[1,716]}),t(pr,[2,189],{3:717,2:n,4:a,5:s,76:[1,718]}),t(pr,[2,190],{3:719,2:n,4:a,5:s,76:[1,720]}),t(pr,[2,193]),t(pr,[2,194],{3:721,2:n,4:a,5:s,76:[1,722]}),t(pr,[2,197],{3:723,2:n,4:a,5:s,76:[1,724]}),t([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],br,{77:ct,116:Er}),t([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),t(K,[2,773]),{2:n,3:244,4:a,5:s,199:726},t(gr,mr,{81:727,198:vr}),t(Xe,[2,1044]),t(Sr,[2,1057],{108:729,190:[1,730]}),t([10,78,183,306,310,602,764],mr,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,198:vr,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),{353:[1,782]},{183:[1,783]},t(K,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},t(K,[2,598],{112:[1,787],183:[1,788]}),{2:n,3:244,4:a,5:s,199:789},{40:790,74:[1,791],79:75,89:c,184:99,189:f},t(dn,[2,70]),{76:[1,792]},t(K,[2,667]),{11:106,306:[1,793],602:Y,764:W},t(K,[2,665]),t(K,[2,666]),{2:n,3:794,4:a,5:s},t(K,[2,587]),{146:[1,795]},t([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],br,{116:Er}),t(K,[2,615]),t(K,[2,616]),t(K,[2,617]),t(K,ir,{74:[1,796]}),{77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},t(fn,[2,320]),t(fn,[2,321]),t(fn,[2,322]),t(fn,[2,323]),t(fn,[2,324]),t(fn,[2,325]),t(fn,[2,326]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:n,4:a,5:s,53:o,72:u,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:Rt,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:h,154:$t,156:d,170:Mt,171:Ut,179:_t,180:Ft,189:f,266:p,267:b,290:E,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,675],{74:pn}),t(K,[2,676]),t(bn,[2,354],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,677],{74:[1,800]}),t(K,[2,678],{74:[1,801]}),t(gt,[2,683]),t(gt,[2,685]),t(gt,[2,679]),t(gt,[2,680]),{114:807,115:yt,116:Nt,124:[1,802],230:gn,429:803,430:804,433:mn},{2:n,3:808,4:a,5:s},t(Be,[2,656]),t(Be,[2,657]),t(K,[2,614],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:100,4:a,5:s,504:274,506:809},t(K,[2,754],{74:vn}),t(Sn,[2,756]),t(K,[2,759]),t(K,[2,681],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Tn,at,{186:811,195:st}),t(Tn,at,{186:812,195:st}),t(Tn,at,{186:813,195:st}),t(An,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{77:[1,819],131:oe,196:818},{2:n,3:100,4:a,5:s,504:274,506:820},t(yn,[2,153]),t(yn,[2,154]),t(yn,[2,155]),t(yn,[2,156]),t(yn,[2,157]),t(yn,[2,158]),t(yn,[2,159]),t(ot,[2,3]),t(ot,[2,774]),t(ot,[2,775]),t(ot,[2,776]),t(ot,[2,777]),t(ot,[2,778]),t(ot,[2,779]),t(ot,[2,780]),t(ot,[2,781]),t(ot,[2,782]),t(ot,[2,783]),t(ot,[2,784]),t(ot,[2,785]),t(ot,[2,786]),t(ot,[2,787]),t(ot,[2,788]),t(ot,[2,789]),t(ot,[2,790]),t(ot,[2,791]),t(ot,[2,792]),t(ot,[2,793]),t(ot,[2,794]),t(ot,[2,795]),t(ot,[2,796]),t(ot,[2,797]),t(ot,[2,798]),t(ot,[2,799]),t(ot,[2,800]),t(ot,[2,801]),t(ot,[2,802]),t(ot,[2,803]),t(ot,[2,804]),t(ot,[2,805]),t(ot,[2,806]),t(ot,[2,807]),t(ot,[2,808]),t(ot,[2,809]),t(ot,[2,810]),t(ot,[2,811]),t(ot,[2,812]),t(ot,[2,813]),t(ot,[2,814]),t(ot,[2,815]),t(ot,[2,816]),t(ot,[2,817]),t(ot,[2,818]),t(ot,[2,819]),t(ot,[2,820]),t(ot,[2,821]),t(ot,[2,822]),t(ot,[2,823]),t(ot,[2,824]),t(ot,[2,825]),t(ot,[2,826]),t(ot,[2,827]),t(ot,[2,828]),t(ot,[2,829]),t(ot,[2,830]),t(ot,[2,831]),t(ot,[2,832]),t(ot,[2,833]),t(ot,[2,834]),t(ot,[2,835]),t(ot,[2,836]),t(ot,[2,837]),t(ot,[2,838]),t(ot,[2,839]),t(ot,[2,840]),t(ot,[2,841]),t(ot,[2,842]),t(ot,[2,843]),t(ot,[2,844]),t(ot,[2,845]),t(ot,[2,846]),t(ot,[2,847]),t(ot,[2,848]),t(ot,[2,849]),t(ot,[2,850]),t(ot,[2,851]),t(ot,[2,852]),t(ot,[2,853]),t(ot,[2,854]),t(ot,[2,855]),t(ot,[2,856]),t(ot,[2,857]),t(ot,[2,858]),t(ot,[2,859]),t(ot,[2,860]),t(ot,[2,861]),t(ot,[2,862]),t(ot,[2,863]),t(ot,[2,864]),t(ot,[2,865]),t(ot,[2,866]),t(ot,[2,867]),t(ot,[2,868]),t(ot,[2,869]),t(ot,[2,870]),t(ot,[2,871]),t(ot,[2,872]),t(ot,[2,873]),t(ot,[2,874]),t(ot,[2,875]),t(ot,[2,876]),t(ot,[2,877]),t(ot,[2,878]),t(ot,[2,879]),t(ot,[2,880]),t(ot,[2,881]),t(ot,[2,882]),t(ot,[2,883]),t(ot,[2,884]),t(ot,[2,885]),t(ot,[2,886]),t(ot,[2,887]),t(ot,[2,888]),t(ot,[2,889]),t(ot,[2,890]),t(ot,[2,891]),t(ot,[2,892]),t(ot,[2,893]),t(ot,[2,894]),t(ot,[2,895]),t(ot,[2,896]),t(ot,[2,897]),t(ot,[2,898]),t(ot,[2,899]),t(ot,[2,900]),t(ot,[2,901]),t(ot,[2,902]),t(ot,[2,903]),t(ot,[2,904]),t(ot,[2,905]),t(ot,[2,906]),t(ot,[2,907]),t(ot,[2,908]),t(ot,[2,909]),t(ot,[2,910]),t(ot,[2,911]),t(ot,[2,912]),t(ot,[2,913]),t(ot,[2,914]),t(ot,[2,915]),t(ot,[2,916]),t(ot,[2,917]),t(ot,[2,918]),t(ot,[2,919]),t(ot,[2,920]),t(ot,[2,921]),t(ot,[2,922]),t(ot,[2,923]),t(ot,[2,924]),t(ot,[2,925]),t(ot,[2,926]),t(ot,[2,927]),t(ot,[2,928]),t(ot,[2,929]),t(ot,[2,930]),t(ot,[2,931]),t(ot,[2,932]),t(ot,[2,933]),t(ot,[2,934]),t(ot,[2,935]),t(ot,[2,936]),t(ot,[2,937]),t(ot,[2,938]),t(ot,[2,939]),t(ot,[2,940]),t(ot,[2,941]),t(ot,[2,942]),t(ot,[2,943]),t(ot,[2,944]),t(ot,[2,945]),t(ot,[2,946]),t(ot,[2,947]),t(ot,[2,948]),t(ot,[2,949]),t(ot,[2,950]),t(ot,[2,951]),t(ot,[2,952]),t(ot,[2,953]),t(ot,[2,954]),t(ot,[2,955]),t(ot,[2,956]),t(ot,[2,957]),t(ot,[2,958]),t(ot,[2,959]),t(ot,[2,960]),t(ot,[2,961]),t(ot,[2,962]),t(ot,[2,963]),t(ot,[2,964]),t(ot,[2,965]),t(ot,[2,966]),t(ot,[2,967]),t(ot,[2,968]),t(ot,[2,969]),t(ot,[2,970]),t(ot,[2,971]),t(ot,[2,972]),t(ot,[2,973]),t(ot,[2,974]),t(ot,[2,975]),t(ot,[2,976]),t(ot,[2,977]),t(ot,[2,978]),t(ot,[2,979]),t(ot,[2,980]),t(ot,[2,981]),t(ot,[2,982]),t(ot,[2,983]),t(ot,[2,984]),t(ot,[2,985]),t(ot,[2,986]),t(ot,[2,987]),t(ot,[2,988]),t(ot,[2,989]),t(ot,[2,990]),t(ot,[2,991]),t(ot,[2,992]),t(ot,[2,993]),t(ot,[2,994]),t(ot,[2,995]),t(ot,[2,996]),t(ot,[2,997]),t(ot,[2,998]),t(ot,[2,999]),t(ot,[2,1e3]),t(ot,[2,1001]),t(ot,[2,1002]),t(ot,[2,1003]),t(ot,[2,1004]),t(ot,[2,1005]),t(ot,[2,1006]),t(ot,[2,1007]),t(ot,[2,1008]),t(ot,[2,1009]),t(ot,[2,1010]),t(ot,[2,1011]),t(ot,[2,1012]),t(ot,[2,1013]),t(ot,[2,1014]),t(ot,[2,1015]),t(ot,[2,1016]),t(ot,[2,1017]),t(ot,[2,1018]),t(ot,[2,1019]),t(ot,[2,1020]),t(ot,[2,1021]),t(ot,[2,1022]),t(ot,[2,1023]),t(ot,[2,1024]),t(ot,[2,1025]),t(ot,[2,1026]),t(ot,[2,1027]),t(ot,[2,1028]),t(ot,[2,1029]),t(ot,[2,1030]),t(ot,[2,1031]),t(ot,[2,1032]),t(ot,[2,1033]),t(ot,[2,1034]),t(ot,[2,1035]),t(ot,[2,1036]),t(ot,[2,1037]),t(ot,[2,1038]),t(ot,[2,1039]),t(ot,[2,1040]),t(X,[2,7]),t(X,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:n,3:826,4:a,5:s},t(Tn,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:832,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:833,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:834,4:a,5:s,132:[1,835]},{2:n,3:836,4:a,5:s,132:[1,837]},{2:n,3:838,4:a,5:s,99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:839,4:a,5:s},{154:[1,840]},t(Nn,ht,{350:841,156:dt}),{230:[1,842]},{2:n,3:843,4:a,5:s},t(K,[2,729],{74:Cn}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:845,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Sn,[2,732]),t(Rn,[2,1143],{419:190,476:846,144:847,139:On,141:On,145:ze,420:Ge,424:Ve}),{139:[1,848],141:[1,849]},t(wn,In,{490:851,493:852,77:[1,850],137:pt}),t(xn,[2,1167],{494:853,132:[1,854]}),t(Dn,[2,1171],{496:855,497:856,152:bt}),t(Dn,[2,747]),t(kn,[2,739]),{2:n,3:857,4:a,5:s,131:[1,858]},{2:n,3:859,4:a,5:s},{2:n,3:860,4:a,5:s},t(Be,ht,{350:861,156:dt}),t(Be,ht,{350:862,156:dt}),t(St,[2,491]),t(St,[2,492]),{183:[1,863]},{183:[2,1142]},t(Ln,[2,1137],{466:864,469:865,137:[1,866]}),t(Et,[2,1136]),t($n,Mn,{510:867,95:Un,230:[1,868],514:_n,515:Fn,516:Pn}),{76:[1,873]},{76:[1,874]},{145:se,450:875},{4:qn,7:879,76:[1,877],272:876,387:878,389:Gn},t(K,[2,456],{128:[1,882]}),t(K,[2,579]),{2:n,3:883,4:a,5:s},{298:[1,884]},t(Nn,mt,{398:885,156:vt}),t(K,[2,593]),{2:n,3:244,4:a,5:s,199:887,399:886},{2:n,3:244,4:a,5:s,199:887,399:888},t(K,[2,772]),t(X,[2,669],{438:889,310:[1,890]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:891,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:892,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:893,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:894,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:895,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:896,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:897,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:898,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:899,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:900,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:901,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:902,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:903,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:904,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:905,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:906,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:907,4:a,5:s,77:[1,909],131:oe,156:Q,196:908,200:910,290:z,291:Z,292:ee,293:te},{2:n,3:911,4:a,5:s,77:[1,913],131:oe,156:Q,196:912,200:914,290:z,291:Z,292:ee,293:te},t(Vn,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),t(Vn,Bn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:920,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:921,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Vn,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:923,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:924,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:929,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:930,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:695,4:a,5:s,77:[1,931],111:934,145:jn,156:Q,200:935,202:933,290:z,291:Z,292:ee,293:te,329:932},{99:[1,937],297:[1,938]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:939,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:940,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:941,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:942,387:878,389:Gn},t(Hn,[2,88]),t(Hn,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(Be,je,{340:207,77:lt,198:He}),{78:[2,1107]},{78:[2,1108]},{134:ne,135:ae},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:947,152:fe,154:pe,156:Q,158:167,164:[1,949],179:be,180:Ee,181:ge,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,
-265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:950,4:a,5:s,149:Jn,180:[1,952]},t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t(Yn,[2,417],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Yn,[2,418],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Wn,[2,419],{114:625,327:637,316:Bt}),t(Wn,[2,420],{114:625,327:637,316:Bt}),t(sr,[2,365]),t(sr,[2,1113]),t(sr,[2,1114]),t(sr,[2,366]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:953,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(cr,[2,620]),t(cr,[2,621]),t(cr,[2,622]),t(cr,[2,623]),t(cr,[2,625]),{40:954,79:75,89:c,184:99,189:f},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,304:955,307:677,308:ur,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{305:956,306:Xn,307:957,308:ur,310:Kn},t(Qn,[2,372]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:959,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:960,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:961,387:878,389:Gn},t(cr,[2,626]),{74:[1,963],300:[1,962]},t(cr,[2,642]),t(zn,[2,649]),t(Zn,[2,627]),t(Zn,[2,628]),t(Zn,[2,629]),t(Zn,[2,630]),t(Zn,[2,631]),t(Zn,[2,632]),t(Zn,[2,633]),t(Zn,[2,634]),t(Zn,[2,635]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:964,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ar,{77:ct,116:ea}),{74:pn,300:[1,966]},t(ta,[2,314],{77:ct}),t(Qe,[2,315]),{74:[1,968],426:[1,967]},t(cr,[2,639]),t(ra,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:972,342:973,343:[1,974],344:aa,419:190,420:Ge,424:Ve},t(Be,je,{340:981,198:He}),{77:sa,143:le,144:979,145:ze,149:na,152:fe,181:ge,201:980,302:_e,341:982,342:983,344:aa,419:190,420:Ge,424:Ve},{230:[1,986],455:985},{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:987,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{231:[2,696]},{78:[1,988]},t(pr,[2,1093],{211:989,3:990,2:n,4:a,5:s}),t(fr,[2,1092]),t(pr,[2,183]),{2:n,3:991,4:a,5:s},{212:[1,992]},t(pr,[2,187]),{2:n,3:993,4:a,5:s},t(pr,[2,191]),{2:n,3:994,4:a,5:s},t(pr,[2,195]),{2:n,3:995,4:a,5:s},t(pr,[2,198]),{2:n,3:996,4:a,5:s},{2:n,3:997,4:a,5:s},{148:[1,998]},t(ia,[2,172],{82:999,183:[1,1e3]}),{2:n,3:219,4:a,5:s,132:[1,1005],143:le,145:[1,1006],152:fe,156:Q,181:ge,199:1001,200:1002,201:1003,202:1004,290:z,291:Z,292:ee,293:te,302:_e},{2:n,3:1011,4:a,5:s,109:1007,110:1008,111:1009,112:oa},t(Sr,[2,1058]),t(ua,[2,1049],{91:1012,182:1013,183:[1,1014]}),t(Ke,[2,1048],{153:1015,179:ca,180:la,181:ha}),t([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},t(da,[2,93]),{2:n,3:1021,4:a,5:s},t(da,[2,95]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1022,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1023,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1025,118:Cr,122:Rr,123:Or,124:wr,125:1024,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},t(da,[2,104]),t(da,[2,105]),t(da,[2,106]),t(da,[2,107]),t(da,[2,108]),t(da,[2,109]),{2:n,3:1030,4:a,5:s},{2:n,3:1031,4:a,5:s,133:[1,1032]},t(da,[2,113]),t(da,[2,114]),t(da,[2,115]),t(da,[2,116]),t(da,[2,117]),t(da,[2,118]),{2:n,3:1033,4:a,5:s,77:or,113:669,131:oe,132:ue,143:le,152:fe,181:ge,196:670,201:672,257:671,294:De,295:ke,296:Le,302:_e,419:673,424:Ve},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},t(da,[2,123]),{77:[1,1037]},{2:n,3:1038,4:a,5:s},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:n,3:244,4:a,5:s,199:1054},{2:n,3:244,4:a,5:s,199:1055},{113:1056,132:ue,296:Le},t(K,[2,596],{112:[1,1057]}),{2:n,3:244,4:a,5:s,199:1058},{113:1059,132:ue,296:Le},{2:n,3:1060,4:a,5:s},t(K,[2,693]),t(K,[2,68]),{2:n,3:236,4:a,5:s,75:1061},{77:[1,1062]},t(K,[2,674]),t(K,[2,586]),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1063,336:1064,337:1066},{144:1069,145:ze,419:190,420:Ge,424:Ve},t(K,[2,671]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1070,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Vn,Bn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:n,4:a,5:s,77:ie,131:oe,132:ue,137:ce,143:le,145:he,149:de,152:fe,154:pe,156:Q,179:be,180:Ee,181:ge,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,420:Ge,424:Ve}),{113:1072,132:ue,296:Le},{2:n,3:266,4:a,5:s,446:1073,447:et},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1075,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,230:gn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve,429:1074,433:mn},t(K,[2,651]),{114:1077,115:yt,116:Nt,124:[1,1076]},t(K,[2,663]),t(K,[2,664]),{2:n,3:1079,4:a,5:s,77:ba,131:Ea,432:1078},{114:807,115:yt,116:Nt,124:[1,1082],430:1083},t(K,[2,753],{74:vn}),{2:n,3:100,4:a,5:s,504:1084},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1085,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1086,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1087,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(An,[2,151]),t(An,[2,1088],{74:ga}),t(ma,[2,273]),t(ma,[2,280],{114:625,327:637,3:1090,113:1092,2:n,4:a,5:s,76:[1,1089],99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,131:[1,1091],132:ue,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,296:Le,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(nt,[2,1089],{197:1093,765:[1,1094]}),{131:oe,196:1095},{74:vn,78:[1,1096]},t(X,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},t(K,[2,575],{76:[1,1103],77:[1,1102]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1104,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(sr,[2,346]),t(Tn,[2,1112]),t(Tn,[2,1109]),t(Tn,[2,1110]),{74:pn,78:[1,1105]},{74:pn,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},t(sr,[2,353]),t(K,[2,580]),{298:[1,1111]},{2:n,3:1112,4:a,5:s,113:1113,132:ue,296:Le},{2:n,3:244,4:a,5:s,199:1114},{230:[1,1115]},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},t(K,[2,730],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Sn,[2,1145],{477:1117,483:1118,76:va}),t(Rn,[2,1144]),{2:n,3:1122,4:a,5:s,132:ft,137:pt,144:1121,145:ze,152:bt,419:190,420:Ge,424:Ve,475:1120,493:579,497:581},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:n,3:578,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},t(xn,[2,1163],{491:1126,132:[1,1127]}),t(wn,[2,1162]),t(Dn,[2,1169],{495:1128,497:1129,152:bt}),t(xn,[2,1168]),t(Dn,[2,746]),t(Dn,[2,1172]),t(wn,[2,749]),t(wn,[2,750]),t(Dn,[2,748]),t(kn,[2,740]),{2:n,3:244,4:a,5:s,199:1130},{2:n,3:244,4:a,5:s,199:1131},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1132,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Sa,[2,1139],{467:1133,113:1134,132:ue,296:Le}),t(Ln,[2,1138]),{2:n,3:1135,4:a,5:s},{335:Ta,338:Aa,339:ya,511:1136},{2:n,3:244,4:a,5:s,199:1140},t($n,[2,765]),t($n,[2,766]),t($n,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},t(gt,[2,688]),t(gt,[2,689],{124:[1,1144]}),{4:qn,7:879,272:1145,387:878,389:Gn},t([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),t([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},t(Na,[2,4]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1150,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,588]),t(Nn,[2,568]),{2:n,3:1151,4:a,5:s,113:1152,132:ue,296:Le},t(K,[2,564],{74:Ca}),t(gt,[2,566]),t(K,[2,613],{74:Ca}),t(K,[2,668]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Ra,[2,376],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Wn,[2,377],{114:625,327:637,316:Bt}),t(Ra,[2,378],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Oa,[2,379],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,314:[1,1155],316:Bt,317:jt,318:Ht,319:Jt}),t(Oa,[2,381],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,314:[1,1156],316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,383],{114:625,327:637}),t(Yn,[2,384],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(Yn,[2,385],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,180:Ft,312:qt,316:Bt}),t(wa,[2,386],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t(wa,[2,387],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t(wa,[2,388],{114:625,327:637,115:yt,116:Nt,123:Ct,136:wt,312:qt,316:Bt}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:yt,116:Nt,136:wt,312:qt,316:Bt}),t(Ia,[2,390],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,391],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,392],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(Ia,[2,393],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,179:_t,180:Ft,312:qt,316:Bt,317:jt}),t(ta,[2,394],{77:ct}),t(Qe,[2,395]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1157,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,397]),t(ta,[2,398],{77:ct}),t(Qe,[2,399]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1158,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,401]),t(xa,[2,402],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,403],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,404],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,405],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Da,{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,407],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,408],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,409],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,410],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(xa,[2,411],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},t(ka,[2,414],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr}),{2:n,3:168,4:a,5:s,40:1160,56:165,77:ie,78:[1,1162],79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1161,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,428]),t(Qe,[2,430]),t(Qe,[2,437]),t(Qe,[2,438]),{2:n,3:667,4:a,5:s,77:[1,1163]},{2:n,3:695,4:a,5:s,77:[1,1164],111:934,145:jn,156:Q,200:935,202:1166,290:z,291:Z,292:ee,293:te,329:1165},t(Qe,[2,435]),t(ka,[2,432],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t(ka,[2,433],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,332:rr}),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,436]),t(Qe,[2,306]),t(Qe,[2,307]),t(Qe,[2,308]),t(Qe,[2,421]),{74:pn,78:[1,1167]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1168,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1169,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,La),t($a,[2,286]),t(Qe,[2,282]),{78:[1,1171],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1172]},{305:1173,306:Xn,307:957,308:ur,310:Kn},{306:[1,1174]},t(Qn,[2,371]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1175,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1176],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{76:[1,1177],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1178]},t(cr,[2,640]),{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,300:[1,1179],302:_e,419:190,420:Ge,422:1180,423:686,424:Ve},{78:[1,1181],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1182,4:a,5:s,149:Jn},t(Qe,[2,364]),t(cr,[2,637]),{2:n,3:704,4:a,5:s,131:hr,132:dr,426:[1,1183],428:1184},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1185,423:686,424:Ve},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1186,423:686,424:Ve},{2:n,3:695,4:a,5:s,77:lr,111:690,113:688,131:oe,132:ue,143:le,144:685,145:ze,152:fe,156:Q,181:ge,196:687,200:693,201:692,257:689,258:691,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e,419:190,420:Ge,422:1187,423:686,424:Ve},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1188,419:190,420:Ge,424:Ve},t(Ma,[2,458],{74:Ua}),{149:na,341:1190,344:aa},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,100:1191,111:1193,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1192,419:190,420:Ge,424:Ve},t(Ma,[2,466]),t(_a,[2,469]),t(_a,[2,470]),t(Fa,[2,474]),t(Fa,[2,475]),{2:n,3:244,4:a,5:s,199:1195},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1196,419:190,420:Ge,424:Ve},t(Ma,[2,462],{74:Ua}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1192,419:190,420:Ge,424:Ve},{308:Pa,456:1197,458:1198,459:1199},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1201,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,
-196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{230:[2,697]},t(pr,[2,181],{3:1202,2:n,4:a,5:s,76:[1,1203]}),t(pr,[2,182]),t(pr,[2,1094]),t(pr,[2,184]),t(pr,[2,186]),t(pr,[2,188]),t(pr,[2,192]),t(pr,[2,196]),t(pr,[2,199]),t([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:n,3:1204,4:a,5:s},t(qa,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:n,3:219,4:a,5:s,77:[1,1210],132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,203:1209,209:1211,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(gr,[2,164]),t(gr,[2,165]),t(gr,[2,166]),t(gr,[2,167]),t(gr,[2,168]),{2:n,3:667,4:a,5:s},t(Xe,[2,83],{74:[1,1212]}),t(Ga,[2,85]),t(Ga,[2,86]),{113:1213,132:ue,296:Le},t([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],ar,{116:ea}),t(ua,[2,73]),t(ua,[2,1050]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1214,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,126]),t(da,[2,144]),t(da,[2,145]),t(da,[2,146]),{2:n,3:168,4:a,5:s,56:165,77:ie,78:[2,1065],94:260,111:149,113:153,127:1215,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1216,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1217]},t(da,[2,94]),t([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:Tt,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1218],112:Nr,114:736,115:yt,116:Nt,117:1219,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},t(Va,[2,1061],{153:1015,179:ca,180:la,181:ha}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1221,118:Cr,122:Rr,123:Or,124:wr,126:1220,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1222,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1223,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1224,4:a,5:s},t(da,[2,110]),t(da,[2,111]),t(da,[2,112]),t(da,[2,119]),{2:n,3:1225,4:a,5:s},{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1226,336:1064,337:1066},{2:n,3:1227,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1228,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,125]),t(Va,[2,1067],{155:1229}),t(Va,[2,1069],{157:1230}),t(Va,[2,1071],{159:1231}),t(Va,[2,1075],{161:1232}),t(Ba,ja,{163:1233,178:1234}),{77:[1,1235]},t(Va,[2,1077],{165:1236}),t(Va,[2,1079],{167:1237}),t(Ba,ja,{178:1234,163:1238}),t(Ba,ja,{178:1234,163:1239}),t(Ba,ja,{178:1234,163:1240}),t(Ba,ja,{178:1234,163:1241}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1242,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1243,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ha,[2,1081],{176:1244}),t(K,[2,606],{183:[1,1245]}),t(K,[2,602],{183:[1,1246]}),t(K,[2,595]),{113:1247,132:ue,296:Le},t(K,[2,604],{183:[1,1248]}),t(K,[2,599]),t(K,[2,600],{112:[1,1249]}),t(dn,[2,69]),{40:1250,79:75,89:c,184:99,189:f},t(K,[2,450],{74:Ja,128:[1,1251]}),t(Ya,[2,451]),{124:[1,1253]},{2:n,3:1254,4:a,5:s},t(Be,[2,1115]),t(Be,[2,1116]),t(K,[2,618]),t(bn,[2,355],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(xa,Da,{114:625,327:637,112:At,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,332:rr}),t(gt,[2,682]),t(gt,[2,684]),t(K,[2,650]),t(K,[2,652],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1255,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1079,4:a,5:s,77:ba,131:Ea,432:1256},t(Wa,[2,659]),t(Wa,[2,660]),t(Wa,[2,661]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1257,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1258,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{114:1077,115:yt,116:Nt,124:[1,1259]},t(Sn,[2,755]),t(An,[2,148],{74:ga}),t(An,[2,149],{74:ga}),t(An,[2,150],{74:ga}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1261,4:a,5:s,113:1263,131:[1,1262],132:ue,296:Le},t(ma,[2,275]),t(ma,[2,277]),t(ma,[2,279]),t(nt,[2,160]),t(nt,[2,1090]),{78:[1,1264]},t(it,[2,758]),{2:n,3:1265,4:a,5:s},{2:n,3:1266,4:a,5:s},{2:n,3:1268,4:a,5:s,384:1267},{2:n,3:1268,4:a,5:s,384:1269},{2:n,3:1270,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1271,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1272,4:a,5:s},{74:pn,78:[1,1273]},t(sr,[2,347]),t(sr,[2,348]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1274,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1275,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1276,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1277,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Nn,[2,504]),t(K,Xa,{407:1278,76:Ka,77:[1,1279]}),t(K,Xa,{407:1281,76:Ka}),{77:[1,1282]},{2:n,3:244,4:a,5:s,199:1283},t(Sn,[2,731]),t(Sn,[2,733]),t(Sn,[2,1146]),{143:tt,145:rt,431:1284},t(Qa,[2,1147],{419:190,479:1285,144:1286,145:ze,420:Ge,424:Ve}),{76:va,139:[2,1151],481:1287,483:1288},t([10,74,76,78,132,139,145,152,306,310,420,424,602,764],In,{490:851,493:852,137:pt}),t(Sn,[2,736]),t(Sn,On),{74:Cn,78:[1,1289]},t(Dn,[2,1165],{492:1290,497:1291,152:bt}),t(xn,[2,1164]),t(Dn,[2,745]),t(Dn,[2,1170]),t(K,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,148:[1,1295],154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(Ma,za,{79:75,184:99,468:1296,40:1299,89:c,146:Za,189:f,470:es}),t(Sa,[2,1140]),t(Ln,[2,723]),{230:[1,1300]},t(ts,[2,769]),t(ts,[2,770]),t(ts,[2,771]),t($n,Mn,{510:1301,95:Un,514:_n,515:Fn,516:Pn}),t($n,[2,768]),t(K,[2,312]),t(K,[2,313]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1302,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(gt,[2,690],{124:[1,1303]}),t(Na,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},t(Na,[2,5]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1307,419:190,420:Ge,424:Ve},t(K,[2,455],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,589]),t(K,[2,590]),{2:n,3:244,4:a,5:s,199:1308},t(K,[2,670]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1309,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1310,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1311],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1312],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:168,4:a,5:s,40:1313,56:165,77:ie,79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1314,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1315]},{74:pn,78:[1,1316]},t(Qe,[2,426]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1317,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,40:1318,56:165,77:ie,78:[1,1320],79:75,89:c,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1319,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,184:99,189:f,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,429]),t(Qe,[2,431]),t(Qe,rs,{275:1321,276:ns}),{78:[1,1323],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1324],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1325,4:a,5:s,180:[1,1326]},t(cr,[2,619]),t(Qe,[2,363]),{306:[1,1327]},t(Qe,[2,370]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,306:[2,374],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1328,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{4:qn,7:879,272:1329,387:878,389:Gn},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1330,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(cr,[2,641]),t(zn,[2,648]),t(Zn,[2,636]),t($a,La),t(cr,[2,638]),t(ra,[2,643]),t(ra,[2,645]),t(ra,[2,646]),t(ra,[2,647]),t(Ma,[2,457],{74:Ua}),{77:[1,1332],143:le,144:1333,145:ze,152:fe,181:ge,201:1334,302:_e,419:190,420:Ge,424:Ve},t(Ma,[2,463]),{74:as,78:[1,1335]},{74:ss,78:[1,1337]},t([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],is),t(os,[2,479],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{40:1341,77:sa,79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:1339,342:1340,344:aa,419:190,420:Ge,424:Ve},t(Ma,[2,461],{74:Ua}),t(K,[2,717],{457:1342,458:1343,459:1344,308:Pa,464:[1,1345]}),t(us,[2,701]),t(us,[2,702]),{154:[1,1347],460:[1,1346]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,308:[2,698],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(pr,[2,179]),{2:n,3:1348,4:a,5:s},t(K,[2,574]),t(cs,[2,238],{84:1349,128:[1,1350]}),t(qa,[2,1046]),{77:[1,1351]},{77:[1,1352]},t(ia,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:ls,206:hs,208:ds,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss}),{2:n,3:219,4:a,5:s,40:711,77:Je,79:75,89:c,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,184:99,189:f,199:213,200:215,201:214,202:217,203:1369,209:1211,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(Ts,[2,177]),{2:n,3:1011,4:a,5:s,110:1370,111:1009,112:oa},t(Ga,[2,87]),t(ua,[2,147],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{78:[1,1371]},{74:pn,78:[2,1066]},{2:n,3:168,4:a,5:s,56:165,77:ie,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,98]),t(Va,[2,1062],{153:1015,179:ca,180:la,181:ha}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1377],112:Nr,114:736,115:yt,116:Nt,117:1378,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},t(Va,[2,1063],{153:1015,179:ca,180:la,181:ha}),{78:[1,1379],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1380],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1381]},t(da,[2,120]),{74:Ja,78:[1,1382]},t(da,[2,122]),{74:pn,78:[1,1383]},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1384],112:Nr,114:736,115:yt,116:Nt,117:1385,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1386],112:Nr,114:736,115:yt,116:Nt,117:1387,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1388],112:Nr,114:736,115:yt,116:Nt,117:1389,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1390],112:Nr,114:736,115:yt,116:Nt,117:1391,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{74:As,78:[1,1392]},t(os,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),t(Ba,ja,{178:1234,163:1395}),{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1396],112:Nr,114:736,115:yt,116:Nt,117:1397,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:733,4:a,5:s,72:Tr,76:Ar,77:yr,78:[1,1398],112:Nr,114:736,115:yt,116:Nt,117:1399,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{74:As,78:[1,1400]},{74:As,78:[1,1401]},{74:As,78:[1,1402]},{74:As,78:[1,1403]},{78:[1,1404],153:1015,179:ca,180:la,181:ha},{74:ga,78:[1,1405]},{2:n,3:733,4:a,5:s,72:Tr,74:[1,1406],76:Ar,77:yr,112:Nr,114:736,115:yt,116:Nt,117:1407,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,144:758,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,158:768,160:769,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,419:190,420:Ge,424:Ve},{2:n,3:1408,4:a,5:s},{2:n,3:1409,4:a,5:s},t(K,[2,597]),{2:n,3:1410,4:a,5:s},{113:1411,132:ue,296:Le},{78:[1,1412]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1413,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,336:1414,337:1066},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1415,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{124:[1,1416]},t(K,[2,653],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Wa,[2,658]),{78:[1,1417],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,[2,654],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1418,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ma,[2,272]),t(ma,[2,274]),t(ma,[2,276]),t(ma,[2,278]),t(nt,[2,161]),t(K,[2,569]),{148:[1,1419]},t(K,[2,570]),t(Sn,[2,536],{387:878,7:879,272:1420,4:qn,386:[1,1421],389:Gn}),t(K,[2,571]),t(K,[2,573]),{74:pn,78:[1,1422]},t(K,[2,577]),t(sr,[2,345]),{74:[1,1423],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,
-124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1424],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1425],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{74:[1,1426],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,[2,581]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1427,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1428,4:a,5:s},t(K,[2,583]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1429,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1430]},{2:n,3:1431,4:a,5:s},{76:va,139:[2,1149],480:1432,483:1433},t(Qa,[2,1148]),{139:[1,1434]},{139:[2,1152]},t(Sn,[2,737]),t(Dn,[2,744]),t(Dn,[2,1166]),{2:n,3:1268,4:a,5:s,76:[1,1437],351:1435,358:1436,384:1438},{2:n,3:1011,4:a,5:s,100:1439,111:1440},{40:1441,79:75,89:c,184:99,189:f},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1442,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ma,[2,722]),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1443,336:1064,337:1066},{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1444,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ma,[2,727]),{2:n,3:244,4:a,5:s,199:1445},{335:Ta,338:Aa,339:ya,511:1446},t(gt,[2,691],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1447,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:[1,1448],78:[1,1449]},t(os,[2,543]),t(os,[2,544]),{74:ss,78:[1,1450]},t(gt,[2,565]),t(Ra,[2,380],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Ra,[2,382],{114:625,327:637,115:yt,116:Nt,123:Ct,133:Ot,136:wt,138:It,141:kt,142:Lt,179:_t,180:Ft,312:qt,316:Bt,317:jt,318:Ht,319:Jt}),t(Qe,[2,396]),t(Qe,[2,400]),{78:[1,1451]},{74:pn,78:[1,1452]},t(Qe,[2,422]),t(Qe,[2,424]),{78:[1,1453],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1454]},{74:pn,78:[1,1455]},t(Qe,[2,427]),t(Qe,[2,327]),{77:[1,1456]},t(Qe,rs,{275:1457,276:ns}),t(Qe,rs,{275:1458,276:ns}),t($a,[2,284]),t(Qe,[2,281]),t(Qe,[2,369]),t(Qn,[2,373],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{2:n,3:1325,4:a,5:s},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1194,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,345:1463,419:190,420:Ge,424:Ve},t(Fa,[2,477]),t(Fa,[2,478]),{40:1466,77:sa,79:75,89:c,143:le,144:979,145:ze,149:na,152:fe,181:ge,184:99,189:f,201:980,302:_e,341:1464,342:1465,344:aa,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,111:1467},t(Fa,[2,473]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1468,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1469,419:190,420:Ge,424:Ve},t(Ma,[2,460],{74:Ua}),t(Ma,[2,467]),t(K,[2,694]),t(us,[2,699]),t(us,[2,700]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:817,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,174:1470,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{170:[1,1472],309:[1,1471]},{460:[1,1473]},t(pr,[2,180]),t(ys,[2,240],{85:1474,232:[1,1475]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1476,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1477,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1478,4:a,5:s},t(ia,[2,170],{216:1357,221:1360,215:1479,205:1480,206:hs,208:ds,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss}),{2:n,3:219,4:a,5:s,77:Je,132:Ye,143:le,144:212,145:he,152:fe,156:Q,181:ge,199:213,200:215,201:214,202:217,209:1481,213:We,214:218,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},t(Ns,[2,205]),t(Ns,[2,206]),{2:n,3:219,4:a,5:s,77:[1,1486],143:le,144:1484,145:he,152:fe,156:Q,181:ge,199:1483,200:1487,201:1485,202:1488,217:1482,290:z,291:Z,292:ee,293:te,302:_e,419:190,420:Ge,424:Ve},{207:[1,1489],223:Cs},{207:[1,1491],223:Rs},t(Os,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(Os,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:ls,204:1504,205:1356,206:hs,208:ds,215:1355,216:1357,221:1360,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(Ga,[2,84]),t(da,[2,100]),{74:ws,78:[1,1505]},{78:[1,1507]},t(Is,[2,261]),{78:[2,1060]},t(Is,[2,263],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,242:[1,1508],243:[1,1509],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(da,[2,99]),t(Va,[2,1064],{153:1015,179:ca,180:la,181:ha}),t(da,[2,101]),t(da,[2,102]),t(da,[2,103]),t(da,[2,121]),t(da,[2,124]),t(da,[2,127]),t(Va,[2,1068],{153:1015,179:ca,180:la,181:ha}),t(da,[2,128]),t(Va,[2,1070],{153:1015,179:ca,180:la,181:ha}),t(da,[2,129]),t(Va,[2,1072],{153:1015,179:ca,180:la,181:ha}),t(da,[2,130]),t(Va,[2,1076],{153:1015,179:ca,180:la,181:ha}),t(da,[2,131]),t(Ba,[2,1083],{177:1510}),t(Ba,[2,1086],{153:1015,179:ca,180:la,181:ha}),{74:As,78:[1,1511]},t(da,[2,133]),t(Va,[2,1078],{153:1015,179:ca,180:la,181:ha}),t(da,[2,134]),t(Va,[2,1080],{153:1015,179:ca,180:la,181:ha}),t(da,[2,135]),t(da,[2,136]),t(da,[2,137]),t(da,[2,138]),t(da,[2,139]),t(da,[2,140]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:260,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,151:1512,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Ha,[2,1082],{153:1015,179:ca,180:la,181:ha}),t(K,[2,607]),t(K,[2,603]),t(K,[2,605]),t(K,[2,601]),t(dn,[2,71]),t(K,[2,449],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ya,[2,452]),t(Ya,[2,453],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1513,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Wa,[2,662]),t(K,[2,655],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:1514,4:a,5:s},t(Sn,[2,545],{385:1515,391:1516,392:1517,366:1525,154:xs,187:Ds,230:ks,297:Ls,343:$s,356:Ms,368:Us,369:_s,373:Fs,374:Ps}),t(Sn,[2,535]),t(K,[2,576],{76:[1,1529]}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1530,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1531,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1532,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1533,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:pn,78:[1,1534]},t(K,[2,585]),{74:ws,78:[1,1535]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1536,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:c,184:99,189:f},t(os,[2,532]),{74:as,78:[1,1542]},t(Ts,is),t(K,[2,1133],{412:1543,413:1544,72:qs}),t(Ma,za,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:c,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,146:Za,154:$t,170:Mt,171:Ut,179:_t,180:Ft,189:f,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr,470:es}),t(Ma,[2,725],{74:Ja}),t(Ma,[2,726],{74:pn}),t([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:n,4:a,5:s,76:[1,1549]}),t(Gs,[2,1183],{513:1550,76:[1,1551]}),t(gt,[2,692],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{131:[1,1552]},t(Na,[2,538]),t(Na,[2,540]),t(Qe,[2,412]),t(Qe,[2,413]),t(Qe,[2,439]),t(Qe,[2,423]),t(Qe,[2,425]),{118:Vs,277:1553,278:1554,279:[1,1555]},t(Qe,[2,328]),t(Qe,[2,329]),t(Qe,[2,316]),{131:[1,1557]},t(Qe,[2,318]),{131:[1,1558]},{74:ss,78:[1,1559]},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1560,419:190,420:Ge,424:Ve},t(Ma,[2,465],{74:Ua}),t(Ma,[2,468]),t(Ts,[2,488]),t(os,[2,480],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ma,[2,459],{74:Ua}),t(K,[2,718],{74:ga,198:[1,1561]}),{335:Bs,338:js,461:1562},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1565,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{119:[1,1567],170:[1,1568],309:[1,1566]},t(Hs,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},t(cs,[2,239],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{95:[1,1572],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{95:[1,1573]},t(Ns,[2,203]),t(Ns,[2,204]),t(Ts,[2,178]),t(Ns,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),t(Js,[2,208],{3:1577,2:n,4:a,5:s,76:[1,1578]}),t(Ys,[2,1095],{219:1579,76:[1,1580]}),{2:n,3:1581,4:a,5:s,76:[1,1582]},{40:1583,79:75,89:c,184:99,189:f},t(Js,[2,216],{3:1584,2:n,4:a,5:s,76:[1,1585]}),t(Js,[2,219],{3:1586,2:n,4:a,5:s,76:[1,1587]}),{77:[1,1588]},t(Os,[2,234]),{77:[1,1589]},t(Os,[2,230]),t(Os,[2,223]),{223:Rs},{223:Cs},t(Os,[2,225]),t(Os,[2,226]),{223:[1,1590]},t(Os,[2,228]),{223:[1,1591]},{223:[1,1592]},t(Os,[2,232]),t(Os,[2,233]),{78:[1,1593],205:1480,206:hs,208:ds,215:1479,216:1357,221:1360,222:fs,223:ps,224:bs,225:Es,226:gs,227:ms,228:vs,229:Ss},t(da,[2,91]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(da,[2,92]),t(Is,[2,264]),{244:[1,1595]},t(os,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:n,4:a,5:s,72:Tr,76:Ar,77:yr,112:Nr,115:yt,116:Nt,118:Cr,122:Rr,123:Or,124:wr,128:Ir,129:xr,130:Dr,131:kr,132:Lr,133:$r,134:Mr,135:Ur,136:_r,137:Fr,138:Pr,139:qr,140:Gr,141:Vr,142:Br,143:jr,145:Hr,146:Jr,148:Yr,149:Wr,150:Xr,152:Kr,154:Qr,156:zr,162:Zr,164:en,166:tn,168:rn,169:nn,170:an,171:sn,172:on,173:un,175:cn,185:ln,187:hn,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,420:Ge,424:Ve}),t(da,[2,132]),{74:pn,78:[1,1597]},t(Ya,[2,454],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(K,[2,572]),t(Sn,[2,534]),t(Sn,[2,546],{366:1525,392:1598,154:xs,187:Ds,230:ks,297:Ls,343:$s,356:Ms,368:Us,369:_s,373:Fs,374:Ps}),t(fn,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:n,3:244,4:a,5:s,199:1601},t(fn,[2,554],{77:[1,1602]}),{2:n,3:114,4:a,5:s,77:[1,1604],113:251,131:oe,132:ue,143:le,152:fe,156:Q,181:ge,196:250,200:1605,201:254,257:252,258:253,265:Ze,274:1603,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e},t(fn,[2,558]),{297:[1,1606]},t(fn,[2,560]),t(fn,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:n,3:1609,4:a,5:s},{78:[1,1610],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1611],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1612],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{78:[1,1613],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(K,Xa,{407:1614,76:Ka}),t(K,[2,591]),{74:ws,78:[1,1615]},{2:n,3:1122,4:a,5:s,132:ft,137:pt,143:tt,145:rt,152:bt,431:585,475:1124,478:1616,482:582,493:579,497:581},t(Sn,[2,735]),t(K,[2,493],{352:1617,354:1618,355:1619,4:Ws,243:Xs,343:Ks,356:Qs}),t(zs,Zs,{3:1268,359:1624,384:1625,360:1626,361:1627,2:n,4:a,5:s,367:ei}),{78:[2,507]},{76:[1,1629]},t(K,[2,609]),t(K,[2,1134]),{368:[1,1631],414:[1,1630]},t(Ma,[2,728]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(K,[2,762]),t(Gs,[2,1182]),t(K,r,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:n,4:a,5:s,53:o,72:u,89:c,124:l,146:h,156:d,189:f,266:p,267:b,290:E,335:g,338:m,339:v,396:S,400:A,401:y,404:N,406:C,408:R,409:w,417:I,418:x,434:D,436:k,437:L,439:$,440:M,441:U,442:_,443:F,447:P,448:q,451:G,452:V,505:B,507:j,508:H,517:J}),t(Gs,[2,1184]),{78:[1,1634]},{78:[1,1635],118:Vs,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},t(Fa,[2,476]),t(Ma,[2,464],{74:Ua}),{2:n,3:244,4:a,5:s,143:tt,145:rt,199:1643,431:1642},t(us,[2,703]),t(us,[2,705]),{146:[1,1644]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1645],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},{339:ti,462:1646},{417:[1,1649],463:[1,1648]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1650,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ri,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1655,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1661,4:a,5:s},{2:n,3:1662,4:a,5:s},t(Ns,[2,207]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1663,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1664,111:1440},t(Js,[2,209]),{2:n,3:1665,4:a,5:s},t(Js,[2,1097],{220:1666,3:1667,2:n,4:a,5:s}),t(Ys,[2,1096]),t(Js,[2,212]),{2:n,3:1668,4:a,5:s},{78:[1,1669]},t(Js,[2,217]),{2:n,3:1670,4:a,5:s},t(Js,[2,220]),{2:n,3:1671,4:a,5:s},{40:1672,79:75,89:c,184:99,189:f},{40:1673,79:75,89:c,184:99,189:f},t(Os,[2,227]),t(Os,[2,229]),t(Os,[2,231]),t(ia,[2,171]),t(Is,[2,262]),t(Is,[2,265],{242:[1,1674]}),t(Ba,[2,1084],{153:1015,179:ca,180:la,181:ha}),t(da,[2,141]),t(fn,[2,547]),t(fn,[2,550]),{374:[1,1675]},t(fn,[2,1127],{395:1676,393:1677,77:ii}),{131:oe,196:1679},t(fn,[2,555]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1680,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(fn,[2,557]),t(fn,[2,559]),{2:n,3:114,4:a,5:s,77:[1,1682],113:251,131:oe,132:ue,143:le,152:fe,156:Q,181:ge,196:250,200:255,201:254,257:252,258:253,265:Ze,274:1681,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,302:_e},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1683,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(K,[2,578]),t(sr,[2,349]),t(sr,[2,350]),t(sr,[2,351]),t(sr,[2,352]),t(K,[2,582]),t(K,[2,592]),t(Sn,[2,734]),t(K,[2,489]),t(K,[2,494],{355:1684,4:Ws,243:Xs,343:Ks,356:Qs}),t(oi,[2,496]),t(oi,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},t(os,[2,533]),t(os,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:Us,369:[1,1694],370:[1,1698],373:[1,1695]},{2:n,3:1699,4:a,5:s},{40:1700,79:75,89:c,184:99,189:f},{415:[1,1701]},{416:[1,1702]},t(K,[2,761]),t(K,[2,763]),t(Na,[2,537]),t(Qe,[2,331]),{78:[1,1703]},t(Qe,[2,332]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1704,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1705,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(Qe,[2,317]),t(Qe,[2,319]),{2:n,3:1706,4:a,5:s},t(K,[2,720],{77:[1,1707]}),{2:n,3:1011,4:a,5:s,111:1065,143:fa,145:pa,147:1708,336:1064,337:1066},{335:Bs,338:js,461:1709},t(us,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1717],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(ua,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:oe,196:1722},{131:oe,196:1723},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1376,111:149,113:153,120:1724,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},t(ys,[2,248],{234:1725,74:ui,239:[1,1727]}),t(ci,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},t(ci,[2,247],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},t(Ns,[2,235],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),t(Ns,[2,236],{74:as}),t(Js,[2,210]),t(Js,[2,211]),t(Js,[2,1098]),t(Js,[2,213]),{2:n,3:1735,4:a,5:s,76:[1,1736]},t(Js,[2,218]),t(Js,[2,221]),{78:[1,1737]},{78:[1,1738]},t(Is,[2,266]),{2:n,3:244,4:a,5:s,199:1739},t(fn,[2,552]),t(fn,[2,1128]),{2:n,3:1740,4:a,5:s},{74:[1,1741]},{78:[1,1742],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,
-317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(fn,[2,562]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1743,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1744],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(oi,[2,495]),{2:n,3:1745,4:a,5:s},{131:oe,196:1746},{2:n,3:1747,4:a,5:s},t(zs,Zs,{361:1627,360:1748,367:ei}),t(Sn,[2,510]),t(Sn,[2,511]),t(Sn,[2,512]),t(Sn,[2,513]),t(Sn,[2,514]),{370:[1,1749]},{370:[1,1750]},t(li,[2,1121],{382:1751,370:[1,1752]}),{2:n,3:1753,4:a,5:s},{2:n,3:1754,4:a,5:s},t(zs,[2,516]),t(K,[2,1131],{411:1755,413:1756,72:qs}),t(K,[2,610]),t(K,[2,611],{367:[1,1757]}),t(Qe,[2,333]),t([78,118],[2,334],{74:ui}),{74:ws,78:[2,335]},t(K,[2,719]),{2:n,3:1011,4:a,5:s,100:1758,111:1440},t(us,[2,706],{74:Ja}),t(us,[2,704]),{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1759,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1760,111:1440},{344:[1,1761]},{339:ti,462:1762},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1763,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{339:ti,462:1764},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1765,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{339:ti,462:1766},t(ua,[2,72]),{40:1767,79:75,89:c,164:[1,1768],184:99,189:f,240:[1,1769]},{40:1770,79:75,89:c,184:99,189:f,240:[1,1771]},{40:1772,79:75,89:c,184:99,189:f,240:[1,1773]},t(ri,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},t(Hs,[2,260],{74:ws}),t(ys,[2,241]),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,235:1778,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1779,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{77:[1,1780]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1781,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1782,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},t(Js,[2,214]),{2:n,3:1786,4:a,5:s},{2:n,3:1787,4:a,5:s,76:[1,1788]},{2:n,3:1789,4:a,5:s,76:[1,1790]},t(fn,[2,1125],{394:1791,393:1792,77:ii}),{78:[1,1793]},{131:oe,196:1794},t(fn,[2,556]),{78:[1,1795],99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(fn,[2,517]),t(oi,[2,498]),t(oi,[2,499]),t(oi,[2,500]),t(os,[2,509]),{2:n,3:1797,4:a,5:s,77:[2,1117],371:1796},{77:[1,1798]},{2:n,3:1800,4:a,5:s,77:[2,1123],383:1799},t(li,[2,1122]),{77:[1,1801]},{77:[1,1802]},t(K,[2,608]),t(K,[2,1132]),t(zs,Zs,{361:1627,360:1803,367:ei}),{74:as,78:[1,1804]},t(us,[2,713],{74:Ua}),{74:as,78:[1,1805]},t(us,[2,715]),t(us,[2,708]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1806],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(us,[2,711]),{99:Tt,112:At,114:625,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,309:[1,1807],311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,327:637,330:er,331:tr,332:rr,333:nr},t(us,[2,709]),t(ua,[2,251]),{40:1808,79:75,89:c,184:99,189:f,240:[1,1809]},{40:1810,79:75,89:c,184:99,189:f},t(ua,[2,253]),{40:1811,79:75,89:c,184:99,189:f},t(ua,[2,254]),{40:1812,79:75,89:c,184:99,189:f},t(ri,[2,268]),{131:oe,196:1813},{249:[1,1814]},{249:[2,1100]},t(ci,[2,243]),t(ys,[2,249],{114:625,327:637,99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1660,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,233:1815,235:1656,236:ni,237:ai,238:si,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{74:ui,78:[1,1816]},{74:ui,78:[1,1817]},t(qa,[2,1053],{97:1818,104:1819,3:1821,2:n,4:a,5:s,76:hi}),{2:n,3:168,4:a,5:s,56:165,77:ie,94:1824,103:1822,105:1823,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1011,4:a,5:s,100:1825,111:1440},t(Js,[2,215]),t(Ns,[2,173]),{2:n,3:1826,4:a,5:s},t(Ns,[2,175]),{2:n,3:1827,4:a,5:s},t(fn,[2,551]),t(fn,[2,1126]),t(fn,[2,549]),{78:[1,1828]},t(fn,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:n,3:1831,4:a,5:s,132:di,372:1830},{77:[1,1833]},{77:[2,1124]},{2:n,3:1011,4:a,5:s,100:1834,111:1440},{2:n,3:1011,4:a,5:s,100:1835,111:1440},t(K,[2,612]),t(K,[2,721]),{343:[1,1837],344:[1,1836]},{339:ti,462:1838},{335:Bs,338:js,461:1839},t(ua,[2,252]),{40:1840,79:75,89:c,184:99,189:f},t(ua,[2,255]),t(ua,[2,257]),t(ua,[2,258]),t(ri,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:ui,78:[1,1843]},t(ci,[2,245]),t(ci,[2,246]),t(qa,[2,74]),t(qa,[2,1054]),{2:n,3:1844,4:a,5:s},t(qa,[2,78]),{74:[1,1846],78:[1,1845]},t(os,[2,80]),t(os,[2,81],{114:625,327:637,76:[1,1847],99:Tt,112:At,115:yt,116:Nt,123:Ct,124:En,133:Ot,136:wt,138:It,139:xt,140:Dt,141:kt,142:Lt,154:$t,170:Mt,171:Ut,179:_t,180:Ft,311:Pt,312:qt,313:Gt,315:Vt,316:Bt,317:jt,318:Ht,319:Jt,320:Yt,321:Wt,322:Xt,323:Kt,324:Qt,325:zt,326:Zt,330:er,331:tr,332:rr,333:nr}),{74:as,78:[1,1848]},t(Ns,[2,174]),t(Ns,[2,176]),t(fn,[2,553]),{2:n,3:1831,4:a,5:s,132:di,372:1849},{74:fi,78:[1,1850]},t(os,[2,528]),t(os,[2,529]),{2:n,3:1011,4:a,5:s,100:1852,111:1440},{74:as,78:[1,1853]},{74:as,78:[1,1854]},{77:sa,143:le,144:979,145:ze,152:fe,181:ge,201:980,302:_e,342:1855,419:190,420:Ge,424:Ve},{344:[1,1856]},t(us,[2,710]),t(us,[2,712]),t(ua,[2,256]),{131:oe,196:1857},{131:[2,1102]},t(ci,[2,244]),t(qa,[2,77]),{78:[2,76]},{2:n,3:168,4:a,5:s,56:165,77:ie,94:1824,105:1858,111:149,113:153,131:oe,132:ue,137:ce,143:le,144:161,145:he,149:de,152:fe,154:pe,156:Q,158:167,179:be,180:Ee,181:ge,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:me,266:p,270:ve,271:Se,273:Te,280:Ae,281:ye,282:Ne,283:Ce,284:Re,285:Oe,286:we,287:Ie,288:xe,290:z,291:Z,292:ee,293:te,294:De,295:ke,296:Le,297:$e,298:Me,299:Ue,302:_e,303:Fe,312:Pe,317:qe,419:190,420:Ge,424:Ve},{2:n,3:1859,4:a,5:s},{78:[1,1860]},{74:fi,78:[1,1861]},{374:[1,1862]},{2:n,3:1863,4:a,5:s,132:[1,1864]},{74:as,78:[1,1865]},t(Sn,[2,526]),t(Sn,[2,527]),t(us,[2,714],{74:Ua}),t(us,[2,716]),t(pi,[2,1103],{251:1866,766:[1,1867]}),t(os,[2,79]),t(os,[2,82]),t(qa,[2,1055],{3:1821,101:1868,104:1869,2:n,4:a,5:s,76:hi}),t(Sn,[2,518]),{2:n,3:244,4:a,5:s,199:1870},t(os,[2,530]),t(os,[2,531]),t(Sn,[2,525]),t(ri,[2,1105],{252:1871,415:[1,1872]}),t(pi,[2,1104]),t(qa,[2,75]),t(qa,[2,1056]),t(bi,[2,1119],{375:1873,377:1874,77:[1,1875]}),t(ri,[2,269]),t(ri,[2,1106]),t(Sn,[2,521],{376:1876,378:1877,230:[1,1878]}),t(bi,[2,1120]),{2:n,3:1831,4:a,5:s,132:di,372:1879},t(Sn,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:fi,78:[1,1883]},t(Sn,[2,522]),{335:[1,1884]},{380:[1,1885]},t(bi,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},t(Sn,[2,524])],defaultActions:{105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},parseError:function(e,t){if(!t.recoverable){var r=new Error(e);throw r.hash=t,r}this.trace(e)},parse:function(e){function t(e){for(var t=n.length-1,r=0;;){if(h.toString()in i[e])return r;if(0===e||t<2)return!1;t-=2,e=n[t],++r}}var r=this,n=[0],a=[null],s=[],i=this.table,o="",u=0,c=0,l=0,h=2,d=s.slice.call(arguments,1),f=Object.create(this.lexer),p={yy:{}};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(p.yy[b]=this.yy[b]);f.setInput(e,p.yy),p.yy.lexer=f,p.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var E=f.yylloc;s.push(E);var g=f.options&&f.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var m,v,S,T,A,y,N,C,R,O=function(){var e;return e=f.lex()||1,"number"!=typeof e&&(e=r.symbols_[e]||e),e},w={};;){if(S=n[n.length-1],this.defaultActions[S]?T=this.defaultActions[S]:(null!==m&&void 0!==m||(m=O()),T=i[S]&&i[S][m]),void 0===T||!T.length||!T[0]){var I,x="";if(l)1!==v&&(I=t(S));else{I=t(S),R=[];for(y in i[S])this.terminals_[y]&&y>h&&R.push("'"+this.terminals_[y]+"'");x=f.showPosition?"Parse error on line "+(u+1)+":\n"+f.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(u+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(x,{text:f.match,token:this.terminals_[m]||m,line:f.yylineno,loc:E,expected:R,recoverable:!1!==I})}if(3==l){if(1===m||1===v)throw new Error(x||"Parsing halted while starting to recover from another error.");c=f.yyleng,o=f.yytext,u=f.yylineno,E=f.yylloc,m=O()}if(!1===I)throw new Error(x||"Parsing halted. No suitable error recovery rule available.");!function(e){n.length=n.length-2*e,a.length=a.length-e,s.length=s.length-e}(I),v=m==h?null:m,m=h,S=n[n.length-1],T=i[S]&&i[S][h],l=3}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+m);switch(T[0]){case 1:n.push(m),a.push(f.yytext),s.push(f.yylloc),n.push(T[1]),m=null,v?(m=v,v=null):(c=f.yyleng,o=f.yytext,u=f.yylineno,E=f.yylloc,l>0&&l--);break;case 2:if(N=this.productions_[T[1]][1],w.$=a[a.length-N],w._$={first_line:s[s.length-(N||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(N||1)].first_column,last_column:s[s.length-1].last_column},g&&(w._$.range=[s[s.length-(N||1)].range[0],s[s.length-1].range[1]]),void 0!==(A=this.performAction.apply(w,[o,c,u,p.yy,T[1],a,s].concat(d))))return A;N&&(n=n.slice(0,-1*N*2),a=a.slice(0,-1*N),s=s.slice(0,-1*N)),n.push(this.productions_[T[1]][0]),a.push(w.$),s.push(w._$),C=i[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0}},gi=["A","ABSENT","ABSOLUTE","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","ALWAYS","ASC","ASSERTION","ASSIGNMENT","ATTRIBUTE","ATTRIBUTES","BASE64","BEFORE","BERNOULLI","BLOCKED","BOM","BREADTH","C","CASCADE","CATALOG","CATALOG_NAME","CHAIN","CHARACTERISTICS","CHARACTERS","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CLASS_ORIGIN","COBOL","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMITTED","CONDITION_NUMBER","CONNECTION","CONNECTION_NAME","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTENT","CONTINUE","CONTROL","CURSOR_NAME","DATA","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DB","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DEPTH","DERIVED","DESC","DESCRIPTOR","DIAGNOSTICS","DISPATCH","DOCUMENT","DOMAIN","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EMPTY","ENCODING","ENFORCED","EXCLUDE","EXCLUDING","EXPRESSION","FILE","FINAL","FIRST","FLAG","FOLLOWING","FORTRAN","FOUND","FS","G","GENERAL","GENERATED","GO","GOTO","GRANTED","HEX","HIERARCHY","ID","IGNORE","IMMEDIATE","IMMEDIATELY","IMPLEMENTATION","INCLUDING","INCREMENT","INDENT","INITIALLY","INPUT","INSTANCE","INSTANTIABLE","INSTEAD","INTEGRITY","INVOKER","ISOLATION","K","KEY","KEY_MEMBER","KEY_TYPE","LAST","LENGTH","LEVEL","LIBRARY","LIMIT","LINK","LOCATION","LOCATOR","M","MAP","MAPPING","MATCHED","MAXVALUE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","MINVALUE","MORE","MUMPS","NAME","NAMES","NAMESPACE","NESTING","NEXT","NFC","NFD","NFKC","NFKD","NIL","NORMALIZED","NULLABLE","NULLS","NUMBER","OBJECT","OCTETS","OFF","OPTION","OPTIONS","ORDERING","ORDINALITY","OTHERS","OUTPUT","OVERRIDING","P","PAD","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARTIAL","PASCAL","PASSING","PASSTHROUGH","PATH","PERMISSION","PLACING","PLI","PRECEDING","PRESERVE","PRIOR","PRIVILEGES","PUBLIC","READ","RECOVERY","RELATIVE","REPEATABLE","REQUIRING","RESPECT","RESTART","RESTORE","RESTRICT","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","ROLE","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW_COUNT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SECTION","SECURITY","SELECTIVE","SELF","SEQUENCE","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SETS","SIMPLE","SIZE","SOURCE","SPACE","SPECIFIC_NAME","STANDALONE","STATE","STATEMENT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","T","TABLE_NAME","TEMPORARY","TIES","TOKEN","TOP_LEVEL_COUNT","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TYPE","UNBOUNDED","UNCOMMITTED","UNDER","UNLINK","UNNAMED","UNTYPED","URI","USAGE","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","VALID","VERSION","VIEW","WHITESPACE","WORK","WRAPPER","WRITE","XMLDECLARATION","XMLSCHEMA","YES","ZONE"];Ei.parseError=function(e,t){if(!(t.expected&&t.expected.indexOf("'LITERAL'")>-1&&/[a-zA-Z_][a-zA-Z_0-9]*/.test(t.token)&&gi.indexOf(t.token)>-1))throw new SyntaxError(e)};var mi=function(){return{EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var r,n,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),n=e[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],r=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var s in a)this[s]=a[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,r,n;this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),s=0;st[0].length)){if(t=r,n=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,a[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,r,n){switch(r){case 0:return 266;case 1:return 302;case 2:return 420;case 3:return 299;case 4:case 5:return 5;case 6:case 7:return 296;case 8:case 9:return 132;case 10:return;case 11:break;case 12:return 316;case 13:return 319;case 14:return t.yytext="VALUE",89;case 15:return t.yytext="VALUE",189;case 16:return t.yytext="ROW",189;case 17:return t.yytext="COLUMN",189;case 18:return t.yytext="MATRIX",189;case 19:return t.yytext="INDEX",189;case 20:return t.yytext="RECORDSET",189;case 21:return t.yytext="TEXT",189;case 22:return t.yytext="SELECT",189;case 23:return 520;case 24:return 381;case 25:return 402;case 26:return 515;case 27:return 287;case 28:case 29:return 269;case 30:return 164;case 31:return 400;case 32:return 170;case 33:return 229;case 34:return 166;case 35:return 207;case 36:return 288;case 37:return 76;case 38:return 418;case 39:return 242;case 40:return 404;case 41:return 356;case 42:return 284;case 43:return 514;case 44:return 437;case 45:return 330;case 46:return 441;case 47:return 331;case 48:return 315;case 49:return 119;case 50:return 112;case 51:return 315;case 52:return 112;case 53:return 315;case 54:return 112;case 55:return 315;case 56:return 508;case 57:return 303;case 58:return 271;case 59:return 368;case 60:return 130;case 61:return"CLOSE";case 62:return 243;case 63:case 64:return 190;case 65:return 434;case 66:return 367;case 67:return 470;case 68:return 440;case 69:return 273;case 70:return 240;case 71:return 281;case 72:return 267;case 73:return 206;case 74:return 238;case 75:return 265;case 76:return"CURSOR";case 77:return 405;case 78:return 291;case 79:return 292;case 80:return 448;case 81:return 343;case 82:return 338;case 83:return"DELETED";case 84:return 242;case 85:return 406;case 86:return 185;case 87:return 396;case 88:return 447;case 89:return 135;case 90:return 306;case 91:return 389;case 92:return 310;case 93:return 314;case 94:return 169;case 95:case 96:return 508;case 97:return 298;case 98:return 14;case 99:return 295;case 100:return 249;case 101:return 285;case 102:return 95;case 103:return 373;case 104:return 183;case 105:return 227;case 106:return 268;case 107:return 313;case 108:return 602;case 109:return 472;case 110:return 232;case 111:return 236;case 112:return 239;case 113:return 156;case 114:return 356;case 115:return 332;case 116:return 99;case 117:return 193;case 118:return 212;case 119:return 224;case 120:return 516;case 121:return 339;case 122:return 213;case 123:return 168;case 124:return 293;case 125:return 198;case 126:return 223;case 127:return 370;case 128:return 286;case 129:return"LET";case 130:return 225;case 131:return 112;case 132:return 245;case 133:return 460;case 134:return 191;case 135:return 283;case 136:return 390;case 137:return 282;case 138:return 452;case 139:return 169;case 140:return 403;case 141:return 222;case 142:return 645;case 143:return 270;case 144:return 244;case 145:return 380;case 146:return 154;case 147:return 297;case 148:return 433;case 149:return 230;case 150:return 415;case 151:return 129;case 152:return 247;case 153:return"OPEN";case 154:return 416;case 155:return 171;case 156:return 118;case 157:return 208;case 158:return 276;case 159:return 172;case 160:return 279;case 161:return 765;case 162:return 93;case 163:return 16;case 164:return 369;case 165:return 442;case 166:return 678;case 167:return 15;case 168:return 414;case 169:return 194;case 170:return"REDUCE";case 171:return 374;case 172:return 311;case 173:return 517;case 174:return 682;case 175:return 107;case 176:return 401;case 177:return 175;case 178:return 290;case 179:return 443;case 180:return 687;case 181:case 182:return 173;case 183:return 226;case 184:return 436;case 185:return 237;case 186:return 150;case 187:return 766;case 188:return 405;case 189:return 89;case 190:return 228;case 191:case 192:return 146;case 193:return 409;case 194:return 334;case 195:return 417;case 196:return"STRATEGY";case 197:return"STORE";case 198:return 280;case 199:case 200:return 353;case 201:return 463;case 202:case 203:return 357;case 204:return 192;case 205:return 309;case 206:return"TIMEOUT";case 207:return 148;case 208:return 195;case 209:case 210:return 435;case 211:return 509;case 212:return 294;case 213:return 451;case 214:return 162;case 215:return 187;case 216:return 98;case 217:return 335;case 218:return 408;case 219:return 231;case 220:return 149;case 221:return 344;case 222:return 134;case 223:return 410;case 224:return 308;case 225:return 128;case 226:return 439;case 227:return 72;case 228:return 435;case 229:case 230:return 131;case 231:return 115;case 232:return 137;case 233:return 179;case 234:return 317;case 235:return 180;case 236:return 133;case 237:return 138;case 238:return 326;case 239:return 323;case 240:return 325;case 241:return 322;case 242:return 320;case 243:return 318;case 244:return 319;case 245:return 142;case 246:return 141;case 247:return 139;case 248:return 321;case 249:return 324;case 250:return 140;case 251:return 124;case 252:return 324;case 253:return 77;case 254:return 78;case 255:return 145;case 256:return 424;case 257:return 426;case 258:return 300;case 259:return 505;case 260:return 507;case 261:return 122;case 262:return 116;case 263:return 74;case 264:return 333;case 265:return 152;case 266:return 764;case 267:return 143;case 268:return 181;case 269:return 136;case 270:return 123;case 271:return 312;case 272:return 4;case 273:return 10;case 274:return"INVALID"}},
-rules:[/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:ARRAY\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:\|)/i,/^(?:VALUE\s+OF\s+SEARCH\b)/i,/^(?:VALUE\s+OF\s+SELECT\b)/i,/^(?:ROW\s+OF\s+SELECT\b)/i,/^(?:COLUMN\s+OF\s+SELECT\b)/i,/^(?:MATRIX\s+OF\s+SELECT\b)/i,/^(?:INDEX\s+OF\s+SELECT\b)/i,/^(?:RECORDSET\s+OF\s+SELECT\b)/i,/^(?:TEXT\s+OF\s+SELECT\b)/i,/^(?:SELECT\b)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AFTER\b)/i,/^(?:AGGR\b)/i,/^(?:AGGREGATE\b)/i,/^(?:AGGREGATOR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTO(_)?INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEFORE\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:~~\*)/i,/^(?:!~~\*)/i,/^(?:~~)/i,/^(?:!~~)/i,/^(?:ILIKE\b)/i,/^(?:NOT\s+ILIKE\b)/i,/^(?:CALL\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHECK\b)/i,/^(?:CLASS\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTENT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:CORRESPONDING\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE(S)?)/i,/^(?:DATEADD\b)/i,/^(?:DATEDIFF\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:ECHO\b)/i,/^(?:EDGE\b)/i,/^(?:END\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:ESCAPE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXEC\b)/i,/^(?:EXECUTE\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOR\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:FULL\b)/i,/^(?:FUNCTION\b)/i,/^(?:GLOB\b)/i,/^(?:GO\b)/i,/^(?:GRAPH\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INDEXED\b)/i,/^(?:INNER\b)/i,/^(?:INSTEAD\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTERVAL\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LET\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX(\s+)?(?=\())/i,/^(?:MAX(\s+)?(?=(,|\))))/i,/^(?:MIN(\s+)?(?=\())/i,/^(?:MERGE\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:ONLY\b)/i,/^(?:OF\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OPTION\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PATH\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PIVOT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:READ\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:REGEXP\b)/i,/^(?:REINDEX\b)/i,/^(?:RELATIVE\b)/i,/^(?:REMOVE\b)/i,/^(?:RENAME\b)/i,/^(?:REPEAT\b)/i,/^(?:REPLACE\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RETURN\b)/i,/^(?:RETURNS\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:ROWS\b)/i,/^(?:SCHEMA(S)?)/i,/^(?:SEARCH\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:SOURCE\b)/i,/^(?:STRATEGY\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TEMP\b)/i,/^(?:TEMPORARY\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:THEN\b)/i,/^(?:TIMEOUT\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRIGGER\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UNPIVOT\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VERTEX\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],inclusive:!0}}}}();return Ei.lexer=mi,e.prototype=Ei,Ei.Parser=e,new e}();void 0!==A&&"undefined"!=typeof exports&&(exports.parser=y,exports.Parser=y.Parser,exports.parse=function(){return y.parse.apply(y,arguments)},exports.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var t=A("fs").readFileSync(A("path").normalize(e[1]),"utf8");return exports.parser.parse(t)},"undefined"!=typeof module&&A.main===module&&exports.main(process.argv.slice(1))),T.prettyflag=!1,T.pretty=function(e,t){var r=T.prettyflag;T.prettyflag=!t;var n=T.parse(e).toString();return T.prettyflag=r,n};var N=T.utils={},C=N.escapeq=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})},R=N.undoubleq=function(e){return e.replace(/(\')/g,"''")},O=N.doubleq=function(e){return e.replace(/(\'\')/g,"\\'")},w=(N.doubleqq=function(e){return e.replace(/\'/g,"'")},function(e){return e[0]===String.fromCharCode(65279)&&(e=e.substr(1)),e});N.global=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:Function("return this")()}();N.isNativeFunction=function(e){return"function"==typeof e&&!!~e.toString().indexOf("[native code]")};N.isWebWorker=function(){try{var e=N.global.importScripts;return N.isNativeFunction(e)}catch(e){return!1}}(),N.isNode=function(){try{return N.isNativeFunction(N.global.process.reallyExit)}catch(e){return!1}}(),N.isBrowser=function(){try{return N.isNativeFunction(N.global.location.reload)}catch(e){return!1}}(),N.isBrowserify=function(){return N.isBrowser&&"undefined"!=typeof process&&process.browser}(),N.isRequireJS=function(){return N.isBrowser&&"function"==typeof A&&"function"==typeof A.specified}(),N.isMeteor=function(){return"undefined"!=typeof Meteor&&Meteor.release}(),N.isMeteorClient=N.isMeteorClient=function(){return N.isMeteor&&Meteor.isClient}(),N.isMeteorServer=function(){return N.isMeteor&&Meteor.isServer}(),N.isCordova=function(){return"object"==typeof cordova}(),N.isReactNative=function(){return!1}(),N.hasIndexedDB=function(){return!!N.global.indexedDB}(),N.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var I=N.loadFile=function(e,t,r,n){var a;if(N.isNode||N.isMeteorServer);else if(N.isCordova)N.global.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(t){t.root.getFile(e,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){r(w(this.result))},t.readAsText(e)})})});else if("string"==typeof e)if("#"===e.substr(0,1)&&"undefined"!=typeof document)a=document.querySelector(e).textContent,r(a);else{var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState)if(200===s.status)r&&r(w(s.responseText));else if(n)return n(s)},s.open("GET",e,t),s.responseType="text",s.send()}else if(e instanceof Event){var i=e.target.files,o=new FileReader;i[0].name;o.onload=function(e){var t=e.target.result;r(w(t))},o.readAsText(i[0])}};N.loadBinaryFile=function(e,t,r,n){if(N.isNode||N.isMeteorServer);else if("string"==typeof e){var a=new XMLHttpRequest;a.open("GET",e,t),a.responseType="arraybuffer",a.onload=function(){for(var e=new Uint8Array(a.response),t=[],n=0;n=26&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t,e>26&&(e=(e/26|0)-1,t=String.fromCharCode(65+e%26)+t)),t},N.xlscn=function(e){var t=e.charCodeAt(0)-65;return e.length>1&&(t=26*(t+1)+e.charCodeAt(1)-65,e.length>2&&(t=26*(t+1)+e.charCodeAt(2)-65)),t},N.domEmptyChildren=function(e){for(var t=e.childNodes.length;t--;)e.removeChild(e.lastChild)},N.like=function(e,t,r){r||(r="");for(var n=0,a="^";n-1?a+="\\"+s:a+=s,n++}return a+="$",(""+(t||"")).toUpperCase().search(RegExp(a.toUpperCase()))>-1};N.glob=function(e,t){for(var r=0,n="^";r-1?n+="\\"+a:n+=a,r++}return n+="$",(""+(e||"")).toUpperCase().search(RegExp(n.toUpperCase()))>-1},N.findAlaSQLPath=function(){if(N.isWebWorker)return"";if(N.isMeteorClient)return"/packages/dist/";if(N.isMeteorServer)return"assets/packages/dist/";if(N.isNode)return"";if(N.isBrowser)for(var e=document.getElementsByTagName("script"),t=0;tT.MAXSQLCACHESIZE&&i.resetSqlCache(),i.sqlCacheSize++,i.sqlCache[s]=o);var c=T.res=o(r,n,a);return c}T.precompile(u.statements[0],T.useid,r);var c=T.res=u.statements[0].execute(e,r,n,a);return c}if(!n)return T.drun(e,u,r,n,a);T.adrun(e,u,r,n,a)}},T.drun=function(e,t,r,n,a){var s=T.useid;s!==e&&T.use(e);for(var i=[],o=0,u=t.statements.length;oe;e+=2){(0,Q[e])(Q[e+1]),Q[e]=void 0,Q[e+1]=void 0}j=0}function o(e,t){var r=this,n=new this.constructor(c);void 0===n[ee]&&I(n);var a=r._state;if(a){var s=arguments[a-1];H(function(){R(a,n,s,r._result)})}else T(r,n,e,t);return n}function u(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var r=new t(c);return g(r,e),r}function c(){}function l(){return new TypeError("You cannot resolve a promise with itself")}function h(){return new TypeError("A promises callback cannot return that same promise.")}function d(e){try{return e.then}catch(e){return ae.error=e,ae}}function f(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}function p(e,t,r){H(function(e){var n=!1,a=f(r,t,function(r){n||(n=!0,t!==r?g(e,r):v(e,r))},function(t){n||(n=!0,S(e,t))},"Settle: "+(e._label||" unknown promise"));!n&&a&&(n=!0,S(e,a))},e)}function b(e,t){t._state===re?v(e,t._result):t._state===ne?S(e,t._result):T(t,void 0,function(t){g(e,t)},function(t){S(e,t)})}function E(e,r,n){r.constructor===e.constructor&&n===z&&constructor.resolve===Z?b(e,r):n===ae?S(e,ae.error):void 0===n?v(e,r):t(n)?p(e,r,n):v(e,r)}function g(t,r){t===r?S(t,l()):e(r)?E(t,r,d(r)):v(t,r)}function m(e){e._onerror&&e._onerror(e._result),y(e)}function v(e,t){e._state===te&&(e._result=t,e._state=re,0!==e._subscribers.length&&H(y,e))}function S(e,t){e._state===te&&(e._state=ne,e._result=t,H(m,e))}function T(e,t,r,n){var a=e._subscribers,s=a.length;e._onerror=null,a[s]=t,a[s+re]=r,a[s+ne]=n,0===s&&e._state&&H(y,e)}function y(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n,a,s=e._result,i=0;is;s++)t.resolve(e[s]).then(r,n)}:function(e,t){t(new TypeError("You must pass an array to race."))})}function k(e){var t=this,r=new t(c);return S(r,e),r}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function $(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function M(e){this[ee]=w(),this._result=this._state=void 0,this._subscribers=[],c!==e&&("function"!=typeof e&&L(),this instanceof M?O(this,e):$())}function U(e,t){this._instanceConstructor=e,this.promise=new e(c),this.promise[ee]||I(this.promise),Array.isArray(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?v(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&v(this.promise,this._result))):S(this.promise,_())}function _(){return new Error("Array Methods must be provided an Array")}function F(){var e;if("undefined"!=typeof global)e=global;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;(!t||"[object Promise]"!==Object.prototype.toString.call(t.resolve())||t.cast)&&(e.Promise=le)}var P;P=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var q,G,V,B=P,j=0,H=function(e,t){Q[j]=e,Q[j+1]=t,2===(j+=2)&&(G?G(i):V())},J="undefined"!=typeof window?window:void 0,Y=J||{},W=Y.MutationObserver||Y.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),K="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Q=new Array(1e3);V=X?function(){return function(){process.nextTick(i)}}():W?function(){var e=0,t=new W(i),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}():K?function(){var e=new MessageChannel;return e.port1.onmessage=i,function(){e.port2.postMessage(0)}}():void 0===J&&"function"==typeof A?function(){try{var e=A,t=e("vertx");return q=t.runOnLoop||t.runOnContext,a()}catch(e){return s()}}():s();var z=o,Z=u,ee=Math.random().toString(36).substring(16),te=void 0,re=1,ne=2,ae=new N,se=new N,ie=0,oe=x,ue=D,ce=k,le=M;M.all=oe,M.race=ue,M.resolve=Z,M.reject=ce,M._setScheduler=r,M._setAsap=n,M._asap=H,M.prototype={constructor:M,then:z,catch:function(e){return this.then(null,e)}};var he=U;U.prototype._enumerate=function(){for(var e=this.length,t=this._input,r=0;this._state===te&&e>r;r++)this._eachEntry(t[r],r)},U.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,n=r.resolve;if(n===Z){var a=d(e);if(a===z&&e._state!==te)this._settledAt(e._state,t,e._result);else if("function"!=typeof a)this._remaining--,this._result[t]=e;else if(r===le){var s=new r(c);E(s,e,a),this._willSettleAt(s,t)}else this._willSettleAt(new r(function(t){t(e)}),t)}else this._willSettleAt(n(e),t)},U.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===te&&(this._remaining--,e===ne?S(n,r):this._result[t]=r),0===this._remaining&&v(n,this._result)},U.prototype._willSettleAt=function(e,t){var r=this;T(e,void 0,function(e){r._settledAt(re,t,e)},function(e){r._settledAt(ne,t,e)})};var de=F,fe={Promise:le,polyfill:de};"function"==typeof define&&define.amd?define(function(){return fe}):"undefined"!=typeof module&&module.exports?module.exports=fe:void 0!==this&&(this.ES6Promise=fe),de()}.call(this);var B=function(e,t,r,n){return new N.global.Promise(function(a,s){T(e,t,function(e,t){t?s(t):(r&&n&&!1!==T.options.progress&&T.options.progress(r,n),a(e))})})},j=function(e){if(!(e.length<1)){for(var t,r,n,a=[],s=0;s0?{status:1,values:n}:{status:-1,values:[]}}return"object"!=typeof e||null===e||"object"!=typeof t||void 0===e[t[0]]?{status:-1,values:[]}:{status:1,values:[e[t[0]]]}},T.srch.APROP=function(e,t){return"object"!=typeof e||null===e||"object"!=typeof t||void 0===e[t[0]]?{status:1,values:[void 0]}:{status:1,values:[e[t[0]]]}},T.srch.EQ=function(e,t,r,n){var a=t[0].toJS("x","");return e===new Function("x,alasql,params","return "+a)(e,T,n)?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.LIKE=function(e,t,r,n){var a=t[0].toJS("x",""),s=new Function("x,alasql,params","return "+a);return e.toUpperCase().match(new RegExp("^"+s(e,T,n).toUpperCase().replace(/%/g,".*").replace(/\?|_/g,".")+"$"),"g")?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.ATTR=function(e,t,r){if("XML"===r.mode)return void 0===t?{status:1,values:[e.attributes]}:"object"==typeof e&&"object"==typeof e.attributes&&void 0!==e.attributes[t[0]]?{status:1,values:[e.attributes[t[0]]]}:{status:-1,values:[]};throw new Error("ATTR is not using in usual mode")},T.srch.CONTENT=function(e,t,r){if("XML"===r.mode)return{status:1,values:[e.content]};throw new Error("ATTR is not using in usual mode")},T.srch.SHARP=function(e,t){var r=T.databases[T.useid].objects[t[0]];return void 0!==e&&e===r?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.PARENT=function(){return console.error("PARENT not implemented",arguments),{status:-1,values:[]}},T.srch.CHILD=function(e,t,r){return"object"==typeof e?Array.isArray(e)?{status:1,values:e}:"XML"===r.mode?{status:1,values:Object.keys(e.children).map(function(t){return e.children[t]})}:{status:1,values:Object.keys(e).map(function(t){return e[t]})}:{status:1,values:[]}},T.srch.KEYS=function(e){return"object"==typeof e&&null!==e?{status:1,values:Object.keys(e)}:{status:1,values:[]}},T.srch.WHERE=function(e,t,r,n){var a=t[0].toJS("x","");return new Function("x,alasql,params","return "+a)(e,T,n)?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.NAME=function(e,t){return e.name===t[0]?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.CLASS=function(e,t){return e.$class==t?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.VERTEX=function(e){return"VERTEX"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.INSTANCEOF=function(e,t){return e instanceof T.fn[t[0]]?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.EDGE=function(e){return"EDGE"===e.$node?{status:1,values:[e]}:{status:-1,values:[]}},T.srch.EX=function(e,t,r,n){var a=t[0].toJS("x","");return{status:1,values:[new Function("x,alasql,params","return "+a)(e,T,n)]}},T.srch.RETURN=function(e,t,r,n){var a={};return t&&t.length>0&&t.forEach(function(t){var r=t.toJS("x",""),s=new Function("x,alasql,params","return "+r);void 0===t.as&&(t.as=t.toString()),a[t.as]=s(e,T,n)}),{status:1,values:[a]}},T.srch.REF=function(e){return{status:1,values:[T.databases[T.useid].objects[e]]}},T.srch.OUT=function(e){if(e.$out&&e.$out.length>0){return{status:1,values:e.$out.map(function(e){return T.databases[T.useid].objects[e]})}}return{status:-1,values:[]}},T.srch.OUTOUT=function(e){if(e.$out&&e.$out.length>0){var t=[];return e.$out.forEach(function(e){var r=T.databases[T.useid].objects[e];r&&r.$out&&r.$out.length>0&&r.$out.forEach(function(e){t=t.concat(T.databases[T.useid].objects[e])})}),{status:1,values:t}}return{status:-1,values:[]}},T.srch.IN=function(e){if(e.$in&&e.$in.length>0){return{status:1,values:e.$in.map(function(e){return T.databases[T.useid].objects[e]})}}return{status:-1,values:[]}},T.srch.ININ=function(e){if(e.$in&&e.$in.length>0){var t=[];return e.$in.forEach(function(e){var r=T.databases[T.useid].objects[e];r&&r.$in&&r.$in.length>0&&r.$in.forEach(function(e){t=t.concat(T.databases[T.useid].objects[e])})}),{status:1,values:t}}return{status:-1,values:[]}},T.srch.AS=function(e,t){
-return T.vars[t[0]]=e,{status:1,values:[e]}},T.srch.AT=function(e,t){return{status:1,values:[T.vars[t[0]]]}},T.srch.CLONEDEEP=function(e){return{status:1,values:[_(e)]}},T.srch.SET=function(e,t,r,n){var a=t.map(function(e){return"@"===e.method?"alasql.vars['"+e.variable+"']="+e.expression.toJS("x",""):"$"===e.method?"params['"+e.variable+"']="+e.expression.toJS("x",""):"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";");return new Function("x,params,alasql",a)(e,n,T),{status:1,values:[e]}},T.srch.ROW=function(e,t,r,n){var a="var y;return [";return a+=t.map(function(e){return e.toJS("x","")}).join(","),a+="]",{status:1,values:[new Function("x,params,alasql",a)(e,n,T)]}},T.srch.D3=function(e){return"VERTEX"!==e.$node&&"EDGE"===e.$node&&(e.source=e.$in[0],e.target=e.$out[0]),{status:1,values:[e]}};var Q=function(e){if(e){if(e&&1===e.length&&e[0].expression&&"function"==typeof e[0].expression){var t=e[0].expression;return function(e,r){var n=t(e),a=t(r);return n>a?1:n===a?0:-1}}var r="",n="";return e.forEach(function(e){var t="";if(e.expression instanceof X.NumValue&&(e.expression=self.columns[e.expression.value-1]),e.expression instanceof X.Column){var a=e.expression.columnid;T.options.valueof&&(t=".valueOf()"),e.nocase&&(t+=".toUpperCase()"),"_"===a?(r+="if(a"+t+("ASC"===e.direction?">":"<")+"b"+t+")return 1;",r+="if(a"+t+"==b"+t+"){"):(r+="if((a['"+a+"']||'')"+t+("ASC"===e.direction?">":"<")+"(b['"+a+"']||'')"+t+")return 1;",r+="if((a['"+a+"']||'')"+t+"==(b['"+a+"']||'')"+t+"){")}else t=".valueOf()",e.nocase&&(t+=".toUpperCase()"),r+="if(("+e.toJS("a","")+"||'')"+t+("ASC"===e.direction?">(":"<(")+e.toJS("b","")+"||'')"+t+")return 1;",r+="if(("+e.toJS("a","")+"||'')"+t+"==("+e.toJS("b","")+"||'')"+t+"){";n+="}"}),r+="return 0;",r+=n+"return -1",new Function("a,b",r)}};T.srch.ORDERBY=function(e,t){return{status:1,values:e.sort(Q(t))}};var z=function(e){for(var t=0,r=e.sources.length;t0&&"ix"==n.optimization&&n.onleftfn&&n.onrightfn){if(n.databaseid&&T.databases[n.databaseid].tables[n.tableid]){T.databases[n.databaseid].tables[n.tableid].indices||(e.database.tables[n.tableid].indices={});var a=T.databases[n.databaseid].tables[n.tableid].indices[x(n.onrightfns+"`"+n.srcwherefns)];!T.databases[n.databaseid].tables[n.tableid].dirty&&a&&(n.ix=a)}if(!n.ix){n.ix={};for(var s,i={},o=0,u=n.data.length;(s=n.data[o])||n.getfn&&(s=n.getfn(o))||o0&&(e+=" GROUP BY "+this.group.map(function(e){return e.toString()}).join(", ")),this.having&&(e+=" HAVING "+this.having.toString()),this.order&&this.order.length>0&&(e+=" ORDER BY "+this.order.map(function(e){return e.toString()}).join(", ")),this.limit&&(e+=" LIMIT "+this.limit.value),this.offset&&(e+=" OFFSET "+this.offset.value),this.union&&(e+=" UNION "+(this.corresponding?"CORRESPONDING ":"")+this.union.toString()),this.unionall&&(e+=" UNION ALL "+(this.corresponding?"CORRESPONDING ":"")+this.unionall.toString()),this.except&&(e+=" EXCEPT "+(this.corresponding?"CORRESPONDING ":"")+this.except.toString()),this.intersect&&(e+=" INTERSECT "+(this.corresponding?"CORRESPONDING ":"")+this.intersect.toString()),e},X.Select.prototype.toJS=function(e){return"alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+"))[0]"},X.Select.prototype.compile=function(e,t){var r=T.databases[e],n=new W;if(n.removeKeys=[],n.aggrKeys=[],n.explain=this.explain,n.explaination=[],n.explid=1,n.modifier=this.modifier,n.database=r,this.compileWhereExists(n),this.compileQueries(n),n.defcols=this.compileDefCols(n,e),n.fromfn=this.compileFrom(n),this.joins&&this.compileJoins(n),n.rownums=[],this.compileSelectGroup0(n),this.group||n.selectGroup.length>0?n.selectgfns=this.compileSelectGroup1(n):n.selectfns=this.compileSelect1(n,t),this.compileRemoveColumns(n),this.where&&this.compileWhereJoins(n),n.wherefn=this.compileWhere(n),(this.group||n.selectGroup.length>0)&&(n.groupfn=this.compileGroup(n)),this.having&&(n.havingfn=this.compileHaving(n)),this.order&&(n.orderfn=this.compileOrder(n)),this.group||n.selectGroup.length>0?n.selectgfn=this.compileSelectGroup2(n):n.selectfn=this.compileSelect2(n),n.distinct=this.distinct,this.pivot&&(n.pivotfn=this.compilePivot(n)),this.unpivot&&(n.pivotfn=this.compileUnpivot(n)),this.top?n.limit=this.top.value:this.limit&&(n.limit=this.limit.value,this.offset&&(n.offset=this.offset.value)),n.percent=this.percent,n.corresponding=this.corresponding,this.union?(n.unionfn=this.union.compile(e),this.union.order?n.orderfn=this.union.compileOrder(n):n.orderfn=null):this.unionall?(n.unionallfn=this.unionall.compile(e),this.unionall.order?n.orderfn=this.unionall.compileOrder(n):n.orderfn=null):this.except?(n.exceptfn=this.except.compile(e),this.except.order?n.orderfn=this.except.compileOrder(n):n.orderfn=null):this.intersect&&(n.intersectfn=this.intersect.compile(e),this.intersect.order?n.intersectfn=this.intersect.compileOrder(n):n.orderfn=null),this.into){if(this.into instanceof X.Table)T.options.autocommit&&T.databases[this.into.databaseid||e].engineid?n.intoallfns='return alasql.engines["'+T.databases[this.into.databaseid||e].engineid+'"].intoTable("'+(this.into.databaseid||e)+'","'+this.into.tableid+'",this.data, columns, cb);':n.intofns="alasql.databases['"+(this.into.databaseid||e)+"'].tables['"+this.into.tableid+"'].data.push(r);";else if(this.into instanceof X.VarValue)n.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;';else if(this.into instanceof X.FuncValue){var a="return alasql.into['"+this.into.funcid.toUpperCase()+"'](";this.into.args&&this.into.args.length>0?(a+=this.into.args[0].toJS()+",",this.into.args.length>1?a+=this.into.args[1].toJS()+",":a+="undefined,"):a+="undefined, undefined,",n.intoallfns=a+"this.data,columns,cb)"}else this.into instanceof X.ParamValue&&(n.intofns="params['"+this.into.param+"'].push(r)");n.intofns?n.intofn=new Function("r,i,params,alasql","var y;"+n.intofns):n.intoallfns&&(n.intoallfn=new Function("columns,cb,params,alasql","var y;"+n.intoallfns))}var s=function(e,t,r){return n.params=e,i(n,r,function(e,r){if(r)return t(r,null);if(n.rownums.length>0)for(var a=0,s=e.length;a0?(t.args[0]?n+=t.args[0].toJS("query.oldscope")+",":n+="null,",t.args[1]?n+=t.args[1].toJS("query.oldscope")+",":n+="null,"):n+="null,null,",n+="cb,idx,query",n+=");/*if(cb)res=cb(res,idx,query);*/return res",s.datafn=new Function("query, params, cb, idx, alasql",n);else{if(!(t instanceof X.FromData))throw new Error("Wrong table at FROM");s.datafn=function(e,r,n,a,s){var i=t.data;return n&&(i=n(i,a,e)),i}}e.sources.push(s)}),e.defaultTableid=e.sources[0].alias)},T.prepareFromData=function(e,t){var r,n,a=e;if("string"==typeof e){if(a=e.split(/\r?\n/),t)for(r=0,n=a.length;r0?(u[0]?o+=u[0].toJS("query.oldscope")+",":o+="null,",u[1]?o+=u[1].toJS("query.oldscope")+",":o+="null,"):o+="null,null,",o+="cb,idx,query",o+=");/*if(cb)res=cb(res,idx,query);*/return res",s.datafn=new Function("query, params, cb, idx, alasql",o),e.aliases[s.alias]={type:"funcvalue"}}var c=s.alias;if(t.natural){if(t.using||t.on)throw new Error("NATURAL JOIN cannot have USING or ON clauses");if(e.sources.length>0){var l=e.sources[e.sources.length-1],h=T.databases[l.databaseid].tables[l.tableid],d=T.databases[s.databaseid].tables[s.tableid];if(!h||!d)throw new Error("In this version of Alasql NATURAL JOIN works for tables with predefined columns only");var f=h.columns.map(function(e){return e.columnid}),p=d.columns.map(function(e){return e.columnid});t.using=L(f,p).map(function(e){return{columnid:e}})}}if(t.using)l=e.sources[e.sources.length-1],s.onleftfns=t.using.map(function(e){return"p['"+(l.alias||l.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),s.onleftfn=new Function("p,params,alasql","var y;return "+s.onleftfns),s.onrightfns=t.using.map(function(e){return"p['"+(s.alias||s.tableid)+"']['"+e.columnid+"']"}).join('+"`"+'),s.onrightfn=new Function("p,params,alasql","var y;return "+s.onrightfns),s.optimization="ix";else if(t.on)if(t.on instanceof X.Op&&"="===t.on.op&&!t.on.allsome){s.optimization="ix";var b="",E="",g="",m=!1,v=t.on.left.toJS("p",e.defaultTableid,e.defcols),S=t.on.right.toJS("p",e.defaultTableid,e.defcols);v.indexOf("p['"+c+"']")>-1&&!(S.indexOf("p['"+c+"']")>-1)?(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?E=v:m=!0:!(v.indexOf("p['"+c+"']")>-1)&&S.indexOf("p['"+c+"']")>-1&&(S.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?b=v:m=!0,S.indexOf("p['"+c+"']")>-1&&!(v.indexOf("p['"+c+"']")>-1)?(S.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?E=S:m=!0:!(S.indexOf("p['"+c+"']")>-1)&&v.indexOf("p['"+c+"']")>-1&&(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+c+"']"})?b=S:m=!0,m&&(E="",b="",g=t.on.toJS("p",e.defaultTableid,e.defcols),s.optimization="no"),s.onleftfns=b,s.onrightfns=E,s.onmiddlefns=g||"true",s.onleftfn=new Function("p,params,alasql","var y;return "+s.onleftfns),s.onrightfn=new Function("p,params,alasql","var y;return "+s.onrightfns),s.onmiddlefn=new Function("p,params,alasql","var y;return "+s.onmiddlefns)}else s.optimization="no",s.onmiddlefns=t.on.toJS("p",e.defaultTableid,e.defcols),s.onmiddlefn=new Function("p,params,alasql","var y;return "+t.on.toJS("p",e.defaultTableid,e.defcols));e.sources.push(s)})},X.Select.prototype.compileWhere=function(e){if(this.where){if("function"==typeof this.where)return this.where;var t=this.where.toJS("p",e.defaultTableid,e.defcols);return e.wherefns=t,new Function("p,params,alasql","var y;return "+t)}return function(){return!0}},X.Select.prototype.compileWhereJoins=function(e){},X.Select.prototype.compileGroup=function(e){if(e.sources.length>0)var t=e.sources[0].alias;else var t="";var r=e.defcols,n=[[]];this.group&&(n=p(this.group,e));var a=[];n.forEach(function(e){a=D(a,e)}),e.allgroups=a,e.ingroup=[];var s="";return n.forEach(function(n){s+="var g=this.xgroups[";var i=n.map(function(t){var r=t.split("\t")[0],n=t.split("\t")[1];return""===r?"1":(e.ingroup.push(r),n)});0===i.length&&(i=["''"]),s+=i.join('+"`"+'),s+="];if(!g) {this.groups.push((g=this.xgroups[",s+=i.join('+"`"+'),s+="] = {",s+=n.map(function(e){var t=e.split("\t")[0],r=e.split("\t")[1];return""===t?"":"'"+t+"':"+r+","}).join("");var o=k(a,n);s+=o.map(function(e){return"'"+e.split("\t")[0]+"':null,"}).join("");var u="",c="";void 0!==e.groupStar&&(c+="for(var f in p['"+e.groupStar+"']) {g[f]=p['"+e.groupStar+"'][f];};"),s+=e.selectGroup.map(function(n){var a=n.expression.toJS("p",t,r),s=n.nick;return n instanceof X.AggrValue?(n.distinct&&(u+=",g['$$_VALUES_"+s+"']={},g['$$_VALUES_"+s+"']["+a+"]=true"),"SUM"===n.aggregatorid?"'"+s+"':("+a+")||0,":"MIN"===n.aggregatorid||"MAX"===n.aggregatorid||"FIRST"===n.aggregatorid||"LAST"===n.aggregatorid?"'"+s+"':"+a+",":"ARRAY"===n.aggregatorid?"'"+s+"':["+a+"],":"COUNT"===n.aggregatorid?"*"===n.expression.columnid?"'"+s+"':1,":"'"+s+"':(typeof "+a+' != "undefined")?1:0,':"AVG"===n.aggregatorid?(e.removeKeys.push("_SUM_"+s),e.removeKeys.push("_COUNT_"+s),"'"+s+"':"+a+",'_SUM_"+s+"':("+a+")||0,'_COUNT_"+s+"':(typeof "+a+' != "undefined")?1:0,'):"AGGR"===n.aggregatorid?(u+=",g['"+s+"']="+n.expression.toJS("g",-1),""):"REDUCE"===n.aggregatorid?(e.aggrKeys.push(n),"'"+s+"':alasql.aggr['"+n.funcid+"']("+a+",undefined,1),"):""):""}).join(""),s+="}"+u+",g));"+c+"} else {",s+=e.selectGroup.map(function(e){var n=e.nick,a=e.expression.toJS("p",t,r);if(e instanceof X.AggrValue){var s="",i="";if(e.distinct)var s="if(typeof "+a+'!="undefined" && (!g[\'$$_VALUES_'+n+"']["+a+"])) \t\t\t\t \t\t {",i="g['$$_VALUES_"+n+"']["+a+"]=true;}";return"SUM"===e.aggregatorid?s+"g['"+n+"']+=("+a+"||0);"+i:"COUNT"===e.aggregatorid?"*"===e.expression.columnid?s+"g['"+n+"']++;"+i:s+"if(typeof "+a+'!="undefined") g[\''+n+"']++;"+i:"ARRAY"===e.aggregatorid?s+"g['"+n+"'].push("+a+");"+i:"MIN"===e.aggregatorid?s+"g['"+n+"']=Math.min(g['"+n+"'],"+a+");"+i:"MAX"===e.aggregatorid?s+"g['"+n+"']=Math.max(g['"+n+"'],"+a+");"+i:"FIRST"===e.aggregatorid?"":"LAST"===e.aggregatorid?s+"g['"+n+"']="+a+";"+i:"AVG"===e.aggregatorid?s+"g['_SUM_"+n+"']+=(y="+a+")||0;g['_COUNT_"+n+"']+=(typeof y!=\"undefined\")?1:0;g['"+n+"']=g['_SUM_"+n+"']/g['_COUNT_"+n+"'];"+i:"AGGR"===e.aggregatorid?s+"g['"+n+"']="+e.expression.toJS("g",-1)+";"+i:"REDUCE"===e.aggregatorid?s+"g['"+n+"']=alasql.aggr."+e.funcid+"("+a+",g['"+n+"'],2);"+i:""}return""}).join(""),s+="}"}),new Function("p,params,alasql","var y;"+s)},X.Select.prototype.compileSelect1=function(t,r){var n=this;t.columns=[],t.xcolumns={},t.selectColumns={},t.dirtyColumns=!1;var a="var r={",s="",i=[];return this.columns.forEach(function(a){if(a instanceof X.Column)if("*"===a.columnid)if(a.func)s+="r=params['"+a.param+"'](p['"+t.sources[0].alias+"'],p,params,alasql);";else if(a.tableid){var o=f(t,[a.tableid],!1);o.s&&(i=i.concat(o.s)),s+=o.sp}else{var o=f(t,Object.keys(t.aliases),!0);o.s&&(i=i.concat(o.s)),s+=o.sp}else{var u=a.tableid,c=a.databaseid||t.sources[0].databaseid||t.database.databaseid;if(u||(u=t.defcols[a.columnid]),u||(u=t.defaultTableid),"_"!==a.columnid){var l=r&&r.length>1&&Array.isArray(r[0])&&r[0].length>=1&&r[0][0].hasOwnProperty("sheetid");l?s='var r={};var w=p["'+u+'"];var cols=['+n.columns.map(function(e){return"'"+e.columnid+"'"}).join(",")+"];var colas=["+n.columns.map(function(e){return"'"+(e.as||e.columnid)+"'"}).join(",")+"];for (var i=0;i0){var p=d[a.columnid];if(void 0===p)throw new Error("Column does not exist: "+a.columnid);var b={columnid:a.as||a.columnid,dbtypeid:p.dbtypeid,dbsize:p.dbsize,dbpecision:p.dbprecision,dbenum:p.dbenum};t.columns.push(b),t.xcolumns[b.columnid]=b}else{var b={columnid:a.as||a.columnid};t.columns.push(b),t.xcolumns[b.columnid]=b,t.dirtyColumns=!0}}else{var b={columnid:a.as||a.columnid};t.columns.push(b),t.xcolumns[b.columnid]=b}}else if(a instanceof X.AggrValue){n.group||(n.group=[""]),a.as||(a.as=C(a.toString())),"SUM"===a.aggregatorid||"MAX"===a.aggregatorid||"MIN"===a.aggregatorid||"FIRST"===a.aggregatorid||"LAST"===a.aggregatorid||"AVG"===a.aggregatorid||"ARRAY"===a.aggregatorid||"REDUCE"===a.aggregatorid?i.push("'"+C(a.as)+"':"+e(a.expression.toJS("p",t.defaultTableid,t.defcols))):"COUNT"===a.aggregatorid&&i.push("'"+C(a.as)+"':1");var b={columnid:a.as||a.columnid||a.toString()};t.columns.push(b),t.xcolumns[b.columnid]=b}else{i.push("'"+C(a.as||a.columnid||a.toString())+"':"+e(a.toJS("p",t.defaultTableid,t.defcols))),t.selectColumns[C(a.as||a.columnid||a.toString())]=!0;var b={columnid:a.as||a.columnid||a.toString()};t.columns.push(b),t.xcolumns[b.columnid]=b}}),a+=i.join(",")+"};"+s},X.Select.prototype.compileSelect2=function(e){var t=e.selectfns;return this.orderColumns&&this.orderColumns.length>0&&this.orderColumns.forEach(function(r,n){var a="$$$"+n;r instanceof X.Column&&e.xcolumns[r.columnid]?t+="r['"+a+"']=r['"+r.columnid+"'];":t+="r['"+a+"']="+r.toJS("p",e.defaultTableid,e.defcols)+";",e.removeKeys.push(a)}),new Function("p,params,alasql","var y;"+t+"return r")},X.Select.prototype.compileSelectGroup0=function(e){var t=this;t.columns.forEach(function(r,n){if(r instanceof X.Column&&"*"===r.columnid)e.groupStar=r.tableid||"default";else{var a;a=C(r instanceof X.Column?r.columnid:r.toString(!0));for(var s=0;s-1&&(r+="r['"+(t.as||t.nick)+"']=g['"+t.nick+"'];")}),this.orderColumns&&this.orderColumns.length>0&&this.orderColumns.forEach(function(t,n){var a="$$$"+n;t instanceof X.Column&&e.groupColumns[t.columnid]?r+="r['"+a+"']=r['"+t.columnid+"'];":r+="r['"+a+"']="+t.toJS("g","")+";",e.removeKeys.push(a)}),new Function("g,params,alasql","var y;"+r+"return r")},X.Select.prototype.compileRemoveColumns=function(e){void 0!==this.removecolumns&&(e.removeKeys=e.removeKeys.concat(this.removecolumns.filter(function(e){return void 0===e.like}).map(function(e){return e.columnid})),e.removeLikeKeys=this.removecolumns.filter(function(e){return void 0!==e.like}).map(function(e){return e.like.value}))},X.Select.prototype.compileHaving=function(e){if(this.having){var t=this.having.toJS("g",-1);return e.havingfns=t,new Function("g,params,alasql","var y;return "+t)}return function(){return!0}},X.Select.prototype.compileOrder=function(e){var t=this;if(t.orderColumns=[],this.order){if(this.order&&1==this.order.length&&this.order[0].expression&&"function"==typeof this.order[0].expression){var r=this.order[0].expression;return function(e,t){var n=r(e),a=r(t);return n>a?1:n==a?0:-1}}var n="",a="";return this.order.forEach(function(r,s){if(r.expression instanceof X.NumValue)var i=t.columns[r.expression.value-1];else var i=r.expression;t.orderColumns.push(i);var o="$$$"+s,u="";if(r.expression instanceof X.Column){var c=r.expression.columnid;if(e.xcolumns[c]){var l=e.xcolumns[c].dbtypeid;"DATE"!=l&&"DATETIME"!=l&&"DATETIME2"!=l||(u=".valueOf()")}else T.options.valueof&&(u=".valueOf()")}r.nocase&&(u+=".toUpperCase()"),n+="if((a['"+o+"']||'')"+u+("ASC"==r.direction?">":"<")+"(b['"+o+"']||'')"+u+")return 1;",n+="if((a['"+o+"']||'')"+u+"==(b['"+o+"']||'')"+u+"){",a+="}"}),n+="return 0;",n+=a+"return -1",e.orderfns=n,new Function("a,b","var y;"+n)}},X.Select.prototype.compilePivot=function(e){var t=this,r=t.pivot.columnid,n=t.pivot.expr.expression.columnid,a=t.pivot.expr.aggregatorid,s=t.pivot.inlist;return s&&(s=s.map(function(e){return e.expr.columnid})),function(){var e=this,t=e.columns.filter(function(e){return e.columnid!=r&&e.columnid!=n}).map(function(e){return e.columnid}),i=[],o={},u={},c={},l=[];if(e.data.forEach(function(e){if(!s||s.indexOf(e[r])>-1){var h=t.map(function(t){return e[t]}).join("`"),d=u[h];if(d||(d={},u[h]=d,l.push(d),t.forEach(function(t){d[t]=e[t]})),c[h]||(c[h]={}),c[h][e[r]]?c[h][e[r]]++:c[h][e[r]]=1,o[e[r]]||(o[e[r]]=!0,i.push(e[r])),"SUM"==a||"AVG"==a)void 0===d[e[r]]&&(d[e[r]]=0),d[e[r]]+=e[n];else if("COUNT"==a)void 0===d[e[r]]&&(d[e[r]]=0),d[e[r]]++;else if("MIN"==a)void 0===d[e[r]]&&(d[e[r]]=1/0),e[n]d[e[r]]&&(d[e[r]]=e[n]);else if("FIRST"==a)void 0===d[e[r]]&&(d[e[r]]=e[n]);else if("LAST"==a)d[e[r]]=e[n];else{if(!T.aggr[a])throw new Error("Wrong aggregator in PIVOT clause");T.aggr[a](d[e[r]],e[n])}}}),"AVG"==a)for(var h in u){var d=u[h];for(var f in d)-1==t.indexOf(f)&&f!=n&&(d[f]=d[f]/c[h][f])}e.data=l,s&&(i=s);var p=e.columns.filter(function(e){return e.columnid==n})[0];e.columns=e.columns.filter(function(e){return!(e.columnid==r||e.columnid==n)}),i.forEach(function(t){var r=_(p);r.columnid=t,e.columns.push(r)})}},X.Select.prototype.compileUnpivot=function(e){var t=this,r=t.unpivot.tocolumnid,n=t.unpivot.forcolumnid,a=t.unpivot.inlist.map(function(e){return e.columnid});return function(){var t=[],s=e.columns.map(function(e){return e.columnid}).filter(function(e){return-1==a.indexOf(e)&&e!=n&&e!=r});e.data.forEach(function(e){a.forEach(function(a){var i={};s.forEach(function(t){i[t]=e[t]}),i[n]=a,i[r]=e[a],t.push(i)})}),e.data=t}};var Z=function(e,t){for(var r=[],n=0,a=e.length,s=0;s"===this.op||"!"===this.op){var e=this.left.toString()+this.op;return"string"!=typeof this.right&&"number"!=typeof this.right&&(e+="("),e+=this.right.toString(),"string"!=typeof this.right&&"number"!=typeof this.right&&(e+=")"),e}return this.left.toString()+" "+this.op+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()},X.Op.prototype.findAggregator=function(e){this.left&&this.left.findAggregator&&this.left.findAggregator(e),this.right&&this.right.findAggregator&&!this.allsome&&this.right.findAggregator(e)},X.Op.prototype.toType=function(e){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(["||"].indexOf(this.op)>-1)return"string";if("+"===this.op){if("string"===this.left.toType(e)||"string"===this.right.toType(e))return"string";if("number"===this.left.toType(e)||"number"===this.right.toType(e))return"number"}return["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE","REGEXP","GLOB"].indexOf(this.op)>-1?"boolean":"BETWEEN"===this.op||"NOT BETWEEN"===this.op||"IS NULL"===this.op||"IS NOT NULL"===this.op?"boolean":this.allsome?"boolean":this.op?"unknown":this.left.toType()},X.Op.prototype.toJS=function(e,t,r){var n,a=[],s=this.op,i=this,o=function(n){return n.toJS&&(n=n.toJS(e,t,r)),"y["+(a.push(n)-1)+"]"},u=function(){return o(i.left)},c=function(){return o(i.right)};if("="===this.op?s="===":"<>"===this.op?s="!=":"OR"===this.op&&(s="||"),"->"===this.op){var l="("+u()+"||{})";if("string"==typeof this.right)n=l+'["'+this.right+'"]';else if("number"==typeof this.right)n=l+"["+this.right+"]";else if(this.right instanceof X.FuncValue){var h=[];if(this.right.args&&0!==this.right.args.length)var h=this.right.args.map(o);n=l+"['"+this.right.funcid+"']("+h.join(",")+")"}else n=l+"["+c()+"]"}if("!"===this.op&&"string"==typeof this.right&&(n="alasql.databases[alasql.useid].objects["+u()+']["'+this.right+'"]'),"IS"===this.op&&(n="(("+u()+"==null) === ("+c()+"==null))"),"=="===this.op&&(n="alasql.utils.deepEqual("+u()+","+c()+")"),"==="!==this.op&&"!==="!==this.op||(n="("+("!==="===this.op?"!":"")+"(("+u()+").valueOf()===("+c()+").valueOf()))"),"!=="===this.op&&(n="(!alasql.utils.deepEqual("+u()+","+c()+"))"),"||"===this.op&&(n="(''+("+u()+"||'')+("+c()+'||""))'),"LIKE"===this.op||"NOT LIKE"===this.op){var n="("+("NOT LIKE"===this.op?"!":"")+"alasql.utils.like("+c()+","+u();this.escape&&(n+=","+o(this.escape)),n+="))"}if("REGEXP"===this.op&&(n="alasql.stdfn.REGEXP_LIKE("+u()+","+c()+")"),"GLOB"===this.op&&(n="alasql.utils.glob("+u()+","+c()+")"),"BETWEEN"===this.op||"NOT BETWEEN"===this.op){var d=u();n="("+("NOT BETWEEN"===this.op?"!":"")+"(("+o(this.right1)+"<="+d+") && ("+d+"<="+o(this.right2)+")))"}if("IN"===this.op&&(this.right instanceof X.Select?(n="(",n+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,"+e+"))",n+=".indexOf(",n+=u()+")>-1)"):n=Array.isArray(this.right)?"(["+this.right.map(o).join(",")+"].indexOf("+u()+")>-1)":"("+c()+".indexOf("+u()+")>-1)"),"NOT IN"===this.op&&(this.right instanceof X.Select?(n="(",n+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,p))",n+=".indexOf(",n+=u()+")<0)"):Array.isArray(this.right)?(n="(["+this.right.map(o).join(",")+"].indexOf(",n+=u()+")<0)"):(n="("+c()+".indexOf(",n+=u()+")==-1)")),"ALL"===this.allsome){var n;if(this.right instanceof X.Select)n="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",n+=".every(function(b){return (",n+=u()+")"+s+"b})";else{if(!Array.isArray(this.right))throw new Error("NOT IN operator without SELECT");n=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),n+=".every(function(b){return (",n+=u()+")"+s+"b})"}}if("SOME"===this.allsome||"ANY"===this.allsome){var n;if(this.right instanceof X.Select)n="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",n+=".some(function(b){return (",n+=u()+")"+s+"b})";else{if(!Array.isArray(this.right))throw new Error("SOME/ANY operator without SELECT");n=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),n+=".some(function(b){return (",n+=u()+")"+s+"b})"}}if("AND"===this.op){if(this.left.reduced){if(this.right.reduced)return"true";n=c()}else this.right.reduced&&(n=u());s="&&"}var f=n||"("+u()+s+c()+")",p="y=[("+a.join("), (")+")]";return"&&"===s||"||"===s||"IS"===s||"IS NULL"===s||"IS NOT NULL"===s?"("+p+", "+f+")":"("+p+", y.some(function(e){return e == null}) ? void 0 : "+f+")"},X.VarValue=function(e){return X.extend(this,e)},X.VarValue.prototype.toString=function(){return"@"+this.variable},X.VarValue.prototype.toType=function(){return"unknown"},X.VarValue.prototype.toJS=function(){return"alasql.vars['"+this.variable+"']"},X.NumValue=function(e){return X.extend(this,e)},X.NumValue.prototype.toString=function(){return this.value.toString()},X.NumValue.prototype.toType=function(){return"number"},X.NumValue.prototype.toJS=function(){return""+this.value},X.StringValue=function(e){return X.extend(this,e)},X.StringValue.prototype.toString=function(){return"'"+this.value.toString()+"'"},X.StringValue.prototype.toType=function(){return"string"},X.StringValue.prototype.toJS=function(){return"'"+C(this.value)+"'"},X.DomainValueValue=function(e){return X.extend(this,e)},X.DomainValueValue.prototype.toString=function(){return"VALUE"},X.DomainValueValue.prototype.toType=function(){return"object"},X.DomainValueValue.prototype.toJS=function(e,t,r){return e},X.ArrayValue=function(e){return X.extend(this,e)},X.ArrayValue.prototype.toString=function(){return"ARRAY[]"},X.ArrayValue.prototype.toType=function(){return"object"},X.ArrayValue.prototype.toJS=function(e,t,r){return"[("+this.value.map(function(n){return n.toJS(e,t,r)}).join("), (")+")]"},X.LogicValue=function(e){return X.extend(this,e)},X.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"},X.LogicValue.prototype.toType=function(){return"boolean"},X.LogicValue.prototype.toJS=function(){return this.value?"true":"false"},X.NullValue=function(e){return X.extend(this,e)},X.NullValue.prototype.toString=function(){return"NULL"},X.NullValue.prototype.toJS=function(){return"undefined"},X.ParamValue=function(e){return X.extend(this,e)},X.ParamValue.prototype.toString=function(){return"$"+this.param},X.ParamValue.prototype.toJS=function(){return"string"==typeof this.param?"params['"+this.param+"']":"params["+this.param+"]"},X.UniOp=function(e){return X.extend(this,e)},X.UniOp.prototype.toString=function(){var e;return e=void 0,"~"===this.op&&(e=this.op+this.right.toString()),"-"===this.op&&(e=this.op+this.right.toString()),"+"===this.op&&(e=this.op+this.right.toString()),"#"===this.op&&(e=this.op+this.right.toString()),"NOT"===this.op&&(e=this.op+"("+this.right.toString()+")"),null===this.op&&(e="("+this.right.toString()+")"),e||(e="("+this.right.toString()+")"),e},X.UniOp.prototype.findAggregator=function(e){this.right.findAggregator&&this.right.findAggregator(e)},X.UniOp.prototype.toType=function(){return"-"===this.op?"number":"+"===this.op?"number":"NOT"===this.op?"boolean":void 0},X.UniOp.prototype.toJS=function(e,t,r){return"~"===this.op?"(~("+this.right.toJS(e,t,r)+"))":"-"===this.op?"(-("+this.right.toJS(e,t,r)+"))":"+"===this.op?"("+this.right.toJS(e,t,r)+")":"NOT"===this.op?"!("+this.right.toJS(e,t,r)+")":"#"===this.op?this.right instanceof X.Column?"(alasql.databases[alasql.useid].objects['"+this.right.columnid+"'])":"(alasql.databases[alasql.useid].objects["+this.right.toJS(e,t,r)+"])":null==this.op?"("+this.right.toJS(e,t,r)+")":void 0},X.Column=function(e){return X.extend(this,e)},X.Column.prototype.toString=function(e){var t;return t=this.columnid==+this.columnid?"["+this.columnid+"]":this.columnid,this.tableid&&(t=+this.columnid===this.columnid?this.tableid+t:this.tableid+"."+t,this.databaseid&&(t=this.databaseid+"."+t)),this.alias&&!e&&(t+=" AS "+this.alias),t},X.Column.prototype.toJS=function(e,t,r){var n="";if(this.tableid||""!==t||r)if("g"===e)n="g['"+this.nick+"']";else if(this.tableid)n="_"!==this.columnid?e+"['"+this.tableid+"']['"+this.columnid+"']":"g"===e?"g['_']":e+"['"+this.tableid+"']";else if(r){var a=r[this.columnid];if("-"===a)throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables');n=a?"_"!==this.columnid?e+"['"+a+"']['"+this.columnid+"']":e+"['"+a+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']"}else n=-1===t?e+"['"+this.columnid+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']";else n="_"!==this.columnid?e+"['"+this.columnid+"']":"g"===e?"g['_']":e;return n},X.AggrValue=function(e){return X.extend(this,e)},X.AggrValue.prototype.toString=function(e){var t="";return"REDUCE"===this.aggregatorid?t+=this.funcid+"(":t+=this.aggregatorid+"(",this.distinct&&(t+="DISTINCT "),this.expression&&(t+=this.expression.toString()),t+=")",this.over&&(t+=" "+this.over.toString()),this.alias&&!e&&(t+=" AS "+this.alias),t},X.AggrValue.prototype.findAggregator=function(e){var t=C(this.toString())+":"+e.selectGroup.length,r=!1;if(!r){if(!this.nick){this.nick=t;for(var r=!1,n=0;n-1?"number":["ARRAY"].indexOf(this.aggregatorid)>-1?"array":["FIRST","LAST"].indexOf(this.aggregatorid)>-1?this.expression.toType():void 0},X.AggrValue.prototype.toJS=function(){var e=this.nick;return void 0===e&&(e=this.toString()),"g['"+e+"']"},X.OrderExpression=function(e){return X.extend(this,e)},X.OrderExpression.prototype.toString=X.Expression.prototype.toString,X.GroupExpression=function(e){return X.extend(this,e)},X.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"},X.FromData=function(e){return X.extend(this,e)},X.FromData.prototype.toString=function(){return this.data?"DATA("+(1e16*Math.random()|0)+")":"?"},X.FromData.prototype.toJS=function(){},X.Select.prototype.exec=function(e,t){this.preparams&&(e=this.preparams.concat(e));var r=T.useid;db=T.databases[r];var n=this.toString(),a=x(n),s=this.compile(r);if(s){s.sql=n,s.dbversion=db.dbversion,db.sqlCacheSize>T.MAXSQLCACHESIZE&&db.resetSqlCache(),db.sqlCacheSize++,db.sqlCache[a]=s;return T.res=s(e,t)}},X.Select.prototype.Select=function(){var e=this;if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return e.columns=[],args.forEach(function(t){if("string"==typeof t)e.columns.push(new X.Column({columnid:t}));else if("function"==typeof t){var r=0;e.preparams?r=e.preparams.length:e.preparams=[],e.preparams.push(t),e.columns.push(new X.Column({columnid:"*",func:t,param:r}))}}),e},X.Select.prototype.From=function(e){var t=this;if(t.from||(t.from=[]),Array.isArray(e)){var r=0;t.preparams?r=t.preparams.length:t.preparams=[],t.preparams.push(e),t.from.push(new X.ParamValue({param:r}))}else{if("string"!=typeof e)throw new Error("Unknown arguments in From() function");t.from.push(new X.Table({tableid:e}))}return t},X.Select.prototype.OrderBy=function(){var e=this;if(e.order=[],0==arguments.length)args=["_"];else if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return args.length>0&&args.forEach(function(t){var r=new X.Column({columnid:t});"function"==typeof t&&(r=t),e.order.push(new X.OrderExpression({expression:r,direction:"ASC"}))}),e},X.Select.prototype.Top=function(e){var t=this;return t.top=new X.NumValue({value:e}),t},X.Select.prototype.GroupBy=function(){var e=this;if(arguments.length>1)args=Array.prototype.slice.call(arguments);else{if(1!=arguments.length)throw new Error("Wrong number of arguments of Select() function");Array.isArray(arguments[0])?args=arguments[0]:args=[arguments[0]]}return e.group=[],args.forEach(function(t){var r=new X.Column({columnid:t});e.group.push(r)}),e},X.Select.prototype.Where=function(e){var t=this;return"function"==typeof e&&(t.where=e),t},X.FuncValue=function(e){return X.extend(this,e)},X.FuncValue.prototype.toString=function(e){var t="";return T.fn[this.funcid]?t+=this.funcid:T.aggr[this.funcid]?t+=this.funcid:(T.stdlib[this.funcid.toUpperCase()]||T.stdfn[this.funcid.toUpperCase()])&&(t+=this.funcid.toUpperCase()),t+="(",this.args&&this.args.length>0&&(t+=this.args.map(function(e){return e.toString()}).join(",")),t+=")",this.as&&!e&&(t+=" AS "+this.as.toString()),t},X.FuncValue.prototype.execute=function(e,t,r){var n=1;return T.precompile(this,e,t),new Function("params,alasql","var y;return "+this.toJS("","",null))(t,T),r&&(n=r(n)),n},X.FuncValue.prototype.findAggregator=function(e){this.args&&this.args.length>0&&this.args.forEach(function(t){t.findAggregator&&t.findAggregator(e)})},X.FuncValue.prototype.toJS=function(e,t,r){var n="",a=this.funcid;return!T.fn[a]&&T.stdlib[a.toUpperCase()]?this.args&&this.args.length>0?n+=T.stdlib[a.toUpperCase()].apply(this,this.args.map(function(r){return r.toJS(e,t)})):n+=T.stdlib[a.toUpperCase()]():!T.fn[a]&&T.stdfn[a.toUpperCase()]?(this.newid&&(n+="new "),n+="alasql.stdfn."+this.funcid.toUpperCase()+"(",this.args&&this.args.length>0&&(n+=this.args.map(function(n){return n.toJS(e,t,r)}).join(",")),n+=")"):(this.newid&&(n+="new "),n+="alasql.fn."+this.funcid+"(",this.args&&this.args.length>0&&(n+=this.args.map(function(n){return n.toJS(e,t,r)}).join(",")),n+=")"),n};var ne=T.stdlib={},ae=T.stdfn={};ne.ABS=function(e){return"Math.abs("+e+")"},ne.CLONEDEEP=function(e){return"alasql.utils.cloneDeep("+e+")"},ae.CONCAT=function(){return Array.prototype.slice.call(arguments).join("")},ne.EXP=function(e){return"Math.pow(Math.E,"+e+")"},ne.IIF=function(e,t,r){if(3==arguments.length)return"(("+e+")?("+t+"):("+r+"))";throw new Error("Number of arguments of IFF is not equals to 3")},ne.IFNULL=function(e,t){return"("+e+"||"+t+")"},ne.INSTR=function(e,t){return"(("+e+").indexOf("+t+")+1)"},ne.LEN=ne.LENGTH=function(e){return t(e,"y.length")},ne.LOWER=ne.LCASE=function(e){return t(e,"String(y).toLowerCase()")},ne.LTRIM=function(e){return t(e,'y.replace(/^[ ]+/,"")')},ne.RTRIM=function(e){return t(e,'y.replace(/[ ]+$/,"")')},ne.MAX=ne.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"},ne.MIN=ne.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"},ne.SUBSTRING=ne.SUBSTR=ne.MID=function(e,r,n){return 2==arguments.length?t(e,"y.substr("+r+"-1)"):3==arguments.length?t(e,"y.substr("+r+"-1,"+n+")"):void 0},ae.REGEXP_LIKE=function(e,t,r){return(e||"").search(RegExp(t,r))>-1},ne.ISNULL=ne.NULLIF=function(e,t){return"("+e+"=="+t+"?undefined:"+e+")"},ne.POWER=function(e,t){return"Math.pow("+e+","+t+")"},ne.RANDOM=function(e){return 0==arguments.length?"Math.random()":"(Math.random()*("+e+")|0)"},ne.ROUND=function(e,t){return 2==arguments.length?"Math.round(("+e+")*Math.pow(10,("+t+")))/Math.pow(10,("+t+"))":"Math.round("+e+")"},ne.CEIL=ne.CEILING=function(e){return"Math.ceil("+e+")"},ne.FLOOR=function(e){return"Math.floor("+e+")"},ne.ROWNUM=function(){return"1"},ne.ROW_NUMBER=function(){return"1"},ne.SQRT=function(e){return"Math.sqrt("+e+")"},ne.TRIM=function(e){return t(e,"y.trim()")},ne.UPPER=ne.UCASE=function(e){return t(e,"String(y).toUpperCase()")},ae.CONCAT_WS=function(){var e=Array.prototype.slice.call(arguments);return e.slice(1,e.length).join(e[0])},T.aggr.GROUP_CONCAT=function(e,t,r){return 1===r?""+e:2===r?t+=","+e:t},T.aggr.MEDIAN=function(e,t,r){if(2===r)return null!==e&&t.push(e),t;if(1===r)return null===e?[]:[e];if(!t.length)return t;var n=t.sort(),a=(n.length+1)/2;return Number.isInteger(a)?n[a-1]:(n[Math.floor(a-1)]+n[Math.ceil(a-1)])/2},T.aggr.QUART=function(e,t,r,n){if(2===r)return null!==e&&t.push(e),t;if(1===r)return null===e?[]:[e];if(!t.length)return t;n=n||1;var a=t.sort(),s=n*(a.length+1)/4;return Number.isInteger(s)?a[s-1]:a[Math.floor(s)]},T.aggr.QUART2=function(e,t,r){return T.aggr.QUART(e,t,r,2)},T.aggr.QUART3=function(e,t,r){return T.aggr.QUART(e,t,r,3)},T.aggr.VAR=function(e,t,r){if(1===r)return null===e?{arr:[],sum:0}:{arr:[e],sum:e};if(2===r)return null===e?t:(t.arr.push(e),t.sum+=e,t);for(var n=t.arr.length,a=t.sum/n,s=0,i=0;i>8&255]+se[e>>16&255]+se[e>>24&255]+"-"+se[255&t]+se[t>>8&255]+"-"+se[t>>16&15|64]+se[t>>24&255]+"-"+se[63&r|128]+se[r>>8&255]+"-"+se[r>>16&255]+se[r>>24&255]+se[255&n]+se[n>>8&255]+se[n>>16&255]+se[n>>24&255]},X.CaseValue=function(e){return X.extend(this,e)},X.CaseValue.prototype.toString=function(){var e="CASE ";return this.expression&&(e+=this.expression.toString()),this.whens&&(e+=this.whens.map(function(e){return" WHEN "+e.when.toString()+" THEN "+e.then.toString()}).join()),e+=" END"},X.CaseValue.prototype.findAggregator=function(e){this.expression&&this.expression.findAggregator&&this.expression.findAggregator(e),this.whens&&this.whens.length>0&&this.whens.forEach(function(t){t.when.findAggregator&&t.when.findAggregator(e),t.then.findAggregator&&t.then.findAggregator(e)}),this.elses&&this.elses.findAggregator&&this.elses.findAggregator(e)},X.CaseValue.prototype.toJS=function(e,t,r){var n="((function("+e+",params,alasql){var y,r;";return this.expression?(n+="v="+this.expression.toJS(e,t,r)+";",n+=(this.whens||[]).map(function(n){return" if(v=="+n.when.toJS(e,t,r)+") {r="+n.then.toJS(e,t,r)+"}"}).join(" else "),this.elses&&(n+=" else {r="+this.elses.toJS(e,t,r)+"}")):(n+=(this.whens||[]).map(function(n){return" if("+n.when.toJS(e,t,r)+") {r="+n.then.toJS(e,t,r)+"}"}).join(" else "),this.elses&&(n+=" else {r="+this.elses.toJS(e,t,r)+"}")),n+=";return r;}).bind(this))("+e+",params,alasql)"},X.Json=function(e){return X.extend(this,e)},X.Json.prototype.toString=function(){var e="";return e+=oe(this.value),e+=""};var oe=T.utils.JSONtoString=function(e){var t="";if("string"==typeof e)t='"'+e+'"';else if("number"==typeof e)t=e;else if("boolean"==typeof e)t=e;else{if("object"!=typeof e)throw new Error("2Can not show JSON object "+JSON.stringify(e));if(Array.isArray(e))t+="["+e.map(function(e){return oe(e)}).join(",")+"]";else if(!e.toJS||e instanceof X.Json){t="{";var r=[];for(var n in e){var a="";if("string"==typeof n)a+='"'+n+'"';else if("number"==typeof n)a+=n;else{if("boolean"!=typeof n)throw new Error("THis is not ES6... no expressions on left side yet");a+=n}a+=":"+oe(e[n]),r.push(a)}t+=r.join(",")+"}"}else{if(!e.toString)throw new Error("1Can not show JSON object "+JSON.stringify(e));t=e.toString()}}return t};X.Json.prototype.toJS=function(e,t,r){return b(this.value,e,t,r)},X.Convert=function(e){return X.extend(this,e)},X.Convert.prototype.toString=function(){var e="CONVERT(";return e+=this.dbtypeid,void 0!==this.dbsize&&(e+="("+this.dbsize,this.dbprecision&&(e+=","+this.dbprecision),e+=")"),e+=","+this.expression.toString(),this.style&&(e+=","+this.style),e+=")"},X.Convert.prototype.toJS=function(e,t,r){return"alasql.stdfn.CONVERT("+this.expression.toJS(e,t,r)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",dbprecision:"+this.dbprecision+",style:"+this.style+"})"},T.stdfn.CONVERT=function(e,t){var r=e;if(t.style){var n;switch(n=/\d{8}/.test(r)?new Date(+r.substr(0,4),+r.substr(4,2)-1,+r.substr(6,2)):new Date(r),t.style){case 1:r=("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2)+"/"+("0"+n.getYear()).substr(-2);break;case 2:r=("0"+n.getYear()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getDate()).substr(-2);break;case 3:r=("0"+n.getDate()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getYear()).substr(-2);break;case 4:r=("0"+n.getDate()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getYear()).substr(-2);break;case 5:r=("0"+n.getDate()).substr(-2)+"-"+("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getYear()).substr(-2);break;case 6:r=("0"+n.getDate()).substr(-2)+" "+n.toString().substr(4,3).toLowerCase()+" "+("0"+n.getYear()).substr(-2);break;case 7:r=n.toString().substr(4,3)+" "+("0"+n.getDate()).substr(-2)+","+("0"+n.getYear()).substr(-2);break;case 8:case 108:r=("0"+n.getHours()).substr(-2)+":"+("0"+n.getMinutes()).substr(-2)+":"+("0"+n.getSeconds()).substr(-2);break;case 10:r=("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getDate()).substr(-2)+"-"+("0"+n.getYear()).substr(-2);break;case 11:r=("0"+n.getYear()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2);break;case 12:r=("0"+n.getYear()).substr(-2)+("0"+(n.getMonth()+1)).substr(-2)+("0"+n.getDate()).substr(-2);break;case 101:r=("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2)+"/"+n.getFullYear();break;case 102:r=n.getFullYear()+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+("0"+n.getDate()).substr(-2);break;case 103:r=("0"+n.getDate()).substr(-2)+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+n.getFullYear();break;case 104:r=("0"+n.getDate()).substr(-2)+"."+("0"+(n.getMonth()+1)).substr(-2)+"."+n.getFullYear();break;case 105:r=("0"+n.getDate()).substr(-2)+"-"+("0"+(n.getMonth()+1)).substr(-2)+"-"+n.getFullYear();break;case 106:r=("0"+n.getDate()).substr(-2)+" "+n.toString().substr(4,3).toLowerCase()+" "+n.getFullYear();break;case 107:r=n.toString().substr(4,3)+" "+("0"+n.getDate()).substr(-2)+","+n.getFullYear();break;case 110:r=("0"+(n.getMonth()+1)).substr(-2)+"-"+("0"+n.getDate()).substr(-2)+"-"+n.getFullYear();break;case 111:r=n.getFullYear()+"/"+("0"+(n.getMonth()+1)).substr(-2)+"/"+("0"+n.getDate()).substr(-2);break;case 112:r=n.getFullYear()+("0"+(n.getMonth()+1)).substr(-2)+("0"+n.getDate()).substr(-2);break;default:throw new Error("The CONVERT style "+t.style+" is not realized yet.")}}var a=t.dbtypeid.toUpperCase();if("Date"==t.dbtypeid)return new Date(r);if("DATE"==a){var s=new Date(r),i=s.getFullYear()+"."+("0"+(s.getMonth()+1)).substr(-2)+"."+("0"+s.getDate()).substr(-2);return i}if("DATETIME"==a||"DATETIME2"==a){var s=new Date(r),i=s.getFullYear()+"."+("0"+(s.getMonth()+1)).substr(-2)+"."+("0"+s.getDate()).substr(-2);return i+=" "+("0"+s.getHours()).substr(-2)+":"+("0"+s.getMinutes()).substr(-2)+":"+("0"+s.getSeconds()).substr(-2),i+="."+("00"+s.getMilliseconds()).substr(-3)}if(["MONEY"].indexOf(a)>-1){var o=+r;return(0|o)+100*o%100/100}if(["BOOLEAN"].indexOf(a)>-1)return!!r;if(["INT","INTEGER","SMALLINT","BIGINT","SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(t.dbtypeid.toUpperCase())>-1)return 0|r;if(["STRING","VARCHAR","NVARCHAR","CHARACTER VARIABLE"].indexOf(t.dbtypeid.toUpperCase())>-1)return t.dbsize?(""+r).substr(0,t.dbsize):""+r;if(["CHAR","CHARACTER","NCHAR"].indexOf(a)>-1)return(r+new Array(t.dbsize+1).join(" ")).substr(0,t.dbsize);if(["NUMBER","FLOAT","DECIMAL","NUMERIC"].indexOf(a)>-1){var o=+r;return o=void 0!==t.dbsize?parseFloat(o.toPrecision(t.dbsize)):o,o=void 0!==t.dbprecision?parseFloat(o.toFixed(t.dbprecision)):o}if(["JSON"].indexOf(a)>-1){if("object"==typeof r)return r;try{return JSON.parse(r)}catch(e){throw new Error("Cannot convert string to JSON")}}return r},X.ColumnDef=function(e){return X.extend(this,e)},X.ColumnDef.prototype.toString=function(){var e=this.columnid;return this.dbtypeid&&(e+=" "+this.dbtypeid),this.dbsize&&(e+="("+this.dbsize,this.dbprecision&&(e+=","+this.dbprecision),e+=")"),this.primarykey&&(e+=" PRIMARY KEY"),this.notnull&&(e+=" NOT NULL"),e},X.CreateTable=function(e){return X.extend(this,e)},X.CreateTable.prototype.toString=function(){var e="CREATE";if(this.temporary&&(e+=" TEMPORARY"),this.view?e+=" VIEW":e+=" "+(this.class?"CLASS":"TABLE"),this.ifnotexists&&(e+=" IF NOT EXISTS"),e+=" "+this.table.toString(),this.viewcolumns&&(e+="("+this.viewcolumns.map(function(e){return e.toString()}).join(",")+")"),this.as)e+=" AS "+this.as;else{e+=" ("+this.columns.map(function(e){return e.toString()}).join(",")+")"}return this.view&&this.select&&(e+=" AS "+this.select.toString()),e},X.CreateTable.prototype.execute=function(e,t,r){var n=T.databases[this.table.databaseid||e],a=this.table.tableid;if(!a)throw new Error("Table name is not defined");var s=this.columns,i=this.constraints||[];if(this.ifnotexists&&n.tables[a])return r?r(0):0;if(n.tables[a])throw new Error("Can not create table '"+a+"', because it already exists in the database '"+n.databaseid+"'");var o=n.tables[a]=new T.Table;this.class&&(o.isclass=!0);var u=[],c=[];if(s&&s.forEach(function(t){var r=t.dbtypeid;T.fn[r]||(r=r.toUpperCase()),["SERIAL","SMALLSERIAL","BIGSERIAL"].indexOf(r)>-1&&(t.identity={value:1,step:1});var n={columnid:t.columnid,dbtypeid:r,dbsize:t.dbsize,dbprecision:t.dbprecision,notnull:t.notnull,identity:t.identity};if(t.identity&&(o.identities[t.columnid]={value:+t.identity.value,step:+t.identity.step}),t.check&&o.checks.push({id:t.check.constrantid,fn:new Function("r","var y;return "+t.check.expression.toJS("r",""))}),t.default&&u.push("'"+t.columnid+"':"+t.default.toJS("r","")),t.primarykey){var a=o.pk={};a.columns=[t.columnid],a.onrightfns="r['"+t.columnid+"']",a.onrightfn=new Function("r","var y;return "+a.onrightfns),a.hh=x(a.onrightfns),o.uniqs[a.hh]={}}if(t.unique){var s={};o.uk=o.uk||[],o.uk.push(s),s.columns=[t.columnid],s.onrightfns="r['"+t.columnid+"']",s.onrightfn=new Function("r","var y;return "+s.onrightfns),s.hh=x(s.onrightfns),o.uniqs[s.hh]={}}if(t.foreignkey){var i=t.foreignkey.table,l=T.databases[i.databaseid||e].tables[i.tableid];if(void 0===i.columnid){if(!(l.pk.columns&&l.pk.columns.length>0))throw new Error("FOREIGN KEY allowed only to tables with PRIMARY KEYs");i.columnid=l.pk.columns[0]}var h=function(e){var r={};if(void 0===e[t.columnid])return!0;r[i.columnid]=e[t.columnid];var n=l.pk.onrightfn(r);if(!l.uniqs[l.pk.hh][n])throw new Error('Foreign key "'+e[t.columnid]+'" is not found in table '+l.tableid);return!0};o.checks.push({fn:h})}t.onupdate&&c.push("r['"+t.columnid+"']="+t.onupdate.toJS("r","")),o.columns.push(n),o.xcolumns[n.columnid]=n}),o.defaultfns=u.join(","),o.onupdatefns=c.join(";"),i.forEach(function(t){var r;if("PRIMARY KEY"===t.type){if(o.pk)throw new Error("Primary key already exists");var n=o.pk={};n.columns=t.columns,n.onrightfns=n.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),n.onrightfn=new Function("r","var y;return "+n.onrightfns),n.hh=x(n.onrightfns),o.uniqs[n.hh]={}}else if("CHECK"===t.type)r=new Function("r","var y;return "+t.expression.toJS("r",""));else if("UNIQUE"===t.type){var a={};o.uk=o.uk||[],o.uk.push(a),a.columns=t.columns,a.onrightfns=a.columns.map(function(e){return"r['"+e+"']"}).join("+'`'+"),a.onrightfn=new Function("r","var y;return "+a.onrightfns),a.hh=x(a.onrightfns),o.uniqs[a.hh]={}}else if("FOREIGN KEY"===t.type){var s=o.xcolumns[t.columns[0]],i=t.fktable;t.fkcolumns&&t.fkcolumns.length>0&&(i.columnid=t.fkcolumns[0]);var u=T.databases[i.databaseid||e].tables[i.tableid];void 0===i.columnid&&(i.columnid=u.pk.columns[0]),r=function(e){var t={};if(void 0===e[s.columnid])return!0;t[i.columnid]=e[s.columnid];var r=u.pk.onrightfn(t);if(!u.uniqs[u.pk.hh][r])throw new Error('Foreign key "'+e[s.columnid]+'" is not found in table '+u.tableid);return!0}}r&&o.checks.push({fn:r,id:t.constraintid,fk:"FOREIGN KEY"===t.type})}),this.view&&this.viewcolumns){var l=this;this.viewcolumns.forEach(function(e,t){l.select.columns[t].as=e.columnid})}if(this.view&&this.select&&(o.view=!0,o.select=this.select.compile(this.table.databaseid||e)),n.engineid)return T.engines[n.engineid].createTable(this.table.databaseid||e,a,this.ifnotexists,r);o.insert=function(r,n){var a=T.inserted;T.inserted=[r];var s=this,i=!1,o=!1;for(var u in s.beforeinsert){var c=s.beforeinsert[u];c&&(c.funcid?!1===T.fn[c.funcid](r)&&(o=o||!0):c.statement&&!1===c.statement.execute(e)&&(o=o||!0))}if(!o){var l=!1;for(u in s.insteadofinsert)l=!0,(c=s.insteadofinsert[u])&&(c.funcid?T.fn[c.funcid](r):c.statement&&c.statement.execute(e));if(!l){for(var h in s.identities){var d=s.identities[h];r[h]=d.value}if(s.checks&&s.checks.length>0&&s.checks.forEach(function(e){if(!e.fn(r))throw new Error("Violation of CHECK constraint "+(e.id||""))}),s.columns.forEach(function(e){if(e.notnull&&void 0===r[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),s.pk){var f=s.pk,p=f.onrightfn(r)
-;if(void 0!==s.uniqs[f.hh][p]){if(!n)throw new Error("Cannot insert record, because it already exists in primary key index");i=s.uniqs[f.hh][p]}}if(s.uk&&s.uk.length&&s.uk.forEach(function(e){var t=e.onrightfn(r);if(void 0!==s.uniqs[e.hh][t]){if(!n)throw new Error("Cannot insert record, because it already exists in unique index");i=s.uniqs[e.hh][t]}}),i)s.update(function(e){for(var t in r)e[t]=r[t]},s.data.indexOf(i),t);else{s.data.push(r);for(var h in s.identities){var d=s.identities[h];d.value+=d.step}if(s.pk){var f=s.pk,p=f.onrightfn(r);s.uniqs[f.hh][p]=r}s.uk&&s.uk.length&&s.uk.forEach(function(e){var t=e.onrightfn(r);s.uniqs[e.hh][t]=r})}for(var u in s.afterinsert){var c=s.afterinsert[u];c&&(c.funcid?T.fn[c.funcid](r):c.statement&&c.statement.execute(e))}T.inserted=a}}},o.delete=function(t){var r=this,n=r.data[t],a=!1;for(var s in r.beforedelete){var i=r.beforedelete[s];i&&(i.funcid?!1===T.fn[i.funcid](n)&&(a=a||!0):i.statement&&!1===i.statement.execute(e)&&(a=a||!0))}if(a)return!1;var o=!1;for(var s in r.insteadofdelete){o=!0;var i=r.insteadofdelete[s];i&&(i.funcid?T.fn[i.funcid](n):i.statement&&i.statement.execute(e))}if(!o){if(this.pk){var u=this.pk,c=u.onrightfn(n);if(void 0===this.uniqs[u.hh][c])throw new Error("Something wrong with primary key index on table");this.uniqs[u.hh][c]=void 0}r.uk&&r.uk.length&&r.uk.forEach(function(e){var t=e.onrightfn(n);if(void 0===r.uniqs[e.hh][t])throw new Error("Something wrong with unique index on table");r.uniqs[e.hh][t]=void 0})}},o.deleteall=function(){this.data.length=0,this.pk&&(this.uniqs[this.pk.hh]={}),o.uk&&o.uk.length&&o.uk.forEach(function(e){o.uniqs[e.hh]={}})},o.update=function(t,r,n){var a,s=_(this.data[r]);if(this.pk&&(a=this.pk,a.pkaddr=a.onrightfn(s,n),void 0===this.uniqs[a.hh][a.pkaddr]))throw new Error("Something wrong with index on table");o.uk&&o.uk.length&&o.uk.forEach(function(e){if(e.ukaddr=e.onrightfn(s),void 0===o.uniqs[e.hh][e.ukaddr])throw new Error("Something wrong with unique index on table")}),t(s,n,T);var i=!1;for(var u in o.beforeupdate){var c=o.beforeupdate[u];c&&(c.funcid?!1===T.fn[c.funcid](this.data[r],s)&&(i=i||!0):c.statement&&!1===c.statement.execute(e)&&(i=i||!0))}if(i)return!1;var l=!1;for(var u in o.insteadofupdate){l=!0;var c=o.insteadofupdate[u];c&&(c.funcid?T.fn[c.funcid](this.data[r],s):c.statement&&c.statement.execute(e))}if(!l){if(o.checks&&o.checks.length>0&&o.checks.forEach(function(e){if(!e.fn(s))throw new Error("Violation of CHECK constraint "+(e.id||""))}),o.columns.forEach(function(e){if(e.notnull&&void 0===s[e.columnid])throw new Error("Wrong NULL value in NOT NULL column "+e.columnid)}),this.pk&&(a.newpkaddr=a.onrightfn(s),void 0!==this.uniqs[a.hh][a.newpkaddr]&&a.newpkaddr!==a.pkaddr))throw new Error("Record already exists");o.uk&&o.uk.length&&o.uk.forEach(function(e){if(e.newukaddr=e.onrightfn(s),void 0!==o.uniqs[e.hh][e.newukaddr]&&e.newukaddr!==e.ukaddr)throw new Error("Record already exists")}),this.pk&&(this.uniqs[a.hh][a.pkaddr]=void 0,this.uniqs[a.hh][a.newpkaddr]=s),o.uk&&o.uk.length&&o.uk.forEach(function(e){o.uniqs[e.hh][e.ukaddr]=void 0,o.uniqs[e.hh][e.newukaddr]=s}),this.data[r]=s;for(var u in o.afterupdate){var c=o.afterupdate[u];c&&(c.funcid?T.fn[c.funcid](this.data[r],s):c.statement&&c.statement.execute(e))}}};var h;return T.options.nocount||(h=1),r&&(h=r(h)),h},T.fn.Date=Object,T.fn.Date=Date,T.fn.Number=Number,T.fn.String=String,T.fn.Boolean=Boolean,ae.EXTEND=T.utils.extend,ae.CHAR=String.fromCharCode.bind(String),ae.ASCII=function(e){return e.charCodeAt(0)},ae.COALESCE=function(){for(var e=0;e0)var n=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),s=new Function("x,params,alasql",n);return function(e,n){var i,o,u=T.databases[t];o=void 0!==r?r:u.counter++;var c={$id:o,$node:"VERTEX"};return u.objects[c.$id]=c,i=c,a&&a(c),s&&s(c,e,T),n&&(i=n(i)),i}},X.CreateEdge=function(e){return X.extend(this,e)},X.CreateEdge.prototype.toString=function(){var e="CREATE EDGE ";return this.class&&(e+=this.class+" "),e},X.CreateEdge.prototype.toJS=function(e){return"this.queriesfn["+(this.queriesidx-1)+"](this.params,null,"+e+")"},X.CreateEdge.prototype.compile=function(e){var t=e,r=new Function("params,alasql","var y;return "+this.from.toJS()),n=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var a="x.name="+this.name.toJS(),s=new Function("x",a);if(this.sets&&this.sets.length>0)var a=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),i=new Function("x,params,alasql","var y;"+a);return function(e,a){var o=0,u=T.databases[t],c={$id:u.counter++,$node:"EDGE"},l=r(e,T),h=n(e,T);return c.$in=[l.$id],c.$out=[h.$id],void 0===l.$out&&(l.$out=[]),l.$out.push(c.$id),void 0===typeof h.$in&&(h.$in=[]),h.$in.push(c.$id),u.objects[c.$id]=c,o=c,s&&s(c),i&&i(c,e,T),a&&(o=a(o)),o}},X.CreateGraph=function(e){return X.extend(this,e)},X.CreateGraph.prototype.toString=function(){var e="CREATE GRAPH ";return this.class&&(e+=this.class+" "),e},X.CreateGraph.prototype.execute=function(e,t,r){function n(e){var t=T.databases[T.useid].objects;for(var r in t)if(t[r].name===e)return t[r]}function a(r){var n={};void 0!==r.as&&(T.vars[r.as]=n),void 0!==r.prop&&(n.$id=r.prop,n.name=r.prop),void 0!==r.sharp&&(n.$id=r.sharp),void 0!==r.name&&(n.name=r.name),void 0!==r.class&&(n.$class=r.class);var a=T.databases[e];if(void 0===n.$id&&(n.$id=a.counter++),n.$node="VERTEX",void 0!==r.json&&q(n,new Function("params,alasql","var y;return "+r.json.toJS())(t,T)),a.objects[n.$id]=n,void 0!==n.$class){if(void 0===T.databases[e].tables[n.$class])throw new Error("No such class. Pleace use CREATE CLASS");T.databases[e].tables[n.$class].data.push(n)}return s.push(n.$id),n}var s=[];return this.from&&T.from[this.from.funcid]&&(this.graph=T.from[this.from.funcid.toUpperCase()]),this.graph.forEach(function(r){if(r.source){var i={};void 0!==r.as&&(T.vars[r.as]=i),void 0!==r.prop&&(i.name=r.prop),void 0!==r.sharp&&(i.$id=r.sharp),void 0!==r.name&&(i.name=r.name),void 0!==r.class&&(i.$class=r.class);var o=T.databases[e];void 0===i.$id&&(i.$id=o.counter++),i.$node="EDGE",void 0!==r.json&&q(i,new Function("params,alasql","var y;return "+r.json.toJS())(t,T));var u;if(r.source.vars){var c=T.vars[r.source.vars];u="object"==typeof c?c:o.objects[c]}else{var l=r.source.sharp;void 0===l&&(l=r.source.prop),u=T.databases[e].objects[l],void 0!==u||!T.options.autovertex||void 0===r.source.prop&&void 0===r.source.name||void 0===(u=n(r.source.prop||r.source.name))&&(u=a(r.source))}var h;if(r.source.vars){var c=T.vars[r.target.vars];h="object"==typeof c?c:o.objects[c]}else{var d=r.target.sharp;void 0===d&&(d=r.target.prop),h=T.databases[e].objects[d],void 0!==h||!T.options.autovertex||void 0===r.target.prop&&void 0===r.target.name||void 0===(h=n(r.target.prop||r.target.name))&&(h=a(r.target))}if(i.$in=[u.$id],i.$out=[h.$id],void 0===u.$out&&(u.$out=[]),u.$out.push(i.$id),void 0===h.$in&&(h.$in=[]),h.$in.push(i.$id),o.objects[i.$id]=i,void 0!==i.$class){if(void 0===T.databases[e].tables[i.$class])throw new Error("No such class. Pleace use CREATE CLASS");T.databases[e].tables[i.$class].data.push(i)}s.push(i.$id)}else a(r)}),r&&(s=r(s)),s},X.CreateGraph.prototype.compile1=function(e){var t=e,r=new Function("params,alasql","var y;return "+this.from.toJS()),n=new Function("params,alasql","var y;return "+this.to.toJS());if(void 0!==this.name)var a="x.name="+this.name.toJS(),s=new Function("x",a);if(this.sets&&this.sets.length>0)var a=this.sets.map(function(e){return"x['"+e.column.columnid+"']="+e.expression.toJS("x","")}).join(";"),i=new Function("x,params,alasql","var y;"+a);return function(e,a){var o=0,u=T.databases[t],c={$id:u.counter++,$node:"EDGE"},l=r(e,T),h=n(e,T);return c.$in=[l.$id],c.$out=[h.$id],void 0===l.$out&&(l.$out=[]),l.$out.push(c.$id),void 0===h.$in&&(h.$in=[]),h.$in.push(c.$id),u.objects[c.$id]=c,o=c,s&&s(c),i&&i(c,e,T),a&&(o=a(o)),o}},X.AlterTable=function(e){return X.extend(this,e)},X.AlterTable.prototype.toString=function(){var e="ALTER TABLE "+this.table.toString();return this.renameto&&(e+=" RENAME TO "+this.renameto),e},X.AlterTable.prototype.execute=function(e,t,r){var n=T.databases[e];if(n.dbversion=Date.now(),this.renameto){var a=this.table.tableid,s=this.renameto,i=1;if(n.tables[s])throw new Error("Can not rename a table '"+a+"' to '"+s+"', because the table with this name already exists");if(s===a)throw new Error("Can not rename a table '"+a+"' to itself");return n.tables[s]=n.tables[a],delete n.tables[a],i=1,r&&r(i),i}if(this.addcolumn){n=T.databases[this.table.databaseid||e],n.dbversion++;var o=this.table.tableid,u=n.tables[o],c=this.addcolumn.columnid;if(u.xcolumns[c])throw new Error('Cannot add column "'+c+'", because it already exists in the table "'+o+'"');var l={columnid:c,dbtypeid:this.dbtypeid,dbsize:this.dbsize,dbprecision:this.dbprecision,dbenum:this.dbenum,defaultfns:null};u.columns.push(l),u.xcolumns[c]=l;for(var h=0,d=u.data.length;h0)for(var l=0,h=s.data.length;l0)for(var l=0,h=s.data.length;l=0?r+="(x="+s[t].toJS()+",x==undefined?undefined:+x)":T.fn[a.xcolumns[e.columnid].dbtypeid]?(r+="(new "+a.xcolumns[e.columnid].dbtypeid+"(",r+=s[t].toJS(),r+="))"):r+=s[t].toJS():r+=s[t].toJS(),u.push(r)}):Array.isArray(s)&&a.columns&&a.columns.length>0?a.columns.forEach(function(e,t){var r="'"+e.columnid+"':";["INT","FLOAT","NUMBER","MONEY"].indexOf(e.dbtypeid)>=0?r+="+"+s[t].toJS():T.fn[e.dbtypeid]?(r+="(new "+e.dbtypeid+"(",r+=s[t].toJS(),r+="))"):r+=s[t].toJS(),u.push(r)}):o=b(s),r.tables[n].defaultfns&&u.unshift(r.tables[n].defaultfns),i+=o?"a="+o+";":"a={"+u.join(",")+"};",r.tables[n].isclass&&(i+="var db=alasql.databases['"+e+"'];",i+='a.$class="'+n+'";',i+="a.$id=db.counter++;",i+="db.objects[a.$id]=a;"),r.tables[n].insert?(i+="var db=alasql.databases['"+e+"'];",i+="db.tables['"+n+"'].insert(a,"+(t.orreplace?"true":"false")+");"):i+="aa.push(a);"}),s=u+i,r.tables[n].insert||(i+="alasql.databases['"+e+"'].tables['"+n+"'].data=alasql.databases['"+e+"'].tables['"+n+"'].data.concat(aa);"),r.tables[n].insert&&r.tables[n].isclass?i+="return a.$id;":i+="return "+t.values.length;var c=new Function("db, params, alasql","var y;"+u+i).bind(this)}else if(this.select){this.select.modifier="RECORDSET";var l=this.select.compile(e);if(r.engineid&&T.engines[r.engineid].intoTable){var h=function(e,t){var a=l(e);return T.engines[r.engineid].intoTable(r.databaseid,n,a.data,null,t)};return h}var d="return alasql.utils.extend(r,{"+a.defaultfns+"})",f=new Function("r,db,params,alasql",d),c=function(e,r,a){var s=l(r).data;if(e.tables[n].insert)for(var i=0,o=s.length;i0&&(e+="("+this.args.map(function(e){return e.toString()}).join(", ")+")"),this.as&&(e+=" AS "+this.as),e},X.CreateDatabase.prototype.execute=function(e,t,r){if(this.args&&this.args.length>0&&this.args.map(function(e){return new Function("params,alasql","var y;return "+e.toJS())(t,T)}),this.engineid){var n=T.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,r);return n}var a=this.databaseid;if(T.databases[a])throw new Error("Database '"+a+"' already exists");var n=(new T.Database(a),1);return r?r(n):n},X.AttachDatabase=function(e){return X.extend(this,e)},X.AttachDatabase.prototype.toString=function(e){var t="ATTACH";return this.engineid&&(t+=" "+this.engineid),t+=" DATABASE "+this.databaseid,e&&(t+="(",e.length>0&&(t+=e.map(function(e){return e.toString()}).join(", ")),t+=")"),this.as&&(t+=" AS "+this.as),t},X.AttachDatabase.prototype.execute=function(e,t,r){if(!T.engines[this.engineid])throw new Error('Engine "'+this.engineid+'" is not defined.');return T.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,t,r)},X.DetachDatabase=function(e){return X.extend(this,e)},X.DetachDatabase.prototype.toString=function(){var e="DETACH";return e+=" DATABASE "+this.databaseid},X.DetachDatabase.prototype.execute=function(e,t,r){if(!T.databases[this.databaseid].engineid)throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.');var n,a=this.databaseid;if(a===T.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(T.databases[a])delete T.databases[a],a===T.useid&&T.use(),n=1;else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},X.UseDatabase=function(e){return X.extend(this,e)},X.UseDatabase.prototype.toString=function(){return"USE DATABASE "+this.databaseid},X.UseDatabase.prototype.execute=function(e,t,r){var n=this.databaseid;if(!T.databases[n])throw new Error("Database '"+n+"' does not exist");T.use(n);return r&&r(1),1},X.DropDatabase=function(e){return X.extend(this,e)},X.DropDatabase.prototype.toString=function(){var e="DROP";return this.ifexists&&(e+=" IF EXISTS"),e+=" DATABASE "+this.databaseid},X.DropDatabase.prototype.execute=function(e,t,r){if(this.engineid)return T.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,r);var n,a=this.databaseid;if(a===T.DEFAULTDATABASEID)throw new Error("Drop of default database is prohibited");if(T.databases[a]){if(T.databases[a].engineid)throw new Error("Cannot drop database '"+a+"', because it is attached. Detach it.");delete T.databases[a],a===T.useid&&T.use(),n=1}else{if(!this.ifexists)throw new Error("Database '"+a+"' does not exist");n=0}return r&&r(n),n},X.Declare=function(e){return X.extend(this,e)},X.Declare.prototype.toString=function(){var e="DECLARE ";return this.declares&&this.declares.length>0&&(e=this.declares.map(function(e){var t="";return t+="@"+e.variable+" ",t+=e.dbtypeid,this.dbsize&&(t+="("+this.dbsize,this.dbprecision&&(t+=","+this.dbprecision),t+=")"),e.expression&&(t+=" = "+e.expression.toString()),t}).join(",")),e},X.Declare.prototype.execute=function(e,t,r){var n=1;return this.declares&&this.declares.length>0&&this.declares.map(function(e){var r=e.dbtypeid;T.fn[r]||(r=r.toUpperCase()),T.declares[e.variable]={dbtypeid:r,dbsize:e.dbsize,dbprecision:e.dbprecision},e.expression&&(T.vars[e.variable]=new Function("params,alasql","return "+e.expression.toJS("({})","",null))(t,T),T.declares[e.variable]&&(T.vars[e.variable]=T.stdfn.CONVERT(T.vars[e.variable],T.declares[e.variable])))}),r&&(n=r(n)),n},X.ShowDatabases=function(e){return X.extend(this,e)},X.ShowDatabases.prototype.toString=function(){var e="SHOW DATABASES";return this.like&&(e+="LIKE "+this.like.toString()),e},X.ShowDatabases.prototype.execute=function(e,t,r){if(this.engineid)return T.engines[this.engineid].showDatabases(this.like,r);var n=this,a=[];for(var s in T.databases)a.push({databaseid:s});return n.like&&a&&a.length>0&&(a=a.filter(function(e){return T.utils.like(n.like.value,e.databaseid)})),r&&r(a),a},X.ShowTables=function(e){return X.extend(this,e)},X.ShowTables.prototype.toString=function(){var e="SHOW TABLES";return this.databaseid&&(e+=" FROM "+this.databaseid),this.like&&(e+=" LIKE "+this.like.toString()),e},X.ShowTables.prototype.execute=function(e,t,r){
-var n=T.databases[this.databaseid||e],a=this,s=[];for(var i in n.tables)s.push({tableid:i});return a.like&&s&&s.length>0&&(s=s.filter(function(e){return T.utils.like(a.like.value,e.tableid)})),r&&r(s),s},X.ShowColumns=function(e){return X.extend(this,e)},X.ShowColumns.prototype.toString=function(){var e="SHOW COLUMNS";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowColumns.prototype.execute=function(e,t,r){var n=T.databases[this.databaseid||e],a=n.tables[this.table.tableid];if(a&&a.columns){var s=a.columns.map(function(e){return{columnid:e.columnid,dbtypeid:e.dbtypeid,dbsize:e.dbsize}});return r&&r(s),s}return r&&r([]),[]},X.ShowIndex=function(e){return X.extend(this,e)},X.ShowIndex.prototype.toString=function(){var e="SHOW INDEX";return this.table.tableid&&(e+=" FROM "+this.table.tableid),this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowIndex.prototype.execute=function(e,t,r){var n=T.databases[this.databaseid||e],a=n.tables[this.table.tableid],s=[];if(a&&a.indices)for(var i in a.indices)s.push({hh:i,len:Object.keys(a.indices[i]).length});return r&&r(s),s},X.ShowCreateTable=function(e){return X.extend(this,e)},X.ShowCreateTable.prototype.toString=function(){var e="SHOW CREATE TABLE "+this.table.tableid;return this.databaseid&&(e+=" FROM "+this.databaseid),e},X.ShowCreateTable.prototype.execute=function(e){var t=T.databases[this.databaseid||e],r=t.tables[this.table.tableid];if(r){var n="CREATE TABLE "+this.table.tableid+" (",a=[];return r.columns&&(r.columns.forEach(function(e){var t=e.columnid+" "+e.dbtypeid;e.dbsize&&(t+="("+e.dbsize+")"),e.primarykey&&(t+=" PRIMARY KEY"),a.push(t)}),n+=a.join(", ")),n+=")"}throw new Error('There is no such table "'+this.table.tableid+'"')},X.SetVariable=function(e){return X.extend(this,e)},X.SetVariable.prototype.toString=function(){var e="SET ";return void 0!==this.value&&(e+=this.variable.toUpperCase()+" "+(this.value?"ON":"OFF")),this.expression&&(e+=this.method+this.variable+" = "+this.expression.toString()),e},X.SetVariable.prototype.execute=function(e,t,r){if(void 0!==this.value){var n=this.value;"ON"==n?n=!0:"OFF"==n&&(n=!1),T.options[this.variable]=n}else if(this.expression){this.exists&&(this.existsfn=this.exists.map(function(t){var r=t.compile(e);return r.query&&!r.query.modifier&&(r.query.modifier="RECORDSET"),r})),this.queries&&(this.queriesfn=this.queries.map(function(t){var r=t.compile(e);return r.query&&!r.query.modifier&&(r.query.modifier="RECORDSET"),r}));var a=new Function("params,alasql","return "+this.expression.toJS("({})","",null)).bind(this)(t,T);if(T.declares[this.variable]&&(a=T.stdfn.CONVERT(a,T.declares[this.variable])),this.props&&this.props.length>0){if("@"==this.method)var s="alasql.vars['"+this.variable+"']";else var s="params['"+this.variable+"']";s+=this.props.map(function(e){return"string"==typeof e?"['"+e+"']":"number"==typeof e?"["+e+"]":"["+e.toJS()+"]"}).join(),new Function("value,params,alasql","var y;"+s+"=value")(a,t,T)}else"@"==this.method?T.vars[this.variable]=a:t[this.variable]=a}var a=1;return r&&(a=r(a)),a},T.test=function(e,t,r){if(0===arguments.length)return void T.log(T.con.results);var n=Date.now();if(1===arguments.length)return r(),void T.con.log(Date.now()-n);2===arguments.length&&(r=t,t=1);for(var a=0;a",e),Array.isArray(a)&&console.table?console.table(a):console.log(oe(a));else{var s;s="output"===n?document.getElementsByTagName("output")[0]:"string"==typeof n?document.getElementById(n):n;var i="";if("string"==typeof e&&T.options.logprompt&&(i+=""+T.pretty(e)+" "),Array.isArray(a))if(0===a.length)i+="[ ]
";else if("object"!=typeof a[0]||Array.isArray(a[0]))for(var o=0,u=a.length;o"+E(a[o])+"
";else i+=E(a);else i+=E(a);s.innerHTML+=i}},T.clear=function(){var e=T.options.logtarget;if(N.isNode||N.isMeteorServer)console.clear&&console.clear();else{var t;t="output"===e?document.getElementsByTagName("output")[0]:"string"==typeof e?document.getElementById(e):e,t.innerHTML=""}},T.write=function(e){var t=T.options.logtarget;if(N.isNode||N.isMeteorServer)console.log&&console.log(e);else{var r;r="output"===t?document.getElementsByTagName("output")[0]:"string"==typeof t?document.getElementById(t):t,r.innerHTML+=e}},T.prompt=function(e,t,r){if(N.isNode)throw new Error("The prompt not realized for Node.js");var n=0;if("string"==typeof e&&(e=document.getElementById(e)),"string"==typeof t&&(t=document.getElementById(t)),t.textContent=T.useid,r){T.prompthistory.push(r),n=T.prompthistory.length;try{var a=Date.now();T.log(r),T.write(''+(Date.now()-a)+" ms
")}catch(e){T.write(""+olduseid+"> "+sql+"
"),T.write(''+e+"
")}}var s=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;g(document.getElementsByTagName("body")[0],s,500),e.onkeydown=function(r){if(13===r.which){var a=e.value,s=T.useid;e.value="",T.prompthistory.push(a),n=T.prompthistory.length;try{var i=Date.now();T.log(a),T.write('
'+(Date.now()-i)+" ms
")}catch(e){T.write(""+s+"> "+T.pretty(a,!1)+"
"),T.write(''+e+"
")}e.focus(),t.textContent=T.useid;var o=e.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;g(document.getElementsByTagName("body")[0],o,500)}else 38===r.which?(n--,n<0&&(n=0),T.prompthistory[n]&&(e.value=T.prompthistory[n],r.preventDefault())):40===r.which&&(n++,n>=T.prompthistory.length?(n=T.prompthistory.length,e.value=""):T.prompthistory[n]&&(e.value=T.prompthistory[n],r.preventDefault()))}},X.BeginTransaction=function(e){return X.extend(this,e)},X.BeginTransaction.prototype.toString=function(){return"BEGIN TRANSACTION"},X.BeginTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[T.useid].engineid].begin(e,r):(r&&r(1),1)},X.CommitTransaction=function(e){return X.extend(this,e)},X.CommitTransaction.prototype.toString=function(){return"COMMIT TRANSACTION"},X.CommitTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[T.useid].engineid].commit(e,r):(r&&r(1),1)},X.RollbackTransaction=function(e){return X.extend(this,e)},X.RollbackTransaction.prototype.toString=function(){return"ROLLBACK TRANSACTION"},X.RollbackTransaction.prototype.execute=function(e,t,r){return T.databases[e].engineid?T.engines[T.databases[e].engineid].rollback(e,r):(r&&r(1),1)},T.options.tsql&&(T.stdfn.OBJECT_ID=function(e,t){void 0===t&&(t="T"),t=t.toUpperCase();var r=e.split("."),n=T.useid,a=r[0];2==r.length&&(n=r[0],a=r[1]);var s=T.databases[n].tables;n=T.databases[n].databaseid;for(var i in s)if(i==a){if(s[i].view&&"V"==t)return n+"."+i;if(!s[i].view&&"T"==t)return n+"."+i;return}}),T.options.mysql,(T.options.mysql||T.options.sqlite)&&(T.from.INFORMATION_SCHEMA=function(e,t,r,n,a){if("VIEWS"==e||"TABLES"==e){var s=[];for(var i in T.databases){var o=T.databases[i].tables;for(var u in o)(o[u].view&&"VIEWS"==e||!o[u].view&&"TABLES"==e)&&s.push({TABLE_CATALOG:i,TABLE_NAME:u})}return r&&(s=r(s,n,a)),s}throw new Error("Unknown INFORMATION_SCHEMA table")}),T.options.postgres,T.options.oracle,T.options.sqlite,T.into.SQL=function(e,t,r,n,a){var s;"object"==typeof e&&(t=e,e=void 0);var i={};if(T.utils.extend(i,t),void 0===i.tableid)throw new Error("Table for INSERT TO is not defined.");var o="";0===n.length&&"object"==typeof r[0]&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}}));for(var u=0,c=r.length;u0&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}})),"object"==typeof e&&(t=e,e=void 0);var s=r.length,i="";if(r.length>0){var o=n[0].columnid;i+=r.map(function(e){return e[o]}).join("\n")}return e=T.utils.autoExtFilename(e,"txt",t),s=T.utils.saveFile(e,i),a&&(s=a(s)),s},T.into.TAB=T.into.TSV=function(e,t,r,n,a){var s={};return T.utils.extend(s,t),s.separator="\t",e=T.utils.autoExtFilename(e,"tab",t),s.autoExt=!1,T.into.CSV(e,s,r,n,a)},T.into.CSV=function(e,t,r,n,a){0===n.length&&r.length>0&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}})),"object"==typeof e&&(t=e,e=void 0);var s={headers:!0};s.separator=";",s.quote='"',s.utf8Bom=!0,t&&!t.headers&&void 0!==t.headers&&(s.utf8Bom=!1),T.utils.extend(s,t);var i=r.length,o=s.utf8Bom?"\ufeff":"";return s.headers&&(o+=s.quote+n.map(function(e){return e.columnid.trim()}).join(s.quote+s.separator+s.quote)+s.quote+"\r\n"),r.forEach(function(e){o+=n.map(function(t){var r=e[t.columnid];return""!==s.quote&&(r=(r+"").replace(new RegExp("\\"+s.quote,"g"),s.quote+s.quote)),+r!=r&&(r=s.quote+r+s.quote),r}).join(s.separator)+"\r\n"}),e=T.utils.autoExtFilename(e,"csv",t),i=T.utils.saveFile(e,o,null,{disableAutoBom:!0}),a&&(i=a(i)),i},T.into.XLS=function(e,t,r,n,a){"object"==typeof e&&(t=e,e=void 0);var s={};t&&t.sheets&&(s=t.sheets);var i={headers:!0};void 0!==s.Sheet1?i=s[0]:void 0!==t&&(i=t),void 0===i.sheetid&&(i.sheetid="Sheet1");var o=function(){var e=' \t\t \t\t\x3c!--[if gte mso 9]> ';if(e+=" "+i.sheetid+" \t\t ",e+=" ",e+="",e+="",void 0!==i.caption){var a=i.caption;"string"==typeof a&&(a={title:a}),e+="",e+=a.title,e+=" "}return void 0!==i.columns?n=i.columns:0==n.length&&r.length>0&&"object"==typeof r[0]&&(n=Array.isArray(r[0])?r[0].map(function(e,t){return{columnid:t}}):Object.keys(r[0]).map(function(e){return{columnid:e}})),n.forEach(function(e,t){void 0!==i.column&&q(e,i.column),void 0===e.width&&(i.column&&"undefined"!=i.column.width?e.width=i.column.width:e.width="120px"),"number"==typeof e.width&&(e.width=e.width+"px"),void 0===e.columnid&&(e.columnid=t),void 0===e.title&&(e.title=""+e.columnid.trim()),i.headers&&Array.isArray(i.headers)&&(e.title=i.headers[t])}),e+="",n.forEach(function(t){e+=' '}),e+=" ",i.headers&&(e+="",e+="",n.forEach(function(t,r){e+="",void 0!==t.title&&("function"==typeof t.title?e+=t.title(i,t,r):e+=t.title),e+=" "}),e+=" ",e+=" "),e+="",r&&r.length>0&&r.forEach(function(r,a){if(!(a>i.limit)){e+="",n.forEach(function(n,o){var u={};q(u,i.cell),q(u,s.cell),void 0!==i.column&&q(u,i.column.cell),q(u,n.cell),i.cells&&i.cells[a]&&i.cells[a][o]&&q(u,i.cells[a][o]);var c=r[n.columnid];"function"==typeof u.value&&(c=u.value(c,i,r,n,u,a,o));var l=u.typeid;"function"==typeof l&&(l=l(c,i,r,n,u,a,o)),void 0===l&&("number"==typeof c?l="number":"string"==typeof c?l="string":"boolean"==typeof c?l="boolean":"object"==typeof c&&c instanceof Date&&(l="date"));var h="";"money"==l?h='mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;':"number"==l?h=" ":"date"==l?h='mso-number-format:"Short Date";':t.types&&t.types[l]&&t.types[l].typestyle&&(h=t.types[l].typestyle),h=h||'mso-number-format:"\\@";',e+="";var d=u.format;if(void 0===c)e+="";else if(void 0!==d)if("function"==typeof d)e+=d(c);else{if("string"!=typeof d)throw new Error("Unknown format type. Should be function or string");e+=c}else e+="number"==l||"date"==l?c.toString():"money"==l?(+c).toFixed(2):c;e+=" "}),e+=" "}}),e+=" ",e+="
",e+="",e+=""}();e=T.utils.autoExtFilename(e,"xls",t);var u=T.utils.saveFile(e,o);return a&&(u=a(u)),u},T.into.XLSXML=function(e,t,r,n,a){t=t||{},"object"==typeof e&&(t=e,e=void 0);var s,i,o={};t&&t.sheets?(o=t.sheets,s=r,i=n):(o.Sheet1=t,s=[r],i=[n]),e=T.utils.autoExtFilename(e,"xls",t);var u=T.utils.saveFile(e,function(){function e(e){var t="";for(var n in e){t+="<"+n;for(var s in e[n])t+=" ","x:"==s.substr(0,2)?t+=s:t+="ss:",t+=s+'="'+e[n][s]+'"';t+="/>"}var i=x(t);return a[i]||(a[i]={styleid:u},r+='",u++),"s"+a[i].styleid}var r="",n=" ",a={},u=62,c=0;for(var l in o){var h=o[l],d=void 0!==h.dataidx?h.dataidx:c++,f=function(e){try{return Object.values(e)}catch(t){return Object.keys(e).map(function(t){return e[t]})}}(s[d]),p=void 0;void 0!==h.columns?p=h.columns:(void 0===(p=i[d])||0==p.length&&f.length>0)&&"object"==typeof f[0]&&(p=Array.isArray(f[0])?f[0].map(function(e,t){return{columnid:t}}):Object.keys(f[0]).map(function(e){return{columnid:e}})),p.forEach(function(e,t){void 0!==h.column&&q(e,h.column),void 0===e.width&&(h.column&&void 0!==h.column.width?e.width=h.column.width:e.width=120),"number"==typeof e.width&&(e.width=e.width),void 0===e.columnid&&(e.columnid=t),void 0===e.title&&(e.title=""+e.columnid.trim()),h.headers&&Array.isArray(h.headers)&&(e.title=h.headers[t])}),n+=' \t \t\t\t',p.forEach(function(e,t){n+=' '}),h.headers&&(n+='',p.forEach(function(t,r){if(n+="',void 0!==t.title&&("function"==typeof t.title?n+=t.title(h,t,r):n+=t.title),n+=" | "}),n+="
"),f&&f.length>0&&f.forEach(function(r,a){if(!(a>h.limit)){var s={};if(q(s,h.row),h.rows&&h.rows[a]&&q(s,h.rows[a]),n+="",p.forEach(function(i,o){var u={};q(u,h.cell),q(u,s.cell),void 0!==h.column&&q(u,h.column.cell),q(u,i.cell),h.cells&&h.cells[a]&&h.cells[a][o]&&q(u,h.cells[a][o]);var c=r[i.columnid];"function"==typeof u.value&&(c=u.value(c,h,r,i,u,a,o));var l=u.typeid;"function"==typeof l&&(l=l(c,h,r,i,u,a,o)),void 0===l&&("number"==typeof c?l="number":"string"==typeof c?l="string":"boolean"==typeof c?l="boolean":"object"==typeof c&&c instanceof Date&&(l="date"));var d="String";"number"==l?d="Number":"date"==l&&(d="Date");var f="";"money"==l?f='mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;':"number"==l?f=" ":"date"==l?f='mso-number-format:"Short Date";':t.types&&t.types[l]&&t.types[l].typestyle&&(f=t.types[l].typestyle),f=f||'mso-number-format:"\\@";',n+="",n+='';var b=u.format;if(void 0===c)n+="";else if(void 0!==b)if("function"==typeof b)n+=b(c);else{if("string"!=typeof b)throw new Error("Unknown format type. Should be function or string");n+=c}else n+="number"==l||"date"==l?c.toString():"money"==l?(+c).toFixed(2):c;n+=" | "}),n+="
"}}),n+="
"}return n+="",' \t\t \t\t \t\t \t\t \t\t \t\t \t\t \t\t 0 \t\t \t\t \t\t '+r+n}());return a&&(u=a(u)),u},T.into.XLSX=function(e,t,r,n,s){function i(){"object"==typeof t&&Array.isArray(t)?r&&r.length>0&&r.forEach(function(e,r){o(t[r],e,void 0,r+1)}):o(t,r,n,1),u(s)}function o(e,t,r,n){var a={sheetid:"Sheet "+n,headers:!0};T.utils.extend(a,e);var s=Object.keys(t).length;(!r||0==r.length)&&s>0&&(r=Object.keys(t[0]).map(function(e){return{columnid:e}}));var i={};h.SheetNames.indexOf(a.sheetid)>-1?i=h.Sheets[a.sheetid]:(h.SheetNames.push(a.sheetid),h.Sheets[a.sheetid]={},i=h.Sheets[a.sheetid]);var o="A1";a.range&&(o=a.range);var u=T.utils.xlscn(o.match(/[A-Z]+/)[0]),c=+o.match(/[0-9]+/)[0]-1;if(h.Sheets[a.sheetid]["!ref"])var l=h.Sheets[a.sheetid]["!ref"],d=T.utils.xlscn(l.match(/[A-Z]+/)[0]),f=+l.match(/[0-9]+/)[0]-1;else var d=1,f=1;var p=Math.max(u+r.length,d),b=Math.max(c+s+2,f),E=c+1;h.Sheets[a.sheetid]["!ref"]="A1:"+T.utils.xlsnc(p)+b,a.headers&&(r.forEach(function(e,t){i[T.utils.xlsnc(u+t)+""+E]={v:e.columnid.trim()}}),E++);for(var g=0;g=b)return f;if(c)return c=!1,d;var t=E;if(e.charCodeAt(t)===h){for(var r=t;r++0){var s=this.exprs.map(function(e){var r=new Function("params,alasql,p","var y;return "+e.toJS("({})","",null)).bind(n),a=r(t,T);return oe(a)});console.log.apply(console,s)}else if(this.select){var i=this.select.execute(e,t);console.log(oe(i))}else console.log();return r&&(a=r(a)),a},X.Source=function(e){return X.extend(this,e)},X.Source.prototype.toString=function(){var e="SOURCE";return this.url&&(e+=" '"+this.url+" '"),e},X.Source.prototype.execute=function(e,t,r){var n;return I(this.url,!!r,function(e){return n=T(e),r&&(n=r(n)),n},function(e){throw e}),n},X.Require=function(e){return X.extend(this,e)},X.Require.prototype.toString=function(){var e="REQUIRE";return this.paths&&this.paths.length>0&&(e+=this.paths.map(function(e){return e.toString()}).join(",")),this.plugins&&this.plugins.length>0&&(e+=this.plugins.map(function(e){return e.toUpperCase()}).join(",")),e},X.Require.prototype.execute=function(e,t,r){var n=this,a=0,s="";return this.paths&&this.paths.length>0?this.paths.forEach(function(e){I(e.value,!!r,function(e){a++,s+=e,a0?this.plugins.forEach(function(e){T.plugins[e]||I(T.path+"/alasql-"+e.toLowerCase()+".js",!!r,function(i){a++,s+=i,a0&&(r=r.filter(function(e){return e.databaseid.match(a)}))}return t&&(r=t(r)),r},he.createTable=function(e,t,r,n){var a=1,s=T.databases[e].lsdbid;if(he.get(s+"."+t)&&!r)throw new Error('Table "'+t+'" alsready exists in localStorage database "'+s+'"');var i=he.get(s);T.databases[e].tables[t];return i.tables[t]=!0,he.set(s,i),he.storeTable(e,t),n&&(a=n(a)),a},he.truncateTable=function(e,t,r,n){var a,s=1,i=T.databases[e].lsdbid;if(a=T.options.autocommit?he.get(i):T.databases[e],!r&&!a.tables[t])throw new Error('Cannot truncate table "'+t+'" in localStorage, because it does not exist');return he.restoreTable(e,t).data=[],he.storeTable(e,t),n&&(s=n(s)),s},he.dropTable=function(e,t,r,n){var a,s=1,i=T.databases[e].lsdbid;if(a=T.options.autocommit?he.get(i):T.databases[e],!r&&!a.tables[t])throw new Error('Cannot drop table "'+t+'" in localStorage, because it does not exist');return delete a.tables[t],he.set(i,a),he.removeTable(e,t),n&&(s=n(s)),s},he.fromTable=function(e,t,r,n,a){var s=(T.databases[e].lsdbid,he.restoreTable(e,t).data);return r&&(s=r(s,n,a)),s},he.intoTable=function(e,t,r,n,a){var s=(T.databases[e].lsdbid,r.length),i=he.restoreTable(e,t);for(var o in i.identities){var u=i.identities[o];for(var c in r)r[c][o]=u.value,u.value+=u.step}return i.data||(i.data=[]),i.data=i.data.concat(r),he.storeTable(e,t),a&&(s=a(s)),s},he.loadTableData=function(e,t){T.databases[e],T.databases[e].lsdbid;he.restoreTable(e,t)},he.saveTableData=function(e,t){var r=T.databases[e],n=T.databases[e].lsdbid;he.storeTable(n,t),r.tables[t].data=void 0},he.commit=function(e,t){var r=T.databases[e],n=T.databases[e].lsdbid,a={databaseid:n,tables:{}};if(r.tables)for(var s in r.tables)a.tables[s]=!0,he.storeTable(e,s);return he.set(n,a),t?t(1):1},he.begin=he.commit,he.rollback=function(e,t){return};var de=T.engines.SQLITE=function(){};de.createDatabase=function(e,t,r,n,a){throw new Error("Connot create SQLITE database in memory. Attach it.")},de.dropDatabase=function(e){throw new Error("This is impossible to drop SQLite database. Detach it.")},de.attachDatabase=function(e,t,r,n,a){if(T.databases[t])throw new Error('Unable to attach database as "'+t+'" because it already exists');if(r[0]&&r[0]instanceof X.StringValue||r[0]instanceof X.ParamValue){if(r[0]instanceof X.StringValue)var s=r[0].value;else if(r[0]instanceof X.ParamValue)var s=n[r[0].param];return T.utils.loadBinaryFile(s,!0,function(r){var n=new T.Database(t||e);n.engineid="SQLITE",n.sqldbid=e;var s=n.sqldb=new SQL.Database(r);n.tables=[],s.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values.forEach(function(e){n.tables[e[1]]={};var t=n.tables[e[1]].columns=[],r=T.parse(e[4]),a=r.statements[0].columns;a&&a.length>0&&a.forEach(function(e){t.push(e)})}),a(1)},function(e){throw new Error('Cannot open SQLite database file "'+r[0].value+'"')}),1}throw new Error("Cannot attach SQLite database without a file")},de.fromTable=function(e,t,r,n,a){var s=T.databases[e].sqldb.exec("SELECT * FROM "+t),i=a.sources[n].columns=[];s[0].columns.length>0&&s[0].columns.forEach(function(e){i.push({columnid:e})});var o=[];s[0].values.length>0&&s[0].values.forEach(function(e){var t={};i.forEach(function(r,n){t[r.columnid]=e[n]}),o.push(t)}),r&&r(o,n,a)},de.intoTable=function(e,t,r,n,a){for(var s=T.databases[e].sqldb,i=0,o=r.length;i1){var o="REQUIRE "+t.map(function(e){return'"'+e+'"'}).join(",");T(o,[],r)}}else if(!1===e)return void delete T.webworker});var pe=pe||function(e){if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,r=function(){return e.URL||e.webkitURL||e},n=t.createElementNS("http://www.w3.org/1999/xhtml","a"),a="download"in n,s=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},c=function(e){var t=function(){"string"==typeof e?r().revokeObjectURL(e):e.remove()};setTimeout(t,4e4)},l=function(e,t,r){t=[].concat(t);for(var n=t.length;n--;){var a=e["on"+t[n]];if("function"==typeof a)try{a.call(e,r||e)}catch(e){u(e)}}},h=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(t,u,d){d||(t=h(t));var f,p=this,b=t.type,E="application/octet-stream"===b,g=function(){l(p,"writestart progress write writeend".split(" "))};if(p.readyState=p.INIT,a)return f=r().createObjectURL(t),void setTimeout(function(){n.href=f,n.download=u,s(n),g(),c(f),p.readyState=p.DONE});!function(){if((o||E&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,p.readyState=p.DONE,g()},n.readAsDataURL(t),void(p.readyState=p.INIT)}if(f||(f=r().createObjectURL(t)),E)e.location.href=f;else{e.open(f,"_blank")||(e.location.href=f)}p.readyState=p.DONE,g(),c(f)}()},f=d.prototype,p=function(e,t,r){return new d(e,t||e.name||"download",r)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,r){return t=t||e.name||"download",r||(e=h(e)),navigator.msSaveOrOpenBlob(e,t)}:(f.abort=function(){},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,p)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=pe:"undefined"!=typeof define&&null!==define&&null!==define.amd&&define("FileSaver.js",function(){return pe}),(N.isCordova||N.isMeteorServer||N.isNode)&&console.warn("It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead."),T.utils.saveAs=pe}return new H("alasql"),T.use("alasql"),T});
\ No newline at end of file
+//! AlaSQL v0.4.11-update-dependencies-ac1eccc0undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
+"use strict";!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.alasql=t()}(this,function(){var gi=function(e,t,r,n){if(t=t||[],"function"!=typeof importScripts&&gi.webworker){var a=gi.lastid++;return gi.buffer[a]=r,void gi.webworker.postMessage({id:a,sql:e,params:t})}return 0===arguments.length?new D.Select({columns:[new D.Column({columnid:"*"})],from:[new D.ParamValue({param:0})]}):1===arguments.length&&e.constructor===Array?gi.promise(e):("function"==typeof t&&(n=r,r=t,t=[]),"object"!=typeof t&&(t=[t]),"string"==typeof e&&"#"===e[0]&&"object"==typeof document?e=document.querySelector(e).textContent:"object"==typeof e&&e instanceof HTMLElement?e=e.textContent:"function"==typeof e&&(e=e.toString(),e=(/\/\*([\S\s]+)\*\//m.exec(e)||["","Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function."])[1]),gi.exec(e,t,r,n))};gi.version="0.4.11-update-dependencies-ac1eccc0undefined",gi.debug=void 0;function e(){return null}var t=function(){function e(e,t,r,n){for(r=r||{},n=e.length;n--;r[e[n]]=t);return r}var t=[2,13],r=[1,104],n=[1,102],a=[1,103],s=[1,6],i=[1,42],o=[1,79],u=[1,76],c=[1,94],l=[1,93],h=[1,69],d=[1,101],f=[1,85],p=[1,64],b=[1,71],E=[1,84],g=[1,66],m=[1,70],v=[1,68],S=[1,61],T=[1,74],A=[1,62],y=[1,67],N=[1,83],C=[1,77],R=[1,86],O=[1,87],w=[1,81],I=[1,82],x=[1,80],D=[1,88],k=[1,89],L=[1,90],$=[1,91],M=[1,92],U=[1,98],_=[1,65],F=[1,78],P=[1,72],q=[1,96],G=[1,97],V=[1,63],B=[1,73],j=[1,108],H=[1,107],J=[10,306,602,764],Y=[10,306,310,602,764],W=[1,115],X=[1,116],K=[1,117],Q=[1,118],z=[1,119],Z=[130,353,410],ee=[1,127],te=[1,126],re=[1,134],ne=[1,164],ae=[1,175],se=[1,178],ie=[1,173],oe=[1,181],ue=[1,185],ce=[1,160],le=[1,182],he=[1,169],de=[1,171],fe=[1,174],pe=[1,183],be=[1,166],Ee=[1,193],ge=[1,188],me=[1,189],ve=[1,194],Se=[1,195],Te=[1,196],Ae=[1,197],ye=[1,198],Ne=[1,199],Ce=[1,200],Re=[1,201],Oe=[1,202],we=[1,176],Ie=[1,177],xe=[1,179],De=[1,180],ke=[1,186],Le=[1,192],$e=[1,184],Me=[1,187],Ue=[1,172],_e=[1,170],Fe=[1,191],Pe=[1,203],qe=[2,4,5],Ge=[2,471],Ve=[1,206],Be=[1,211],je=[1,220],He=[1,216],Je=[10,72,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ye=[2,4,5,10,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],We=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Xe=[1,249],Ke=[1,256],Qe=[1,265],ze=[1,270],Ze=[1,269],et=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,168,169,179,180,181,183,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],tt=[2,162],rt=[1,281],nt=[10,74,78,306,310,505,602,764],at=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,193,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,302,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,344,356,368,369,370,373,374,386,389,396,400,401,402,403,404,405,406,408,409,417,418,420,424,426,433,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,514,515,516,517,602,764],st=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],it=[1,562],ot=[1,564],ut=[2,503],ct=[1,569],lt=[1,580],ht=[1,583],dt=[1,584],ft=[10,78,89,132,137,146,189,296,306,310,470,602,764],pt=[10,74,306,310,602,764],bt=[2,567],Et=[1,602],gt=[2,4,5,156],mt=[1,640],vt=[1,612],St=[1,646],Tt=[1,647],At=[1,620],yt=[1,631],Nt=[1,618],Ct=[1,626],Rt=[1,619],Ot=[1,627],wt=[1,629],It=[1,621],xt=[1,622],Dt=[1,641],kt=[1,638],Lt=[1,639],$t=[1,615],Mt=[1,617],Ut=[1,609],_t=[1,610],Ft=[1,611],Pt=[1,613],qt=[1,614],Gt=[1,616],Vt=[1,623],Bt=[1,624],jt=[1,628],Ht=[1,630],Jt=[1,632],Yt=[1,633],Wt=[1,634],Xt=[1,635],Kt=[1,636],Qt=[1,642],zt=[1,643],Zt=[1,644],er=[1,645],tr=[2,287],rr=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],nr=[2,359],ar=[1,668],sr=[1,678],ir=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],or=[1,694],ur=[1,703],cr=[1,702],lr=[2,4,5,10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],hr=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],dr=[2,202],fr=[1,725],pr=[10,72,78,93,98,118,128,162,168,169,183,232,245,247,306,310,602,764],br=[2,163],Er=[1,728],gr=[2,4,5,112],mr=[1,741],vr=[1,760],Sr=[1,740],Tr=[1,739],Ar=[1,734],yr=[1,735],Nr=[1,737],Cr=[1,738],Rr=[1,742],Or=[1,743],wr=[1,744],Ir=[1,745],xr=[1,746],Dr=[1,747],kr=[1,748],Lr=[1,749],$r=[1,750],Mr=[1,751],Ur=[1,752],_r=[1,753],Fr=[1,754],Pr=[1,755],qr=[1,756],Gr=[1,757],Vr=[1,759],Br=[1,761],jr=[1,762],Hr=[1,763],Jr=[1,764],Yr=[1,765],Wr=[1,766],Xr=[1,767],Kr=[1,770],Qr=[1,771],zr=[1,772],Zr=[1,773],en=[1,774],tn=[1,775],rn=[1,776],nn=[1,777],an=[1,778],sn=[1,779],on=[1,780],un=[1,781],cn=[74,89,189],ln=[10,74,78,154,187,230,297,306,310,343,356,368,369,373,374,602,764],hn=[1,798],dn=[10,74,78,300,306,310,602,764],fn=[1,799],pn=[1,805],bn=[1,806],En=[1,810],gn=[10,74,78,306,310,602,764],mn=[2,4,5,77,131,132,137,143,145,149,152,154,156,179,180,181,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,312,317,420,424],vn=[10,72,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Sn=[2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,149,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],Tn=[2,4,5,132,296],An=[1,844],yn=[10,74,76,78,306,310,602,764],Nn=[2,738],Cn=[10,74,76,78,132,139,141,145,152,306,310,420,424,602,764],Rn=[2,1161],On=[10,74,76,78,139,141,145,152,306,310,420,424,602,764],wn=[10,74,76,78,139,141,145,306,310,420,424,602,764],In=[10,74,78,139,141,306,310,602,764],xn=[10,78,89,132,146,189,296,306,310,470,602,764],Dn=[335,338,339],kn=[2,764],Ln=[1,869],$n=[1,870],Mn=[1,871],Un=[1,872],_n=[1,881],Fn=[1,880],Pn=[164,166,334],qn=[2,444],Gn=[1,936],Vn=[2,4,5,77,131,156,290,291,292,293],Bn=[1,951],jn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Hn=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Jn=[2,375],Yn=[1,958],Wn=[306,308,310],Xn=[74,300],Kn=[74,300,426],Qn=[1,965],zn=[2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Zn=[74,426],ea=[1,978],ta=[1,977],ra=[1,984],na=[10,72,78,93,98,118,128,162,168,169,232,245,247,306,310,602,764],aa=[1,1010],sa=[10,72,78,306,310,602,764],ia=[1,1016],oa=[1,1017],ua=[1,1018],ca=[2,4,5,10,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],la=[1,1068],ha=[1,1067],da=[1,1081],fa=[1,1080],pa=[1,1088],ba=[10,72,74,78,93,98,107,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Ea=[1,1119],ga=[10,78,89,146,189,306,310,470,602,764],ma=[1,1139],va=[1,1138],Sa=[1,1137],Ta=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Aa=[1,1153],ya=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Na=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,315,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ca=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Ra=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,124,128,129,130,131,132,134,135,137,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],Oa=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],wa=[2,406],Ia=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],xa=[2,285],Da=[2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],ka=[10,78,306,310,602,764],La=[1,1189],$a=[10,77,78,143,145,152,181,302,306,310,420,424,602,764],Ma=[10,74,78,306,308,310,464,602,764],Ua=[1,1200],_a=[10,72,78,118,128,162,168,169,232,245,247,306,310,602,764],Fa=[10,72,74,78,93,98,118,128,162,168,169,183,198,232,245,247,306,310,602,764],Pa=[2,4,5,72,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],qa=[2,4,5,72,74,76,77,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ga=[2,1085],Va=[2,4,5,72,74,76,77,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,185,187,280,281,282,283,284,285,286,287,288,420,424],Ba=[1,1252],ja=[10,74,78,128,306,308,310,464,602,764],Ha=[115,116,124],Ja=[2,584],Ya=[1,1280],Wa=[76,139],Xa=[2,724],Ka=[1,1297],Qa=[1,1298],za=[2,4,5,10,53,72,76,89,124,146,156,189,230,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Za=[2,330],es=[1,1322],ts=[1,1336],rs=[1,1338],ns=[2,487],as=[74,78],ss=[10,306,308,310,464,602,764],is=[10,72,78,118,162,168,169,232,245,247,306,310,602,764],os=[1,1354],us=[1,1358],cs=[1,1359],ls=[1,1361],hs=[1,1362],ds=[1,1363],fs=[1,1364],ps=[1,1365],bs=[1,1366],Es=[1,1367],gs=[1,1368],ms=[10,72,74,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],vs=[1,1393],Ss=[10,72,78,118,162,168,169,245,247,306,310,602,764],Ts=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],As=[1,1490],ys=[1,1492],Ns=[2,4,5,77,143,145,152,156,181,290,291,292,293,302,420,424],Cs=[1,1506],Rs=[10,72,74,78,162,168,169,245,247,306,310,602,764],Os=[1,1524],ws=[1,1526],Is=[1,1527],xs=[1,1523],Ds=[1,1522],ks=[1,1521],Ls=[1,1528],$s=[1,1518],Ms=[1,1519],Us=[1,1520],_s=[1,1545],Fs=[2,4,5,10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],Ps=[1,1556],qs=[1,1564],Gs=[1,1563],Vs=[10,72,78,162,168,169,245,247,306,310,602,764],Bs=[10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],js=[2,4,5,10,72,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],Hs=[1,1621],Js=[1,1623],Ys=[1,1620],Ws=[1,1622],Xs=[187,193,368,369,370,373],Ks=[2,515],Qs=[1,1628],zs=[1,1647],Zs=[10,72,78,162,168,169,306,310,602,764],ei=[1,1657],ti=[1,1658],ri=[1,1659],ni=[1,1678],ai=[4,10,243,306,310,343,356,602,764],si=[1,1726],ii=[10,72,74,78,118,162,168,169,239,245,247,306,310,602,764],oi=[2,4,5,77],ui=[1,1820],ci=[1,1832],li=[1,1851],hi=[10,72,78,162,168,169,306,310,415,602,764],di=[10,74,78,230,306,310,602,764],fi={trace:function(){},yy:{},symbols_:{error:2,Literal:3,LITERAL:4,BRALITERAL:5,NonReserved:6,LiteralWithSpaces:7,main:8,Statements:9,EOF:10,Statements_group0:11,AStatement:12,ExplainStatement:13,EXPLAIN:14,QUERY:15,PLAN:16,Statement:17,AlterTable:18,AttachDatabase:19,Call:20,CreateDatabase:21,CreateIndex:22,CreateGraph:23,CreateTable:24,CreateView:25,CreateEdge:26,CreateVertex:27,Declare:28,Delete:29,DetachDatabase:30,DropDatabase:31,DropIndex:32,DropTable:33,DropView:34,If:35,Insert:36,Merge:37,Reindex:38,RenameTable:39,Select:40,ShowCreateTable:41,ShowColumns:42,ShowDatabases:43,ShowIndex:44,ShowTables:45,TruncateTable:46,WithSelect:47,CreateTrigger:48,DropTrigger:49,BeginTransaction:50,CommitTransaction:51,RollbackTransaction:52,EndTransaction:53,UseDatabase:54,Update:55,JavaScript:56,Source:57,Assert:58,While:59,Continue:60,Break:61,BeginEnd:62,Print:63,Require:64,SetVariable:65,ExpressionStatement:66,AddRule:67,Query:68,Echo:69,CreateFunction:70,CreateAggregate:71,WITH:72,WithTablesList:73,COMMA:74,WithTable:75,AS:76,LPAR:77,RPAR:78,SelectClause:79,Select_option0:80,IntoClause:81,FromClause:82,Select_option1:83,WhereClause:84,GroupClause:85,OrderClause:86,LimitClause:87,UnionClause:88,SEARCH:89,Select_repetition0:90,Select_option2:91,PivotClause:92,PIVOT:93,Expression:94,FOR:95,PivotClause_option0:96,PivotClause_option1:97,UNPIVOT:98,IN:99,ColumnsList:100,PivotClause_option2:101,PivotClause2:102,AsList:103,AsLiteral:104,AsPart:105,RemoveClause:106,REMOVE:107,RemoveClause_option0:108,RemoveColumnsList:109,RemoveColumn:110,Column:111,LIKE:112,StringValue:113,ArrowDot:114,ARROW:115,DOT:116,SearchSelector:117,ORDER:118,BY:119,OrderExpressionsList:120,SearchSelector_option0:121,DOTDOT:122,CARET:123,EQ:124,SearchSelector_repetition_plus0:125,SearchSelector_repetition_plus1:126,SearchSelector_option1:127,WHERE:128,OF:129,CLASS:130,NUMBER:131,STRING:132,SLASH:133,VERTEX:134,EDGE:135,EXCLAMATION:136,SHARP:137,MODULO:138,GT:139,LT:140,GTGT:141,LTLT:142,DOLLAR:143,Json:144,AT:145,SET:146,SetColumnsList:147,TO:148,VALUE:149,ROW:150,ExprList:151,COLON:152,PlusStar:153,NOT:154,SearchSelector_repetition2:155,IF:156,SearchSelector_repetition3:157,Aggregator:158,SearchSelector_repetition4:159,SearchSelector_group0:160,SearchSelector_repetition5:161,UNION:162,SearchSelectorList:163,ALL:164,SearchSelector_repetition6:165,ANY:166,SearchSelector_repetition7:167,INTERSECT:168,EXCEPT:169,AND:170,OR:171,PATH:172,RETURN:173,ResultColumns:174,REPEAT:175,SearchSelector_repetition8:176,SearchSelectorList_repetition0:177,SearchSelectorList_repetition1:178,PLUS:179,STAR:180,QUESTION:181,SearchFrom:182,FROM:183,SelectModifier:184,DISTINCT:185,TopClause:186,UNIQUE:187,SelectClause_option0:188,SELECT:189,COLUMN:190,MATRIX:191,TEXTSTRING:192,INDEX:193,RECORDSET:194,TOP:195,NumValue:196,TopClause_option0:197,INTO:198,Table:199,FuncValue:200,ParamValue:201,VarValue:202,FromTablesList:203,JoinTablesList:204,ApplyClause:205,CROSS:206,APPLY:207,OUTER:208,FromTable:209,FromTable_option0:210,FromTable_option1:211,INDEXED:212,INSERTED:213,FromString:214,JoinTable:215,JoinMode:216,JoinTableAs:217,OnClause:218,JoinTableAs_option0:219,JoinTableAs_option1:220,JoinModeMode:221,NATURAL:222,JOIN:223,INNER:224,LEFT:225,RIGHT:226,FULL:227,SEMI:228,ANTI:229,ON:230,USING:231,GROUP:232,GroupExpressionsList:233,HavingClause:234,GroupExpression:235,GROUPING:236,ROLLUP:237,CUBE:238,HAVING:239,CORRESPONDING:240,OrderExpression:241,DIRECTION:242,COLLATE:243,NOCASE:244,LIMIT:245,OffsetClause:246,OFFSET:247,LimitClause_option0:248,FETCH:249,LimitClause_option1:250,LimitClause_option2:251,LimitClause_option3:252,ResultColumn:253,Star:254,AggrValue:255,Op:256,LogicValue:257,NullValue:258,ExistsValue:259,CaseValue:260,CastClause:261,ArrayValue:262,NewClause:263,Expression_group0:264,CURRENT_TIMESTAMP:265,JAVASCRIPT:266,CREATE:267,FUNCTION:268,AGGREGATE:269,NEW:270,CAST:271,ColumnType:272,CONVERT:273,PrimitiveValue:274,OverClause:275,OVER:276,OverPartitionClause:277,OverOrderByClause:278,PARTITION:279,SUM:280,COUNT:281,MIN:282,MAX:283,AVG:284,FIRST:285,LAST:286,AGGR:287,ARRAY:288,FuncValue_option0:289,REPLACE:290,DATEADD:291,DATEDIFF:292,INTERVAL:293,TRUE:294,FALSE:295,NSTRING:296,NULL:297,EXISTS:298,ARRAYLBRA:299,RBRA:300,ParamValue_group0:301,BRAQUESTION:302,CASE:303,WhensList:304,ElseClause:305,END:306,When:307,WHEN:308,THEN:309,ELSE:310,REGEXP:311,TILDA:312,GLOB:313,ESCAPE:314,NOT_LIKE:315,BARBAR:316,MINUS:317,AMPERSAND:318,BAR:319,GE:320,LE:321,EQEQ:322,EQEQEQ:323,NE:324,NEEQEQ:325,NEEQEQEQ:326,CondOp:327,AllSome:328,ColFunc:329,BETWEEN:330,NOT_BETWEEN:331,IS:332,DOUBLECOLON:333,SOME:334,UPDATE:335,SetColumn:336,SetColumn_group0:337,DELETE:338,INSERT:339,Into:340,Values:341,ValuesListsList:342,DEFAULT:343,VALUES:344,ValuesList:345,Value:346,DateValue:347,TemporaryClause:348,TableClass:349,IfNotExists:350,CreateTableDefClause:351,CreateTableOptionsClause:352,TABLE:353,CreateTableOptions:354,CreateTableOption:355,IDENTITY:356,TEMP:357,ColumnDefsList:358,ConstraintsList:359,Constraint:360,ConstraintName:361,PrimaryKey:362,ForeignKey:363,UniqueKey:364,IndexKey:365,Check:366,CONSTRAINT:367,CHECK:368,PRIMARY:369,KEY:370,PrimaryKey_option0:371,ColsList:372,FOREIGN:373,REFERENCES:374,ForeignKey_option0:375,OnForeignKeyClause:376,ParColsList:377,OnDeleteClause:378,OnUpdateClause:379,NO:380,ACTION:381,UniqueKey_option0:382,UniqueKey_option1:383,ColumnDef:384,ColumnConstraintsClause:385,ColumnConstraints:386,SingularColumnType:387,NumberMax:388,ENUM:389,MAXNUM:390,ColumnConstraintsList:391,ColumnConstraint:392,ParLiteral:393,ColumnConstraint_option0:394,ColumnConstraint_option1:395,DROP:396,DropTable_group0:397,IfExists:398,TablesList:399,ALTER:400,RENAME:401,ADD:402,MODIFY:403,ATTACH:404,DATABASE:405,DETACH:406,AsClause:407,USE:408,SHOW:409,VIEW:410,CreateView_option0:411,CreateView_option1:412,SubqueryRestriction:413,READ:414,ONLY:415,OPTION:416,SOURCE:417,ASSERT:418,JsonObject:419,ATLBRA:420,JsonArray:421,JsonValue:422,JsonPrimitiveValue:423,LCUR:424,JsonPropertiesList:425,RCUR:426,JsonElementsList:427,JsonProperty:428,OnOff:429,SetPropsList:430,AtDollar:431,SetProp:432,OFF:433,COMMIT:434,TRANSACTION:435,ROLLBACK:436,BEGIN:437,ElseStatement:438,WHILE:439,CONTINUE:440,BREAK:441,PRINT:442,REQUIRE:443,StringValuesList:444,PluginsList:445,Plugin:446,ECHO:447,DECLARE:448,DeclaresList:449,DeclareItem:450,TRUNCATE:451,MERGE:452,MergeInto:453,MergeUsing:454,MergeOn:455,MergeMatchedList:456,OutputClause:457,MergeMatched:458,MergeNotMatched:459,MATCHED:460,MergeMatchedAction:461,MergeNotMatchedAction:462,TARGET:463,OUTPUT:464,CreateVertex_option0:465,CreateVertex_option1:466,CreateVertex_option2:467,CreateVertexSet:468,SharpValue:469,CONTENT:470,CreateEdge_option0:471,GRAPH:472,GraphList:473,GraphVertexEdge:474,GraphElement:475,GraphVertexEdge_option0:476,GraphVertexEdge_option1:477,GraphElementVar:478,GraphVertexEdge_option2:479,GraphVertexEdge_option3:480,GraphVertexEdge_option4:481,GraphVar:482,GraphAsClause:483,GraphAtClause:484,GraphElement2:485,GraphElement2_option0:486,GraphElement2_option1:487,GraphElement2_option2:488,GraphElement2_option3:489,GraphElement_option0:490,GraphElement_option1:491,GraphElement_option2:492,SharpLiteral:493,GraphElement_option3:494,GraphElement_option4:495,GraphElement_option5:496,ColonLiteral:497,DeleteVertex:498,DeleteVertex_option0:499,DeleteEdge:500,DeleteEdge_option0:501,DeleteEdge_option1:502,DeleteEdge_option2:503,Term:504,COLONDASH:505,TermsList:506,QUESTIONDASH:507,CALL:508,TRIGGER:509,BeforeAfter:510,InsertDeleteUpdate:511,CreateTrigger_option0:512,CreateTrigger_option1:513,BEFORE:514,AFTER:515,INSTEAD:516,REINDEX:517,A:518,ABSENT:519,ABSOLUTE:520,ACCORDING:521,ADA:522,ADMIN:523,ALWAYS:524,ASC:525,ASSERTION:526,ASSIGNMENT:527,ATTRIBUTE:528,ATTRIBUTES:529,BASE64:530,BERNOULLI:531,BLOCKED:532,BOM:533,BREADTH:534,C:535,CASCADE:536,CATALOG:537,CATALOG_NAME:538,CHAIN:539,CHARACTERISTICS:540,CHARACTERS:541,CHARACTER_SET_CATALOG:542,CHARACTER_SET_NAME:543,CHARACTER_SET_SCHEMA:544,CLASS_ORIGIN:545,COBOL:546,COLLATION:547,COLLATION_CATALOG:548,COLLATION_NAME:549,COLLATION_SCHEMA:550,COLUMNS:551,COLUMN_NAME:552,COMMAND_FUNCTION:553,COMMAND_FUNCTION_CODE:554,COMMITTED:555,CONDITION_NUMBER:556,CONNECTION:557,CONNECTION_NAME:558,CONSTRAINTS:559,CONSTRAINT_CATALOG:560,CONSTRAINT_NAME:561,CONSTRAINT_SCHEMA:562,CONSTRUCTOR:563,CONTROL:564,CURSOR_NAME:565,DATA:566,DATETIME_INTERVAL_CODE:567,DATETIME_INTERVAL_PRECISION:568,DB:569,DEFAULTS:570,DEFERRABLE:571,DEFERRED:572,DEFINED:573,DEFINER:574,DEGREE:575,DEPTH:576,DERIVED:577,DESC:578,DESCRIPTOR:579,DIAGNOSTICS:580,DISPATCH:581,DOCUMENT:582,DOMAIN:583,DYNAMIC_FUNCTION:584,DYNAMIC_FUNCTION_CODE:585,EMPTY:586,ENCODING:587,ENFORCED:588,EXCLUDE:589,EXCLUDING:590,EXPRESSION:591,FILE:592,FINAL:593,FLAG:594,FOLLOWING:595,FORTRAN:596,FOUND:597,FS:598,G:599,GENERAL:600,GENERATED:601,GO:602,GOTO:603,GRANTED:604,HEX:605,HIERARCHY:606,ID:607,IGNORE:608,IMMEDIATE:609,IMMEDIATELY:610,IMPLEMENTATION:611,INCLUDING:612,INCREMENT:613,INDENT:614,INITIALLY:615,INPUT:616,INSTANCE:617,INSTANTIABLE:618,INTEGRITY:619,INVOKER:620,ISOLATION:621,K:622,KEY_MEMBER:623,KEY_TYPE:624,LENGTH:625,LEVEL:626,LIBRARY:627,LINK:628,LOCATION:629,LOCATOR:630,M:631,MAP:632,MAPPING:633,MAXVALUE:634,MESSAGE_LENGTH:635,MESSAGE_OCTET_LENGTH:636,MESSAGE_TEXT:637,MINVALUE:638,MORE:639,MUMPS:640,NAME:641,NAMES:642,NAMESPACE:643,NESTING:644,NEXT:645,NFC:646,NFD:647,NFKC:648,NFKD:649,NIL:650,NORMALIZED:651,NULLABLE:652,NULLS:653,OBJECT:654,OCTETS:655,OPTIONS:656,ORDERING:657,ORDINALITY:658,OTHERS:659,OVERRIDING:660,P:661,PAD:662,PARAMETER_MODE:663,PARAMETER_NAME:664,PARAMETER_ORDINAL_POSITION:665,PARAMETER_SPECIFIC_CATALOG:666,PARAMETER_SPECIFIC_NAME:667,PARAMETER_SPECIFIC_SCHEMA:668,PARTIAL:669,PASCAL:670,PASSING:671,PASSTHROUGH:672,PERMISSION:673,PLACING:674,PLI:675,PRECEDING:676,PRESERVE:677,PRIOR:678,PRIVILEGES:679,PUBLIC:680,RECOVERY:681,RELATIVE:682,REPEATABLE:683,REQUIRING:684,RESPECT:685,RESTART:686,RESTORE:687,RESTRICT:688,RETURNED_CARDINALITY:689,RETURNED_LENGTH:690,RETURNED_OCTET_LENGTH:691,RETURNED_SQLSTATE:692,RETURNING:693,ROLE:694,ROUTINE:695,ROUTINE_CATALOG:696,ROUTINE_NAME:697,ROUTINE_SCHEMA:698,ROW_COUNT:699,SCALE:700,SCHEMA:701,SCHEMA_NAME:702,SCOPE_CATALOG:703,SCOPE_NAME:704,SCOPE_SCHEMA:705,SECTION:706,SECURITY:707,SELECTIVE:708,SELF:709,SEQUENCE:710,SERIALIZABLE:711,SERVER:712,SERVER_NAME:713,SESSION:714,SETS:715,SIMPLE:716,SIZE:717,SPACE:718,SPECIFIC_NAME:719,STANDALONE:720,STATE:721,STATEMENT:722,STRIP:723,STRUCTURE:724,STYLE:725,SUBCLASS_ORIGIN:726,T:727,TABLE_NAME:728,TEMPORARY:729,TIES:730,TOKEN:731,TOP_LEVEL_COUNT:732,TRANSACTIONS_COMMITTED:733,TRANSACTIONS_ROLLED_BACK:734,TRANSACTION_ACTIVE:735,TRANSFORM:736,TRANSFORMS:737,TRIGGER_CATALOG:738,TRIGGER_NAME:739,TRIGGER_SCHEMA:740,TYPE:741,UNBOUNDED:742,UNCOMMITTED:743,UNDER:744,UNLINK:745,UNNAMED:746,UNTYPED:747,URI:748,USAGE:749,USER_DEFINED_TYPE_CATALOG:750,USER_DEFINED_TYPE_CODE:751,USER_DEFINED_TYPE_NAME:752,USER_DEFINED_TYPE_SCHEMA:753,VALID:754,VERSION:755,WHITESPACE:756,WORK:757,WRAPPER:758,WRITE:759,XMLDECLARATION:760,XMLSCHEMA:761,YES:762,ZONE:763,SEMICOLON:764,PERCENT:765,ROWS:766,FuncValue_option0_group0:767,$accept:0,$end:1},terminals_:{2:"error",4:"LITERAL",5:"BRALITERAL",10:"EOF",14:"EXPLAIN",15:"QUERY",16:"PLAN",53:"EndTransaction",72:"WITH",74:"COMMA",76:"AS",77:"LPAR",78:"RPAR",89:"SEARCH",93:"PIVOT",95:"FOR",98:"UNPIVOT",99:"IN",107:"REMOVE",112:"LIKE",115:"ARROW",116:"DOT",118:"ORDER",119:"BY",122:"DOTDOT",123:"CARET",124:"EQ",128:"WHERE",129:"OF",130:"CLASS",131:"NUMBER",132:"STRING",133:"SLASH",134:"VERTEX",135:"EDGE",136:"EXCLAMATION",137:"SHARP",138:"MODULO",139:"GT",140:"LT",141:"GTGT",142:"LTLT",143:"DOLLAR",145:"AT",146:"SET",148:"TO",149:"VALUE",150:"ROW",152:"COLON",154:"NOT",156:"IF",162:"UNION",164:"ALL",166:"ANY",168:"INTERSECT",169:"EXCEPT",170:"AND",171:"OR",172:"PATH",173:"RETURN",175:"REPEAT",179:"PLUS",180:"STAR",181:"QUESTION",183:"FROM",185:"DISTINCT",187:"UNIQUE",189:"SELECT",190:"COLUMN",191:"MATRIX",192:"TEXTSTRING",193:"INDEX",194:"RECORDSET",195:"TOP",198:"INTO",206:"CROSS",207:"APPLY",208:"OUTER",212:"INDEXED",213:"INSERTED",222:"NATURAL",223:"JOIN",224:"INNER",225:"LEFT",226:"RIGHT",227:"FULL",228:"SEMI",229:"ANTI",230:"ON",231:"USING",232:"GROUP",236:"GROUPING",237:"ROLLUP",238:"CUBE",239:"HAVING",240:"CORRESPONDING",242:"DIRECTION",243:"COLLATE",244:"NOCASE",245:"LIMIT",247:"OFFSET",249:"FETCH",265:"CURRENT_TIMESTAMP",266:"JAVASCRIPT",267:"CREATE",268:"FUNCTION",269:"AGGREGATE",270:"NEW",271:"CAST",273:"CONVERT",276:"OVER",279:"PARTITION",280:"SUM",281:"COUNT",282:"MIN",283:"MAX",284:"AVG",285:"FIRST",286:"LAST",287:"AGGR",288:"ARRAY",290:"REPLACE",291:"DATEADD",292:"DATEDIFF",293:"INTERVAL",294:"TRUE",295:"FALSE",296:"NSTRING",297:"NULL",298:"EXISTS",299:"ARRAYLBRA",300:"RBRA",302:"BRAQUESTION",303:"CASE",306:"END",308:"WHEN",309:"THEN",310:"ELSE",311:"REGEXP",312:"TILDA",313:"GLOB",314:"ESCAPE",315:"NOT_LIKE",316:"BARBAR",317:"MINUS",318:"AMPERSAND",319:"BAR",320:"GE",321:"LE",322:"EQEQ",323:"EQEQEQ",324:"NE",325:"NEEQEQ",326:"NEEQEQEQ",330:"BETWEEN",331:"NOT_BETWEEN",332:"IS",333:"DOUBLECOLON",334:"SOME",335:"UPDATE",338:"DELETE",339:"INSERT",343:"DEFAULT",344:"VALUES",347:"DateValue",353:"TABLE",356:"IDENTITY",357:"TEMP",367:"CONSTRAINT",368:"CHECK",369:"PRIMARY",370:"KEY",373:"FOREIGN",374:"REFERENCES",380:"NO",381:"ACTION",386:"ColumnConstraints",389:"ENUM",390:"MAXNUM",396:"DROP",400:"ALTER",401:"RENAME",402:"ADD",403:"MODIFY",404:"ATTACH",405:"DATABASE",406:"DETACH",408:"USE",409:"SHOW",410:"VIEW",414:"READ",415:"ONLY",416:"OPTION",417:"SOURCE",418:"ASSERT",420:"ATLBRA",424:"LCUR",426:"RCUR",433:"OFF",434:"COMMIT",435:"TRANSACTION",436:"ROLLBACK",437:"BEGIN",439:"WHILE",440:"CONTINUE",441:"BREAK",442:"PRINT",443:"REQUIRE",447:"ECHO",448:"DECLARE",451:"TRUNCATE",452:"MERGE",460:"MATCHED",463:"TARGET",464:"OUTPUT",470:"CONTENT",472:"GRAPH",505:"COLONDASH",507:"QUESTIONDASH",508:"CALL",509:"TRIGGER",514:"BEFORE",515:"AFTER",516:"INSTEAD",517:"REINDEX",518:"A",519:"ABSENT",520:"ABSOLUTE",521:"ACCORDING",522:"ADA",523:"ADMIN",524:"ALWAYS",525:"ASC",526:"ASSERTION",527:"ASSIGNMENT",528:"ATTRIBUTE",529:"ATTRIBUTES",530:"BASE64",531:"BERNOULLI",532:"BLOCKED",533:"BOM",534:"BREADTH",535:"C",536:"CASCADE",537:"CATALOG",538:"CATALOG_NAME",539:"CHAIN",540:"CHARACTERISTICS",541:"CHARACTERS",542:"CHARACTER_SET_CATALOG",543:"CHARACTER_SET_NAME",544:"CHARACTER_SET_SCHEMA",545:"CLASS_ORIGIN",546:"COBOL",547:"COLLATION",548:"COLLATION_CATALOG",549:"COLLATION_NAME",550:"COLLATION_SCHEMA",551:"COLUMNS",552:"COLUMN_NAME",553:"COMMAND_FUNCTION",554:"COMMAND_FUNCTION_CODE",555:"COMMITTED",556:"CONDITION_NUMBER",557:"CONNECTION",558:"CONNECTION_NAME",559:"CONSTRAINTS",560:"CONSTRAINT_CATALOG",561:"CONSTRAINT_NAME",562:"CONSTRAINT_SCHEMA",563:"CONSTRUCTOR",564:"CONTROL",565:"CURSOR_NAME",566:"DATA",567:"DATETIME_INTERVAL_CODE",568:"DATETIME_INTERVAL_PRECISION",569:"DB",570:"DEFAULTS",571:"DEFERRABLE",572:"DEFERRED",573:"DEFINED",574:"DEFINER",575:"DEGREE",576:"DEPTH",577:"DERIVED",578:"DESC",579:"DESCRIPTOR",580:"DIAGNOSTICS",581:"DISPATCH",582:"DOCUMENT",583:"DOMAIN",584:"DYNAMIC_FUNCTION",585:"DYNAMIC_FUNCTION_CODE",586:"EMPTY",587:"ENCODING",588:"ENFORCED",589:"EXCLUDE",590:"EXCLUDING",591:"EXPRESSION",592:"FILE",593:"FINAL",594:"FLAG",595:"FOLLOWING",596:"FORTRAN",597:"FOUND",598:"FS",599:"G",600:"GENERAL",601:"GENERATED",602:"GO",603:"GOTO",604:"GRANTED",605:"HEX",606:"HIERARCHY",607:"ID",608:"IGNORE",609:"IMMEDIATE",610:"IMMEDIATELY",611:"IMPLEMENTATION",612:"INCLUDING",613:"INCREMENT",614:"INDENT",615:"INITIALLY",616:"INPUT",617:"INSTANCE",618:"INSTANTIABLE",619:"INTEGRITY",620:"INVOKER",621:"ISOLATION",622:"K",623:"KEY_MEMBER",624:"KEY_TYPE",625:"LENGTH",626:"LEVEL",627:"LIBRARY",628:"LINK",629:"LOCATION",630:"LOCATOR",631:"M",632:"MAP",633:"MAPPING",634:"MAXVALUE",635:"MESSAGE_LENGTH",636:"MESSAGE_OCTET_LENGTH",637:"MESSAGE_TEXT",638:"MINVALUE",639:"MORE",640:"MUMPS",641:"NAME",642:"NAMES",643:"NAMESPACE",644:"NESTING",645:"NEXT",646:"NFC",647:"NFD",648:"NFKC",649:"NFKD",650:"NIL",651:"NORMALIZED",652:"NULLABLE",653:"NULLS",654:"OBJECT",655:"OCTETS",656:"OPTIONS",657:"ORDERING",658:"ORDINALITY",659:"OTHERS",660:"OVERRIDING",661:"P",662:"PAD",663:"PARAMETER_MODE",664:"PARAMETER_NAME",665:"PARAMETER_ORDINAL_POSITION",666:"PARAMETER_SPECIFIC_CATALOG",667:"PARAMETER_SPECIFIC_NAME",668:"PARAMETER_SPECIFIC_SCHEMA",669:"PARTIAL",670:"PASCAL",671:"PASSING",672:"PASSTHROUGH",673:"PERMISSION",674:"PLACING",675:"PLI",676:"PRECEDING",677:"PRESERVE",678:"PRIOR",679:"PRIVILEGES",680:"PUBLIC",681:"RECOVERY",682:"RELATIVE",683:"REPEATABLE",684:"REQUIRING",685:"RESPECT",686:"RESTART",687:"RESTORE",688:"RESTRICT",689:"RETURNED_CARDINALITY",690:"RETURNED_LENGTH",691:"RETURNED_OCTET_LENGTH",692:"RETURNED_SQLSTATE",693:"RETURNING",694:"ROLE",695:"ROUTINE",696:"ROUTINE_CATALOG",697:"ROUTINE_NAME",698:"ROUTINE_SCHEMA",699:"ROW_COUNT",700:"SCALE",701:"SCHEMA",702:"SCHEMA_NAME",703:"SCOPE_CATALOG",704:"SCOPE_NAME",705:"SCOPE_SCHEMA",706:"SECTION",707:"SECURITY",708:"SELECTIVE",709:"SELF",710:"SEQUENCE",711:"SERIALIZABLE",712:"SERVER",713:"SERVER_NAME",714:"SESSION",715:"SETS",716:"SIMPLE",717:"SIZE",718:"SPACE",719:"SPECIFIC_NAME",720:"STANDALONE",721:"STATE",722:"STATEMENT",723:"STRIP",724:"STRUCTURE",725:"STYLE",726:"SUBCLASS_ORIGIN",727:"T",728:"TABLE_NAME",729:"TEMPORARY",730:"TIES",731:"TOKEN",732:"TOP_LEVEL_COUNT",733:"TRANSACTIONS_COMMITTED",734:"TRANSACTIONS_ROLLED_BACK",735:"TRANSACTION_ACTIVE",736:"TRANSFORM",737:"TRANSFORMS",738:"TRIGGER_CATALOG",739:"TRIGGER_NAME",740:"TRIGGER_SCHEMA",741:"TYPE",742:"UNBOUNDED",743:"UNCOMMITTED",744:"UNDER",745:"UNLINK",746:"UNNAMED",747:"UNTYPED",748:"URI",749:"USAGE",750:"USER_DEFINED_TYPE_CATALOG",751:"USER_DEFINED_TYPE_CODE",752:"USER_DEFINED_TYPE_NAME",753:"USER_DEFINED_TYPE_SCHEMA",754:"VALID",755:"VERSION",756:"WHITESPACE",757:"WORK",758:"WRAPPER",759:"WRITE",760:"XMLDECLARATION",761:"XMLSCHEMA",762:"YES",763:"ZONE",764:"SEMICOLON",765:"PERCENT",766:"ROWS"},productions_:[0,[3,1],[3,1],[3,2],[7,1],[7,2],[8,2],[9,3],[9,1],[9,1],[13,2],[13,4],[12,1],[17,0],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[47,3],[73,3],[73,1],[75,5],[40,10],[40,4],[92,8],[92,11],[102,4],[104,2],[104,1],[103,3],[103,1],[105,1],[105,3],[106,3],[109,3],[109,1],[110,1],[110,2],[114,1],[114,1],[117,1],[117,5],[117,5],[117,1],[117,2],[117,1],[117,2],[117,2],[117,3],[117,4],[117,4],[117,4],[117,4],[117,4],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,2],[117,2],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,2],[117,3],[117,4],[117,3],[117,1],[117,4],[117,2],[117,2],[117,4],[117,4],[117,4],[117,4],[117,4],[117,5],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,4],[117,6],[163,3],[163,1],[153,1],[153,1],[153,1],[182,2],[79,4],[79,4],[79,4],[79,3],[184,1],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[184,2],[186,3],[186,4],[186,0],[81,0],[81,2],[81,2],[81,2],[81,2],[81,2],[82,2],[82,3],[82,5],[82,0],[205,6],[205,7],[205,6],[205,7],[203,1],[203,3],[209,4],[209,5],[209,3],[209,3],[209,2],[209,3],[209,1],[209,3],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,1],[209,2],[209,3],[209,1],[209,2],[209,3],[214,1],[199,3],[199,1],[204,2],[204,2],[204,1],[204,1],[215,3],[217,1],[217,2],[217,3],[217,3],[217,2],[217,3],[217,4],[217,5],[217,1],[217,2],[217,3],[217,1],[217,2],[217,3],[216,1],[216,2],[221,1],[221,2],[221,2],[221,3],[221,2],[221,3],[221,2],[221,3],[221,2],[221,2],[221,2],[218,2],[218,2],[218,0],[84,0],[84,2],[85,0],[85,4],[233,1],[233,3],[235,5],[235,4],[235,4],[235,1],[234,0],[234,2],[88,0],[88,2],[88,3],[88,2],[88,2],[88,3],[88,4],[88,3],[88,3],[86,0],[86,3],[120,1],[120,3],[241,1],[241,2],[241,3],[241,4],[87,0],[87,3],[87,8],[246,0],[246,2],[174,3],[174,1],[253,3],[253,2],[253,3],[253,2],[253,3],[253,2],[253,1],[254,5],[254,3],[254,1],[111,5],[111,3],[111,3],[111,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,3],[94,3],[94,3],[94,1],[94,1],[56,1],[70,5],[71,5],[263,2],[263,2],[261,6],[261,8],[261,6],[261,8],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[274,1],[255,5],[255,6],[255,6],[275,0],[275,4],[275,4],[275,5],[277,3],[278,3],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[158,1],[200,5],[200,3],[200,4],[200,4],[200,8],[200,8],[200,8],[200,8],[200,3],[151,1],[151,3],[196,1],[257,1],[257,1],[113,1],[113,1],[258,1],[202,2],[259,4],[262,3],[201,2],[201,2],[201,1],[201,1],[260,5],[260,4],[304,2],[304,1],[307,4],[305,2],[305,0],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,5],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,3],[256,6],[256,6],[256,3],[256,3],[256,2],[256,2],[256,2],[256,2],[256,2],[256,3],[256,5],[256,6],[256,5],[256,6],[256,4],[256,5],[256,3],[256,4],[256,3],[256,4],[256,3],[256,3],[256,3],[256,3],[256,3],[329,1],[329,1],[329,4],[327,1],[327,1],[327,1],[327,1],[327,1],[327,1],[328,1],[328,1],[328,1],[55,6],[55,4],[147,1],[147,3],[336,3],[336,4],[29,5],[29,3],[36,5],[36,4],[36,7],[36,6],[36,5],[36,4],[36,5],[36,8],[36,7],[36,4],[36,6],[36,7],[341,1],[341,1],[340,0],[340,1],[342,3],[342,1],[342,1],[342,5],[342,3],[342,3],[345,1],[345,3],[346,1],[346,1],[346,1],[346,1],[346,1],[346,1],[100,1],[100,3],[24,9],[24,5],[349,1],[349,1],[352,0],[352,1],[354,2],[354,1],[355,1],[355,3],[355,3],[355,3],[348,0],[348,1],[350,0],[350,3],[351,3],[351,1],[351,2],[359,1],[359,3],[360,2],[360,2],[360,2],[360,2],[360,2],[361,0],[361,2],[366,4],[362,6],[363,9],[377,3],[376,0],[376,2],[378,4],[379,4],[364,6],[365,5],[365,5],[372,1],[372,1],[372,3],[372,3],[358,1],[358,3],[384,3],[384,2],[384,1],[387,6],[387,4],[387,1],[387,4],[272,2],[272,1],[388,1],[388,1],[385,0],[385,1],[391,2],[391,1],[393,3],[392,2],[392,5],[392,3],[392,6],[392,1],[392,2],[392,4],[392,2],[392,1],[392,2],[392,1],[392,1],[392,3],[392,5],[33,4],[399,3],[399,1],[398,0],[398,2],[18,6],[18,6],[18,6],[18,8],[18,6],[39,5],[19,4],[19,7],[19,6],[19,9],[30,3],[21,4],[21,6],[21,9],[21,6],[407,0],[407,2],[54,3],[54,2],[31,4],[31,5],[31,5],[22,8],[22,9],[32,3],[43,2],[43,4],[43,3],[43,5],[45,2],[45,4],[45,4],[45,6],[42,4],[42,6],[44,4],[44,6],[41,4],[41,6],[25,11],[25,8],[413,3],[413,3],[413,5],[34,4],[66,2],[57,2],[58,2],[58,2],[58,4],[144,4],[144,2],[144,2],[144,2],[144,2],[144,1],[144,2],[144,2],[422,1],[422,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,1],[423,3],[419,3],[419,4],[419,2],[421,2],[421,3],[421,1],[425,3],[425,1],[428,3],[428,3],[428,3],[427,3],[427,1],[65,4],[65,3],[65,4],[65,5],[65,5],[65,6],[431,1],[431,1],[430,3],[430,2],[432,1],[432,1],[432,3],[429,1],[429,1],[51,2],[52,2],[50,2],[35,4],[35,3],[438,2],[59,3],[60,1],[61,1],[62,3],[63,2],[63,2],[64,2],[64,2],[446,1],[446,1],[69,2],[444,3],[444,1],[445,3],[445,1],[28,2],[449,1],[449,3],[450,3],[450,4],[450,5],[450,6],[46,3],[37,6],[453,1],[453,2],[454,2],[455,2],[456,2],[456,2],[456,1],[456,1],[458,4],[458,6],[461,1],[461,3],[459,5],[459,7],[459,7],[459,9],[459,7],[459,9],[462,3],[462,6],[462,3],[462,6],[457,0],[457,2],[457,5],[457,4],[457,7],[27,6],[469,2],[468,0],[468,2],[468,2],[468,1],[26,8],[23,3],[23,4],[473,3],[473,1],[474,3],[474,7],[474,6],[474,3],[474,4],[478,1],[478,1],[482,2],[483,3],[484,2],[485,4],[475,4],[475,3],[475,2],[475,1],[497,2],[493,2],[493,2],[498,4],[500,6],[67,3],[67,2],[506,3],[506,1],[504,1],[504,4],[68,2],[20,2],[48,9],[48,8],[48,9],[510,0],[510,1],[510,1],[510,1],[510,2],[511,1],[511,1],[511,1],[49,3],[38,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[11,1],[11,1],[80,0],[80,1],[83,0],[83,1],[90,0],[90,2],[91,0],[91,1],[96,0],[96,1],[97,0],[97,1],[101,0],[101,1],[108,0],[108,1],[121,0],[121,1],[125,1],[125,2],[126,1],[126,2],[127,0],[127,1],[155,0],[155,2],[157,0],[157,2],[159,0],[159,2],[160,1],[160,1],[161,0],[161,2],[165,0],[165,2],[167,0],[167,2],[176,0],[176,2],[177,0],[177,2],[178,0],[178,2],[188,0],[188,1],[197,0],[197,1],[210,0],[210,1],[211,0],[211,1],[219,0],[219,1],[220,0],[220,1],[248,0],[248,1],[250,0],[250,1],[251,0],[251,1],[252,0],[252,1],[264,1],[264,1],[767,1],[767,1],[289,0],[289,1],[301,1],[301,1],[337,1],[337,1],[371,0],[371,1],[375,0],[375,1],[382,0],[382,1],[383,0],[383,1],[394,0],[394,1],[395,0],[395,1],[397,1],[397,1],[411,0],[411,1],[412,0],[412,1],[465,0],[465,1],[466,0],[466,1],[467,0],[467,1],[471,0],[471,1],[476,0],[476,1],[477,0],[477,1],[479,0],[479,1],[480,0],[480,1],[481,0],[481,1],[486,0],[486,1],[487,0],[487,1],[488,0],[488,1],[489,0],[489,1],[490,0],[490,1],[491,0],[491,1],[492,0],[492,1],[494,0],[494,1],[495,0],[495,1],[496,0],[496,1],[499,0],[499,2],[501,0],[501,2],[502,0],[502,2],[503,0],[503,2],[512,0],[512,1],[513,0],[513,1]],performAction:function(e,t,r,n,a,s,i){var o=s.length-1;switch(a){case 1:gi.options.casesensitive?this.$=s[o]:this.$=s[o].toLowerCase();break;case 2:this.$=mi(s[o].substr(1,s[o].length-2));break;case 3:this.$=s[o].toLowerCase();break;case 4:this.$=s[o];break;case 5:this.$=s[o]?s[o-1]+" "+s[o]:s[o-1];break;case 6:return new n.Statements({statements:s[o-1]});case 7:this.$=s[o-2],s[o]&&s[o-2].push(s[o]);break;case 8:case 9:case 70:case 80:case 85:case 143:case 177:case 205:case 206:case 242:case 261:case 273:case 354:case 372:case 451:case 474:case 475:case 479:case 487:case 528:case 529:case 566:case 649:case 659:case 683:case 685:case 687:case 701:case 702:case 732:case 756:this.$=[s[o]];break;case 10:case 11:this.$=s[o],s[o].explain=!0;break;case 12:this.$=s[o],n.exists&&(this.$.exists=n.exists),delete n.exists,n.queries&&(this.$.queries=n.queries),delete n.queries;break;case 13:case 162:case 172:case 237:case 238:case 240:case 248:case 250:case 259:case 267:case 270:case 375:case 491:case 501:case 503:case 515:case 521:case 522:case 567:this.$=void 0;break;case 68:this.$=new n.WithSelect({withs:s[o-1],select:s[o]});break;case 69:case 565:s[o-2].push(s[o]),this.$=s[o-2];break;case 71:this.$={name:s[o-4],select:s[o-1]};break;case 72:n.extend(this.$,s[o-9]),n.extend(this.$,s[o-8]),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]),this.$=s[o-9];break;case 73:this.$=new n.Search({selectors:s[o-2],from:s[o]}),n.extend(this.$,s[o-1]);break;case 74:this.$={pivot:{expr:s[o-5],columnid:s[o-3],inlist:s[o-2],as:s[o]}};break;case 75:this.$={unpivot:{tocolumnid:s[o-8],forcolumnid:s[o-6],inlist:s[o-3],as:s[o]}};break;case 76:case 520:case 549:case 585:case 619:case 636:case 637:case 640:case 662:this.$=s[o-1];break;case 77:case 78:case 86:case 147:case 185:case 247:case 280:case 288:case 289:case 290:case 291:case 292:case 293:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:case 304:case 305:case 320:case 321:case 322:case 323:case 324:case 325:case 374:case 440:case 441:case 442:case 443:case 444:case 445:case 516:case 542:case 546:case 548:case 623:case 624:case 625:case 626:case 627:case 628:case 632:case 634:case 635:case 644:case 660:case 661:case 723:case 738:case 739:case 741:case 742:case 748:case 749:this.$=s[o];break;case 79:case 84:case 731:case 755:this.$=s[o-2],this.$.push(s[o]);break;case 81:this.$={expr:s[o]};break;case 82:this.$={expr:s[o-2],as:s[o]};break;case 83:this.$={removecolumns:s[o]};break;case 87:this.$={like:s[o]};break;case 90:case 104:this.$={srchid:"PROP",args:[s[o]]};break;case 91:this.$={srchid:"ORDERBY",args:s[o-1]};break;case 92:var u=s[o-1];u||(u="ASC"),this.$={srchid:"ORDERBY",args:[{expression:new n.Column({columnid:"_"}),direction:u}]};break;case 93:this.$={srchid:"PARENT"};break;case 94:this.$={srchid:"APROP",args:[s[o]]};break;case 95:this.$={selid:"ROOT"};break;case 96:this.$={srchid:"EQ",args:[s[o]]};break;case 97:this.$={srchid:"LIKE",args:[s[o]]};break;case 98:case 99:this.$={selid:"WITH",args:s[o-1]};break;case 100:this.$={srchid:s[o-3].toUpperCase(),args:s[o-1]};break;case 101:this.$={srchid:"WHERE",args:[s[o-1]]};break;case 102:this.$={selid:"OF",args:[s[o-1]]};break;case 103:this.$={srchid:"CLASS",args:[s[o-1]]};break;case 105:this.$={srchid:"NAME",args:[s[o].substr(1,s[o].length-2)]};break;case 106:this.$={srchid:"CHILD"};break;case 107:this.$={srchid:"VERTEX"};break;case 108:this.$={srchid:"EDGE"};break;case 109:this.$={srchid:"REF"};break;case 110:this.$={srchid:"SHARP",args:[s[o]]};break;case 111:this.$={srchid:"ATTR",args:void 0===s[o]?void 0:[s[o]]};break;case 112:this.$={srchid:"ATTR"};break;case 113:this.$={srchid:"OUT"};break;case 114:this.$={srchid:"IN"};break;case 115:this.$={srchid:"OUTOUT"};break;case 116:this.$={srchid:"ININ"};break;case 117:this.$={srchid:"CONTENT"};break;case 118:this.$={srchid:"EX",args:[new n.Json({value:s[o]})]};break;case 119:this.$={srchid:"AT",args:[s[o]]};break;case 120:this.$={srchid:"AS",args:[s[o]]};break;case 121:this.$={srchid:"SET",args:s[o-1]};break;case 122:this.$={selid:"TO",args:[s[o]]};break;case 123:this.$={srchid:"VALUE"};break;case 124:this.$={srchid:"ROW",args:s[o-1]};break;case 125:this.$={srchid:"CLASS",args:[s[o]]};break;case 126:this.$={selid:s[o],args:[s[o-1]]};break;case 127:this.$={selid:"NOT",args:s[o-1]};break;case 128:this.$={selid:"IF",args:s[o-1]};break;case 129:this.$={selid:s[o-3],args:s[o-1]};break;case 130:this.$={selid:"DISTINCT",args:s[o-1]};break;case 131:this.$={selid:"UNION",args:s[o-1]};break;case 132:this.$={selid:"UNIONALL",args:s[o-1]};break;case 133:this.$={selid:"ALL",args:[s[o-1]]};break;case 134:this.$={selid:"ANY",args:[s[o-1]]};break;case 135:this.$={selid:"INTERSECT",args:s[o-1]};break;case 136:this.$={selid:"EXCEPT",args:s[o-1]};break;case 137:this.$={selid:"AND",args:s[o-1]};break;case 138:this.$={selid:"OR",args:s[o-1]};break;case 139:this.$={selid:"PATH",args:[s[o-1]]};break;case 140:this.$={srchid:"RETURN",args:s[o-1]};break;case 141:this.$={selid:"REPEAT",sels:s[o-3],args:s[o-1]};break;case 142:this.$=s[o-2],this.$.push(s[o]);break;case 144:this.$="PLUS";break;case 145:this.$="STAR";break;case 146:this.$="QUESTION";break;case 148:case 149:this.$=new n.Select({columns:s[o],distinct:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 150:this.$=new n.Select({columns:s[o],all:!0}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-1]);break;case 151:s[o]?(this.$=new n.Select({columns:s[o]}),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1])):this.$=new n.Select({columns:[new n.Column({columnid:"_"})],modifier:"COLUMN"});break;case 152:"SELECT"==s[o]?this.$=void 0:this.$={modifier:s[o]};break;case 153:this.$={modifier:"VALUE"};break;case 154:this.$={modifier:"ROW"};break;case 155:this.$={modifier:"COLUMN"};break;case 156:this.$={modifier:"MATRIX"};break;case 157:this.$={modifier:"TEXTSTRING"};break;case 158:this.$={modifier:"INDEX"};break;case 159:this.$={modifier:"RECORDSET"};break;case 160:this.$={top:s[o-1],percent:void 0!==s[o]||void 0};break;case 161:this.$={top:s[o-1]};break;case 163:case 330:case 523:case 524:case 724:this.$=void 0;break;case 164:case 165:case 166:case 167:this.$={into:s[o]};break;case 168:var c=(h=(h=s[o]).substr(1,h.length-2)).substr(-3).toUpperCase(),l=h.substr(-4).toUpperCase();"#"==h[0]?this.$={into:new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}:"XLS"==c||"CSV"==c||"TAB"==c?this.$={into:new n.FuncValue({funcid:c,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}:"XLSX"!=l&&"JSON"!=l||(this.$={into:new n.FuncValue({funcid:l,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})});break;case 169:this.$={from:s[o]};break;case 170:this.$={from:s[o-1],joins:s[o]};break;case 171:this.$={from:s[o-2],joins:s[o-1]};break;case 173:this.$=new n.Apply({select:s[o-2],applymode:"CROSS",as:s[o]});break;case 174:this.$=new n.Apply({select:s[o-3],applymode:"CROSS",as:s[o]});break;case 175:this.$=new n.Apply({select:s[o-2],applymode:"OUTER",as:s[o]});break;case 176:this.$=new n.Apply({select:s[o-3],applymode:"OUTER",as:s[o]});break;case 178:case 243:case 452:case 530:case 531:this.$=s[o-2],s[o-2].push(s[o]);break;case 179:this.$=s[o-2],this.$.as=s[o];break;case 180:this.$=s[o-3],this.$.as=s[o];break;case 181:this.$=s[o-1],this.$.as="default";break;case 182:this.$=new n.Json({value:s[o-2]}),s[o-2].as=s[o];break;case 183:this.$=s[o-1],s[o-1].as=s[o];break;case 184:this.$=s[o-2],s[o-2].as=s[o];break;case 186:case 638:case 641:this.$=s[o-2];break;case 187:case 191:case 195:case 198:this.$=s[o-1],s[o-1].as=s[o];break;case 188:case 192:case 196:case 199:this.$=s[o-2],s[o-2].as=s[o];break;case 189:case 190:case 194:case 197:this.$=s[o],s[o].as="default";break;case 193:this.$={inserted:!0};break;case 200:var h,d;c=(h=(h=s[o]).substr(1,h.length-2)).substr(-3).toUpperCase(),l=h.substr(-4).toUpperCase();if("#"==h[0])d=new n.FuncValue({funcid:"HTML",args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]});else if("XLS"==c||"CSV"==c||"TAB"==c)d=new n.FuncValue({funcid:c,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]});else{if("XLSX"!=l&&"JSON"!=l)throw new Error("Unknown string in FROM clause");d=new n.FuncValue({funcid:l,args:[new n.StringValue({value:h}),new n.Json({value:{headers:!0}})]})}this.$=d;break;case 201:"INFORMATION_SCHEMA"==s[o-2]?this.$=new n.FuncValue({funcid:s[o-2],args:[new n.StringValue({value:s[o]})]}):this.$=new n.Table({databaseid:s[o-2],tableid:s[o]});break;case 202:this.$=new n.Table({tableid:s[o]});break;case 203:case 204:this.$=s[o-1],s[o-1].push(s[o]);break;case 207:this.$=new n.Join(s[o-2]),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 208:this.$={table:s[o]};break;case 209:this.$={table:s[o-1],as:s[o]};break;case 210:this.$={table:s[o-2],as:s[o]};break;case 211:this.$={json:new n.Json({value:s[o-2],as:s[o]})};break;case 212:this.$={param:s[o-1],as:s[o]};break;case 213:this.$={param:s[o-2],as:s[o]};break;case 214:this.$={select:s[o-2],as:s[o]};break;case 215:this.$={select:s[o-3],as:s[o]};break;case 216:this.$={func:s[o],as:"default"};break;case 217:this.$={func:s[o-1],as:s[o]};break;case 218:this.$={func:s[o-2],as:s[o]};break;case 219:this.$={variable:s[o],as:"default"};break;case 220:this.$={variable:s[o-1],as:s[o]};break;case 221:this.$={variable:s[o-2],as:s[o]};break;case 222:this.$={joinmode:s[o]};break;case 223:this.$={joinmode:s[o-1],natural:!0};break;case 224:case 225:this.$="INNER";break;case 226:case 227:this.$="LEFT";break;case 228:case 229:this.$="RIGHT";break;case 230:case 231:this.$="OUTER";break;case 232:this.$="SEMI";break;case 233:this.$="ANTI";break;case 234:this.$="CROSS";break;case 235:this.$={on:s[o]};break;case 236:case 697:this.$={using:s[o]};break;case 239:this.$={where:new n.Expression({expression:s[o]})};break;case 241:this.$={group:s[o-1]},n.extend(this.$,s[o]);break;case 244:this.$=new n.GroupExpression({type:"GROUPING SETS",group:s[o-1]});break;case 245:this.$=new n.GroupExpression({type:"ROLLUP",group:s[o-1]});break;case 246:this.$=new n.GroupExpression({type:"CUBE",group:s[o-1]});break;case 249:this.$={having:s[o]};break;case 251:this.$={union:s[o]};break;case 252:this.$={unionall:s[o]};break;case 253:this.$={except:s[o]};break;case 254:this.$={intersect:s[o]};break;case 255:this.$={union:s[o],corresponding:!0};break;case 256:this.$={unionall:s[o],corresponding:!0};break;case 257:this.$={except:s[o],corresponding:!0};break;case 258:this.$={intersect:s[o],corresponding:!0};break;case 260:this.$={order:s[o]};break;case 262:this.$=s[o-2],s[o-2].push(s[o]);break;case 263:this.$=new n.Expression({expression:s[o],direction:"ASC"});break;case 264:this.$=new n.Expression({expression:s[o-1],direction:s[o].toUpperCase()});break;case 265:this.$=new n.Expression({expression:s[o-2],direction:"ASC",nocase:!0});break;case 266:this.$=new n.Expression({expression:s[o-3],direction:s[o].toUpperCase(),nocase:!0});break;case 268:this.$={limit:s[o-1]},n.extend(this.$,s[o]);break;case 269:this.$={limit:s[o-2],offset:s[o-6]};break;case 271:this.$={offset:s[o]};break;case 272:case 509:case 533:case 648:case 658:case 682:case 684:case 688:s[o-2].push(s[o]),this.$=s[o-2];break;case 274:case 276:case 278:s[o-2].as=s[o],this.$=s[o-2];break;case 275:case 277:case 279:s[o-1].as=s[o],this.$=s[o-1];break;case 281:this.$=new n.Column({columid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 282:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 283:this.$=new n.Column({columnid:s[o]});break;case 284:this.$=new n.Column({columnid:s[o],tableid:s[o-2],databaseid:s[o-4]});break;case 285:case 286:this.$=new n.Column({columnid:s[o],tableid:s[o-2]});break;case 287:this.$=new n.Column({columnid:s[o]});break;case 302:this.$=new n.DomainValueValue;break;case 303:this.$=new n.Json({value:s[o]});break;case 306:case 307:case 308:n.queries||(n.queries=[]),n.queries.push(s[o-1]),s[o-1].queriesidx=n.queries.length,this.$=s[o-1];break;case 309:this.$=s[o];break;case 310:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 311:this.$=new n.JavaScript({value:s[o].substr(2,s[o].length-4)});break;case 312:this.$=new n.JavaScript({value:'alasql.fn["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 313:this.$=new n.JavaScript({value:'alasql.aggr["'+s[o-2]+'"] = '+s[o].substr(2,s[o].length-4)});break;case 314:this.$=new n.FuncValue({funcid:s[o],newid:!0});break;case 315:this.$=s[o],n.extend(this.$,{newid:!0});break;case 316:this.$=new n.Convert({expression:s[o-3]}),n.extend(this.$,s[o-1]);break;case 317:this.$=new n.Convert({expression:s[o-5],style:s[o-1]}),n.extend(this.$,s[o-3]);break;case 318:this.$=new n.Convert({expression:s[o-1]}),n.extend(this.$,s[o-3]);break;case 319:this.$=new n.Convert({expression:s[o-3],style:s[o-1]}),n.extend(this.$,s[o-5]);break;case 326:this.$=new n.FuncValue({funcid:"CURRENT_TIMESTAMP"});break;case 327:1>",right:s[o]});break;case 391:this.$=new n.Op({left:s[o-2],op:"<<",right:s[o]});break;case 392:this.$=new n.Op({left:s[o-2],op:"&",right:s[o]});break;case 393:this.$=new n.Op({left:s[o-2],op:"|",right:s[o]});break;case 394:case 395:case 397:this.$=new n.Op({left:s[o-2],op:"->",right:s[o]});break;case 396:this.$=new n.Op({left:s[o-4],op:"->",right:s[o-1]});break;case 398:case 399:case 401:this.$=new n.Op({left:s[o-2],op:"!",right:s[o]});break;case 400:this.$=new n.Op({left:s[o-4],op:"!",right:s[o-1]});break;case 402:this.$=new n.Op({left:s[o-2],op:">",right:s[o]});break;case 403:this.$=new n.Op({left:s[o-2],op:">=",right:s[o]});break;case 404:this.$=new n.Op({left:s[o-2],op:"<",right:s[o]});break;case 405:this.$=new n.Op({left:s[o-2],op:"<=",right:s[o]});break;case 406:this.$=new n.Op({left:s[o-2],op:"=",right:s[o]});break;case 407:this.$=new n.Op({left:s[o-2],op:"==",right:s[o]});break;case 408:this.$=new n.Op({left:s[o-2],op:"===",right:s[o]});break;case 409:this.$=new n.Op({left:s[o-2],op:"!=",right:s[o]});break;case 410:this.$=new n.Op({left:s[o-2],op:"!==",right:s[o]});break;case 411:this.$=new n.Op({left:s[o-2],op:"!===",right:s[o]});break;case 412:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 413:this.$=new n.Op({left:s[o-5],op:s[o-4],allsome:s[o-3],right:s[o-1]});break;case 414:"BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"BETWEEN",right1:s[o-2].right,right2:s[o]}):"NOT BETWEEN1"==s[o-2].op?"AND"==s[o-2].left.op?this.$=new n.Op({left:s[o-2].left.left,op:"AND",right:new n.Op({left:s[o-2].left.right,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]})}):this.$=new n.Op({left:s[o-2].left,op:"NOT BETWEEN",right1:s[o-2].right,right2:s[o]}):this.$=new n.Op({left:s[o-2],op:"AND",right:s[o]});break;case 415:this.$=new n.Op({left:s[o-2],op:"OR",right:s[o]});break;case 416:this.$=new n.UniOp({op:"NOT",right:s[o]});break;case 417:this.$=new n.UniOp({op:"-",right:s[o]});break;case 418:this.$=new n.UniOp({op:"+",right:s[o]});break;case 419:this.$=new n.UniOp({op:"~",right:s[o]});break;case 420:this.$=new n.UniOp({op:"#",right:s[o]});break;case 421:this.$=new n.UniOp({right:s[o-1]});break;case 422:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 423:n.queries||(n.queries=[]),this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1],queriesidx:n.queries.length}),n.queries.push(s[o-1]);break;case 424:this.$=new n.Op({left:s[o-4],op:"IN",right:s[o-1]});break;case 425:this.$=new n.Op({left:s[o-5],op:"NOT IN",right:s[o-1]});break;case 426:this.$=new n.Op({left:s[o-3],op:"IN",right:[]});break;case 427:this.$=new n.Op({left:s[o-4],op:"NOT IN",right:[]});break;case 428:case 430:this.$=new n.Op({left:s[o-2],op:"IN",right:s[o]});break;case 429:case 431:this.$=new n.Op({left:s[o-3],op:"NOT IN",right:s[o]});break;case 432:this.$=new n.Op({left:s[o-2],op:"BETWEEN1",right:s[o]});break;case 433:this.$=new n.Op({left:s[o-2],op:"NOT BETWEEN1",right:s[o]});break;case 434:this.$=new n.Op({op:"IS",left:s[o-2],right:s[o]});break;case 435:this.$=new n.Op({op:"IS",left:s[o-2],right:new n.UniOp({op:"NOT",right:new n.NullValue({value:void 0})})});break;case 436:this.$=new n.Convert({expression:s[o-2]}),n.extend(this.$,s[o]);break;case 437:case 438:this.$=s[o];break;case 439:this.$=s[o-1];break;case 446:this.$="ALL";break;case 447:this.$="SOME";break;case 448:this.$="ANY";break;case 449:this.$=new n.Update({table:s[o-4],columns:s[o-2],where:s[o]});break;case 450:this.$=new n.Update({table:s[o-2],columns:s[o]});break;case 453:this.$=new n.SetColumn({column:s[o-2],expression:s[o]});break;case 454:this.$=new n.SetColumn({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 455:this.$=new n.Delete({table:s[o-2],where:s[o]});break;case 456:this.$=new n.Delete({table:s[o]});break;case 457:this.$=new n.Insert({into:s[o-2],values:s[o]});break;case 458:this.$=new n.Insert({into:s[o-1],values:s[o]});break;case 459:case 461:this.$=new n.Insert({into:s[o-2],values:s[o],orreplace:!0});break;case 460:case 462:this.$=new n.Insert({into:s[o-1],values:s[o],orreplace:!0});break;case 463:this.$=new n.Insert({into:s[o-2],default:!0});break;case 464:this.$=new n.Insert({into:s[o-5],columns:s[o-3],values:s[o]});break;case 465:this.$=new n.Insert({into:s[o-4],columns:s[o-2],values:s[o]});break;case 466:this.$=new n.Insert({into:s[o-1],select:s[o]});break;case 467:this.$=new n.Insert({into:s[o-1],select:s[o],orreplace:!0});break;case 468:this.$=new n.Insert({into:s[o-4],columns:s[o-2],select:s[o]});break;case 473:this.$=[s[o-1]];break;case 476:this.$=s[o-4],s[o-4].push(s[o-1]);break;case 477:case 478:case 480:case 488:this.$=s[o-2],s[o-2].push(s[o]);break;case 489:this.$=new n.CreateTable({table:s[o-4]}),n.extend(this.$,s[o-7]),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-5]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o]);break;case 490:this.$=new n.CreateTable({table:s[o]}),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,s[o-1]);break;case 492:this.$={class:!0};break;case 502:this.$={temporary:!0};break;case 504:this.$={ifnotexists:!0};break;case 505:this.$={columns:s[o-2],constraints:s[o]};break;case 506:this.$={columns:s[o]};break;case 507:this.$={as:s[o]};break;case 508:case 532:this.$=[s[o]];break;case 510:case 511:case 512:case 513:case 514:s[o].constraintid=s[o-1],this.$=s[o];break;case 517:this.$={type:"CHECK",expression:s[o-1]};break;case 518:this.$={type:"PRIMARY KEY",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 519:this.$={type:"FOREIGN KEY",columns:s[o-5],fktable:s[o-2],fkcolumns:s[o-1]};break;case 525:this.$={type:"UNIQUE",columns:s[o-1],clustered:(s[o-3]+"").toUpperCase()};break;case 534:this.$=new n.ColumnDef({columnid:s[o-2]}),n.extend(this.$,s[o-1]),n.extend(this.$,s[o]);break;case 535:this.$=new n.ColumnDef({columnid:s[o-1]}),n.extend(this.$,s[o]);break;case 536:this.$=new n.ColumnDef({columnid:s[o],dbtypeid:""});break;case 537:this.$={dbtypeid:s[o-5],dbsize:s[o-3],dbprecision:+s[o-1]};break;case 538:this.$={dbtypeid:s[o-3],dbsize:s[o-1]};break;case 539:this.$={dbtypeid:s[o]};break;case 540:this.$={dbtypeid:"ENUM",enumvalues:s[o-1]};break;case 541:this.$=s[o-1],s[o-1].dbtypeid+="["+s[o]+"]";break;case 543:case 750:this.$=+s[o];break;case 545:this.$=void 0;break;case 547:n.extend(s[o-1],s[o]),this.$=s[o-1];break;case 550:this.$={primarykey:!0};break;case 551:case 552:this.$={foreignkey:{table:s[o-1],columnid:s[o]}};break;case 553:this.$={identity:{value:s[o-3],step:s[o-1]}};break;case 554:this.$={identity:{value:1,step:1}};break;case 555:case 557:this.$={default:s[o]};break;case 556:this.$={default:s[o-1]};break;case 558:this.$={null:!0};break;case 559:this.$={notnull:!0};break;case 560:this.$={check:s[o]};break;case 561:this.$={unique:!0};break;case 562:this.$={onupdate:s[o]};break;case 563:this.$={onupdate:s[o-1]};break;case 564:this.$=new n.DropTable({tables:s[o],type:s[o-2]}),n.extend(this.$,s[o-1]);break;case 568:this.$={ifexists:!0};break;case 569:this.$=new n.AlterTable({table:s[o-3],renameto:s[o]});break;case 570:this.$=new n.AlterTable({table:s[o-3],addcolumn:s[o]});break;case 571:this.$=new n.AlterTable({table:s[o-3],modifycolumn:s[o]});break;case 572:this.$=new n.AlterTable({table:s[o-5],renamecolumn:s[o-2],to:s[o]});break;case 573:this.$=new n.AlterTable({table:s[o-3],dropcolumn:s[o]});break;case 574:this.$=new n.AlterTable({table:s[o-2],renameto:s[o]});break;case 575:this.$=new n.AttachDatabase({databaseid:s[o],engineid:s[o-2].toUpperCase()});break;case 576:this.$=new n.AttachDatabase({databaseid:s[o-3],engineid:s[o-5].toUpperCase(),args:s[o-1]});break;case 577:this.$=new n.AttachDatabase({databaseid:s[o-2],engineid:s[o-4].toUpperCase(),as:s[o]});break;case 578:this.$=new n.AttachDatabase({databaseid:s[o-5],engineid:s[o-7].toUpperCase(),as:s[o],args:s[o-3]});break;case 579:this.$=new n.DetachDatabase({databaseid:s[o]});break;case 580:this.$=new n.CreateDatabase({databaseid:s[o]}),n.extend(this.$,s[o]);break;case 581:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),databaseid:s[o-1],as:s[o]}),n.extend(this.$,s[o-2]);break;case 582:this.$=new n.CreateDatabase({engineid:s[o-7].toUpperCase(),databaseid:s[o-4],args:s[o-2],as:s[o]}),n.extend(this.$,s[o-5]);break;case 583:this.$=new n.CreateDatabase({engineid:s[o-4].toUpperCase(),as:s[o],args:[s[o-1]]}),n.extend(this.$,s[o-2]);break;case 584:this.$=void 0;break;case 586:case 587:this.$=new n.UseDatabase({databaseid:s[o]});break;case 588:this.$=new n.DropDatabase({databaseid:s[o]}),n.extend(this.$,s[o-1]);break;case 589:case 590:this.$=new n.DropDatabase({databaseid:s[o],engineid:s[o-3].toUpperCase()}),n.extend(this.$,s[o-1]);break;case 591:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1]});break;case 592:this.$=new n.CreateIndex({indexid:s[o-5],table:s[o-3],columns:s[o-1],unique:!0});break;case 593:this.$=new n.DropIndex({indexid:s[o]});break;case 594:this.$=new n.ShowDatabases;break;case 595:this.$=new n.ShowDatabases({like:s[o]});break;case 596:this.$=new n.ShowDatabases({engineid:s[o-1].toUpperCase()});break;case 597:this.$=new n.ShowDatabases({engineid:s[o-3].toUpperCase(),like:s[o]});break;case 598:this.$=new n.ShowTables;break;case 599:this.$=new n.ShowTables({like:s[o]});break;case 600:this.$=new n.ShowTables({databaseid:s[o]});break;case 601:this.$=new n.ShowTables({like:s[o],databaseid:s[o-2]});break;case 602:this.$=new n.ShowColumns({table:s[o]});break;case 603:this.$=new n.ShowColumns({table:s[o-2],databaseid:s[o]});break;case 604:this.$=new n.ShowIndex({table:s[o]});break;case 605:this.$=new n.ShowIndex({table:s[o-2],databaseid:s[o]});break;case 606:this.$=new n.ShowCreateTable({table:s[o]});break;case 607:this.$=new n.ShowCreateTable({table:s[o-2],databaseid:s[o]});break;case 608:this.$=new n.CreateTable({table:s[o-6],view:!0,select:s[o-1],viewcolumns:s[o-4]}),n.extend(this.$,s[o-9]),n.extend(this.$,s[o-7]);break;case 609:this.$=new n.CreateTable({table:s[o-3],view:!0,select:s[o-1]}),n.extend(this.$,s[o-6]),n.extend(this.$,s[o-4]);break;case 613:this.$=new n.DropTable({tables:s[o],view:!0}),n.extend(this.$,s[o-1]);break;case 614:case 760:this.$=new n.ExpressionStatement({expression:s[o]});break;case 615:this.$=new n.Source({url:s[o].value});break;case 616:this.$=new n.Assert({value:s[o]});break;case 617:this.$=new n.Assert({value:s[o].value});break;case 618:this.$=new n.Assert({value:s[o],message:s[o-2]});break;case 620:case 631:case 633:this.$=s[o].value;break;case 621:case 629:this.$=+s[o].value;break;case 622:this.$=!!s[o].value;break;case 630:this.$=""+s[o].value;break;case 639:this.$={};break;case 642:this.$=[];break;case 643:n.extend(s[o-2],s[o]),this.$=s[o-2];break;case 645:this.$={},this.$[s[o-2].substr(1,s[o-2].length-2)]=s[o];break;case 646:case 647:this.$={},this.$[s[o-2]]=s[o];break;case 650:this.$=new n.SetVariable({variable:s[o-2].toLowerCase(),value:s[o]});break;case 651:this.$=new n.SetVariable({variable:s[o-1].toLowerCase(),value:s[o]});break;case 652:this.$=new n.SetVariable({variable:s[o-2],expression:s[o]});break;case 653:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o]});break;case 654:this.$=new n.SetVariable({variable:s[o-2],expression:s[o],method:s[o-3]});break;case 655:this.$=new n.SetVariable({variable:s[o-3],props:s[o-2],expression:s[o],method:s[o-4]});break;case 656:this.$="@";break;case 657:this.$="$";break;case 663:this.$=!0;break;case 664:this.$=!1;break;case 665:this.$=new n.CommitTransaction;break;case 666:this.$=new n.RollbackTransaction;break;case 667:this.$=new n.BeginTransaction;break;case 668:this.$=new n.If({expression:s[o-2],thenstat:s[o-1],elsestat:s[o]}),s[o-1].exists&&(this.$.exists=s[o-1].exists),s[o-1].queries&&(this.$.queries=s[o-1].queries);break;case 669:this.$=new n.If({expression:s[o-1],thenstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 670:this.$=s[o];break;case 671:this.$=new n.While({expression:s[o-1],loopstat:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 672:this.$=new n.Continue;break;case 673:this.$=new n.Break;break;case 674:this.$=new n.BeginEnd({statements:s[o-1]});break;case 675:this.$=new n.Print({exprs:s[o]});break;case 676:this.$=new n.Print({select:s[o]});break;case 677:this.$=new n.Require({paths:s[o]});break;case 678:this.$=new n.Require({plugins:s[o]});break;case 679:case 680:this.$=s[o].toUpperCase();break;case 681:this.$=new n.Echo({expr:s[o]});break;case 686:this.$=new n.Declare({declares:s[o]});break;case 689:this.$={variable:s[o-1]},n.extend(this.$,s[o]);break;case 690:this.$={variable:s[o-2]},n.extend(this.$,s[o]);break;case 691:this.$={variable:s[o-3],expression:s[o]},n.extend(this.$,s[o-2]);break;case 692:this.$={variable:s[o-4],expression:s[o]},n.extend(this.$,s[o-2]);break;case 693:this.$=new n.TruncateTable({table:s[o]});break;case 694:this.$=new n.Merge,n.extend(this.$,s[o-4]),n.extend(this.$,s[o-3]),n.extend(this.$,s[o-2]),n.extend(this.$,{matches:s[o-1]}),n.extend(this.$,s[o]);break;case 695:case 696:this.$={into:s[o]};break;case 698:this.$={on:s[o]};break;case 703:this.$={matched:!0,action:s[o]};break;case 704:this.$={matched:!0,expr:s[o-2],action:s[o]};break;case 705:this.$={delete:!0};break;case 706:this.$={update:s[o]};break;case 707:case 708:this.$={matched:!1,bytarget:!0,action:s[o]};break;case 709:case 710:this.$={matched:!1,bytarget:!0,expr:s[o-2],action:s[o]};break;case 711:this.$={matched:!1,bysource:!0,action:s[o]};break;case 712:this.$={matched:!1,bysource:!0,expr:s[o-2],action:s[o]};break;case 713:this.$={insert:!0,values:s[o]};break;case 714:this.$={insert:!0,values:s[o],columns:s[o-3]};break;case 715:this.$={insert:!0,defaultvalues:!0};break;case 716:this.$={insert:!0,defaultvalues:!0,columns:s[o-3]};break;case 718:this.$={output:{columns:s[o]}};break;case 719:this.$={output:{columns:s[o-3],intovar:s[o],method:s[o-1]}};break;case 720:this.$={output:{columns:s[o-2],intotable:s[o]}};break;case 721:this.$={output:{columns:s[o-5],intotable:s[o-3],intocolumns:s[o-1]}};break;case 722:this.$=new n.CreateVertex({class:s[o-3],sharp:s[o-2],name:s[o-1]}),n.extend(this.$,s[o]);break;case 725:this.$={sets:s[o]};break;case 726:this.$={content:s[o]};break;case 727:this.$={select:s[o]};break;case 728:this.$=new n.CreateEdge({from:s[o-3],to:s[o-1],name:s[o-5]}),n.extend(this.$,s[o]);break;case 729:this.$=new n.CreateGraph({graph:s[o]});break;case 730:this.$=new n.CreateGraph({from:s[o]});break;case 733:this.$=s[o-2],s[o-1]&&(this.$.json=new n.Json({value:s[o-1]})),s[o]&&(this.$.as=s[o]);break;case 734:this.$={source:s[o-6],target:s[o]},s[o-3]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-2]&&(this.$.as=s[o-2]),n.extend(this.$,s[o-4]);break;case 735:this.$={source:s[o-5],target:s[o]},s[o-2]&&(this.$.json=new n.Json({value:s[o-3]})),s[o-1]&&(this.$.as=s[o-2]);break;case 736:this.$={source:s[o-2],target:s[o]};break;case 740:this.$={vars:s[o],method:s[o-1]};break;case 743:case 744:var b=s[o-1];this.$={prop:s[o-3],sharp:s[o-2],name:void 0===b?void 0:b.substr(1,b.length-2),class:s[o]};break;case 745:var E=s[o-1];this.$={sharp:s[o-2],name:void 0===E?void 0:E.substr(1,E.length-2),class:s[o]};break;case 746:var g=s[o-1];this.$={name:void 0===g?void 0:g.substr(1,g.length-2),class:s[o]};break;case 747:this.$={class:s[o]};break;case 753:this.$=new n.AddRule({left:s[o-2],right:s[o]});break;case 754:this.$=new n.AddRule({right:s[o]});break;case 757:this.$=new n.Term({termid:s[o]});break;case 758:this.$=new n.Term({termid:s[o-3],args:s[o-1]});break;case 761:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-5],action:s[o-4],table:s[o-2],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 762:this.$=new n.CreateTrigger({trigger:s[o-5],when:s[o-4],action:s[o-3],table:s[o-1],funcid:s[o]});break;case 763:this.$=new n.CreateTrigger({trigger:s[o-6],when:s[o-4],action:s[o-3],table:s[o-5],statement:s[o]}),s[o].exists&&(this.$.exists=s[o].exists),s[o].queries&&(this.$.queries=s[o].queries);break;case 764:case 765:case 767:this.$="AFTER";break;case 766:this.$="BEFORE";break;case 768:this.$="INSTEADOF";break;case 769:this.$="INSERT";break;case 770:this.$="DELETE";break;case 771:this.$="UPDATE";break;case 772:this.$=new n.DropTrigger({trigger:s[o]});break;case 773:this.$=new n.Reindex({indexid:s[o]});break;case 1047:case 1067:case 1069:case 1071:case 1075:case 1077:case 1079:case 1081:case 1083:case 1085:this.$=[];break;case 1048:case 1062:case 1064:case 1068:case 1070:case 1072:case 1076:case 1078:case 1080:case 1082:case 1084:case 1086:s[o-1].push(s[o]);break;case 1061:case 1063:this.$=[s[o]]}},table:[e([10,602,764],t,{8:1,9:2,12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,2:r,4:n,5:a,14:s,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{1:[3]},{10:[1,105],11:106,602:j,764:H},e(J,[2,8]),e(J,[2,9]),e(Y,[2,12]),e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:109,2:r,4:n,5:a,15:[1,110],53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,14]),e(Y,[2,15]),e(Y,[2,16]),e(Y,[2,17]),e(Y,[2,18]),e(Y,[2,19]),e(Y,[2,20]),e(Y,[2,21]),e(Y,[2,22]),e(Y,[2,23]),e(Y,[2,24]),e(Y,[2,25]),e(Y,[2,26]),e(Y,[2,27]),e(Y,[2,28]),e(Y,[2,29]),e(Y,[2,30]),e(Y,[2,31]),e(Y,[2,32]),e(Y,[2,33]),e(Y,[2,34]),e(Y,[2,35]),e(Y,[2,36]),e(Y,[2,37]),e(Y,[2,38]),e(Y,[2,39]),e(Y,[2,40]),e(Y,[2,41]),e(Y,[2,42]),e(Y,[2,43]),e(Y,[2,44]),e(Y,[2,45]),e(Y,[2,46]),e(Y,[2,47]),e(Y,[2,48]),e(Y,[2,49]),e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),e(Y,[2,57]),e(Y,[2,58]),e(Y,[2,59]),e(Y,[2,60]),e(Y,[2,61]),e(Y,[2,62]),e(Y,[2,63]),e(Y,[2,64]),e(Y,[2,65]),e(Y,[2,66]),e(Y,[2,67]),{353:[1,111]},{2:r,3:112,4:n,5:a},{2:r,3:114,4:n,5:a,156:W,200:113,290:X,291:K,292:Q,293:z},e(Z,[2,501],{3:121,348:125,2:r,4:n,5:a,134:ee,135:te,187:[1,123],193:[1,122],268:[1,129],269:[1,130],357:[1,131],405:[1,120],472:[1,124],509:[1,128]}),{145:re,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:r,3:138,4:n,5:a,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:145,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(qe,Ge,{340:204,171:[1,205],198:Ve}),e(qe,Ge,{340:207,198:Ve}),{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe,453:208},{2:r,3:221,4:n,5:a},{353:[1,222]},e(Je,[2,1043],{80:223,106:224,107:[1,225]}),e(Ye,[2,1047],{90:226}),{2:r,3:230,4:n,5:a,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:r,3:236,4:n,5:a,73:234,75:235},e([306,602,764],t,{12:3,13:4,17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,9:238,2:r,4:n,5:a,14:s,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,435:[1,237],436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{435:[1,239]},{435:[1,240]},{2:r,3:242,4:n,5:a,405:[1,241]},{2:r,3:244,4:n,5:a,199:243},e(We,[2,311]),{113:245,132:se,296:xe},{2:r,3:114,4:n,5:a,113:251,131:ae,132:[1,248],143:oe,144:246,145:Xe,152:le,156:W,181:pe,196:250,200:255,201:254,257:252,258:253,265:Ke,274:247,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:257,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,672]),e(Y,[2,673]),{2:r,3:168,4:n,5:a,40:259,56:165,77:ne,79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:258,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:266,4:n,5:a,113:263,132:se,296:xe,444:261,445:262,446:264,447:Qe},{2:r,3:267,4:n,5:a,143:ze,145:Ze,431:268},{2:r,3:168,4:n,5:a,56:165,77:ne,94:271,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{505:[1,272]},{2:r,3:100,4:n,5:a,504:274,506:273},{2:r,3:114,4:n,5:a,156:W,200:275,290:X,291:K,292:Q,293:z},{2:r,3:168,4:n,5:a,56:165,77:ne,94:276,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(et,tt,{186:280,164:[1,279],185:[1,277],187:[1,278],195:rt}),e(nt,[2,757],{77:[1,282]}),e([2,4,5,10,72,77,78,93,98,107,118,128,131,132,137,143,145,152,154,156,162,164,168,169,179,180,181,183,185,187,195,198,232,245,247,265,266,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,302,303,306,310,312,317,420,424,602,764],[2,152],{149:[1,283],150:[1,284],190:[1,285],191:[1,286],192:[1,287],193:[1,288],194:[1,289]}),e(at,[2,1]),e(at,[2,2]),{6:290,131:[1,439],172:[1,462],245:[1,411],285:[1,373],286:[1,407],370:[1,404],381:[1,295],402:[1,297],410:[1,549],414:[1,471],416:[1,443],417:[1,509],433:[1,442],435:[1,525],440:[1,342],460:[1,418],464:[1,448],470:[1,341],514:[1,307],515:[1,299],516:[1,399],518:[1,291],519:[1,292],520:[1,293],521:[1,294],522:[1,296],523:[1,298],524:[1,300],525:[1,301],526:[1,302],527:[1,303],528:[1,304],529:[1,305],530:[1,306],531:[1,308],532:[1,309],533:[1,310],534:[1,311],535:[1,312],536:[1,313],537:[1,314],538:[1,315],539:[1,316],540:[1,317],541:[1,318],542:[1,319],543:[1,320],544:[1,321],545:[1,322],546:[1,323],547:[1,324],548:[1,325],549:[1,326],550:[1,327],551:[1,328],552:[1,329],553:[1,330],554:[1,331],555:[1,332],556:[1,333],557:[1,334],558:[1,335],559:[1,336],560:[1,337],561:[1,338],562:[1,339],563:[1,340],564:[1,343],565:[1,344],566:[1,345],567:[1,346],568:[1,347],569:[1,348],570:[1,349],571:[1,350],572:[1,351],573:[1,352],574:[1,353],575:[1,354],576:[1,355],577:[1,356],578:[1,357],579:[1,358],580:[1,359],581:[1,360],582:[1,361],583:[1,362],584:[1,363],585:[1,364],586:[1,365],587:[1,366],588:[1,367],589:[1,368],590:[1,369],591:[1,370],592:[1,371],593:[1,372],594:[1,374],595:[1,375],596:[1,376],597:[1,377],598:[1,378],599:[1,379],600:[1,380],601:[1,381],602:[1,382],603:[1,383],604:[1,384],605:[1,385],606:[1,386],607:[1,387],608:[1,388],609:[1,389],610:[1,390],611:[1,391],612:[1,392],613:[1,393],614:[1,394],615:[1,395],616:[1,396],617:[1,397],618:[1,398],619:[1,400],620:[1,401],621:[1,402],622:[1,403],623:[1,405],624:[1,406],625:[1,408],626:[1,409],627:[1,410],628:[1,412],629:[1,413],630:[1,414],631:[1,415],632:[1,416],633:[1,417],634:[1,419],635:[1,420],636:[1,421],637:[1,422],638:[1,423],639:[1,424],640:[1,425],641:[1,426],642:[1,427],643:[1,428],644:[1,429],645:[1,430],646:[1,431],647:[1,432],648:[1,433],649:[1,434],650:[1,435],651:[1,436],652:[1,437],653:[1,438],654:[1,440],655:[1,441],656:[1,444],657:[1,445],658:[1,446],659:[1,447],660:[1,449],661:[1,450],662:[1,451],663:[1,452],664:[1,453],665:[1,454],666:[1,455],667:[1,456],668:[1,457],669:[1,458],670:[1,459],671:[1,460],672:[1,461],673:[1,463],674:[1,464],675:[1,465],676:[1,466],677:[1,467],678:[1,468],679:[1,469],680:[1,470],681:[1,472],682:[1,473],683:[1,474],684:[1,475],685:[1,476],686:[1,477],687:[1,478],688:[1,479],689:[1,480],690:[1,481],691:[1,482],692:[1,483],693:[1,484],694:[1,485],695:[1,486],696:[1,487],697:[1,488],698:[1,489],699:[1,490],700:[1,491],701:[1,492],702:[1,493],703:[1,494],704:[1,495],705:[1,496],706:[1,497],707:[1,498],708:[1,499],709:[1,500],710:[1,501],711:[1,502],712:[1,503],713:[1,504],714:[1,505],715:[1,506],716:[1,507],717:[1,508],718:[1,510],719:[1,511],720:[1,512],721:[1,513],722:[1,514],723:[1,515],724:[1,516],725:[1,517],726:[1,518],727:[1,519],728:[1,520],729:[1,521],730:[1,522],731:[1,523],732:[1,524],733:[1,526],734:[1,527],735:[1,528],736:[1,529],737:[1,530],738:[1,531],739:[1,532],740:[1,533],741:[1,534],742:[1,535],743:[1,536],744:[1,537],745:[1,538],746:[1,539],747:[1,540],748:[1,541],749:[1,542],750:[1,543],751:[1,544],752:[1,545],753:[1,546],754:[1,547],755:[1,548],756:[1,550],757:[1,551],758:[1,552],759:[1,553],760:[1,554],761:[1,555],762:[1,556],763:[1,557]},{1:[2,6]},e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:558,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(st,[2,1041]),e(st,[2,1042]),e(J,[2,10]),{16:[1,559]},{2:r,3:244,4:n,5:a,199:560},{405:[1,561]},e(Y,[2,760]),{77:it},{77:[1,563]},{77:ot},{77:[1,565]},{77:[1,566]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:567,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(qe,ut,{350:568,156:ct}),{405:[1,570]},{2:r,3:571,4:n,5:a},{193:[1,572]},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,183:[1,574],431:585,473:573,474:575,475:576,478:577,482:582,493:579,497:581},{130:[1,589],349:586,353:[1,588],410:[1,587]},{113:591,132:se,183:[2,1141],296:xe,471:590},e(ft,[2,1135],{465:592,3:593,2:r,4:n,5:a}),{2:r,3:594,4:n,5:a},{4:[1,595]},{4:[1,596]},e(Z,[2,502]),e(Y,[2,686],{74:[1,597]}),e(pt,[2,687]),{2:r,3:598,4:n,5:a},{2:r,3:244,4:n,5:a,199:599},{2:r,3:600,4:n,5:a},e(qe,bt,{398:601,156:Et}),{405:[1,603]},{2:r,3:604,4:n,5:a},e(qe,bt,{398:605,156:Et}),e(qe,bt,{398:606,156:Et}),{2:r,3:607,4:n,5:a},e(gt,[2,1129]),e(gt,[2,1130]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:608,114:625,327:637,2:r,4:n,5:a,53:i,72:o,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:yt,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:l,154:Dt,156:h,170:kt,171:Lt,179:$t,180:Mt,189:d,266:f,267:p,290:b,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(We,[2,288]),e(We,[2,289]),e(We,[2,290]),e(We,[2,291]),e(We,[2,292]),e(We,[2,293]),e(We,[2,294]),e(We,[2,295]),e(We,[2,296]),e(We,[2,297]),e(We,[2,298]),e(We,[2,299]),e(We,[2,300]),e(We,[2,301]),e(We,[2,302]),e(We,[2,303]),e(We,[2,304]),e(We,[2,305]),{2:r,3:168,4:n,5:a,26:654,27:653,36:649,40:648,56:165,77:ne,79:75,89:u,94:651,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,264:650,265:be,266:f,267:[1,655],270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:[1,652],291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,339:m,419:190,420:Fe,424:Pe},e(We,[2,309]),e(We,[2,310]),{77:[1,656]},e([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],tr,{77:it,116:[1,657]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:658,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:659,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:661,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:662,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,283]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,249,265,266,267,270,271,273,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297,298,299,300,302,303,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,415,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764,765,766],[2,356]),e(rr,[2,357]),e(rr,[2,358]),e(rr,nr),e(rr,[2,360]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,361]),{2:r,3:664,4:n,5:a,131:[1,665],301:663},{2:r,3:666,4:n,5:a},e(rr,[2,367]),e(rr,[2,368]),{2:r,3:667,4:n,5:a,77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},{77:[1,674]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:675,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,304:676,307:677,308:sr,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,679]},{77:[1,680]},e(ir,[2,624]),{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,300:[1,683],302:$e,419:190,420:Fe,421:681,422:684,423:686,424:Pe,427:682},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:696,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:697,4:n,5:a,156:W,200:698,290:X,291:K,292:Q,293:z},{77:[2,336]},{77:[2,337]},{77:[2,338]},{77:[2,339]},{77:[2,340]},{77:[2,341]},{77:[2,342]},{77:[2,343]},{77:[2,344]},{2:r,3:704,4:n,5:a,131:ur,132:cr,425:699,426:[1,700],428:701},{2:r,3:244,4:n,5:a,199:705},{290:[1,706]},e(qe,[2,472]),{2:r,3:244,4:n,5:a,199:707},{231:[1,709],454:708},{231:[2,695]},{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:710,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{40:711,79:75,89:u,184:99,189:d},e(lr,[2,1091],{210:712,76:[1,713]}),e(hr,[2,185],{3:714,2:r,4:n,5:a,76:[1,715],154:[1,716]}),e(hr,[2,189],{3:717,2:r,4:n,5:a,76:[1,718]}),e(hr,[2,190],{3:719,2:r,4:n,5:a,76:[1,720]}),e(hr,[2,193]),e(hr,[2,194],{3:721,2:r,4:n,5:a,76:[1,722]}),e(hr,[2,197],{3:723,2:r,4:n,5:a,76:[1,724]}),e([2,4,5,10,72,74,76,78,93,98,118,128,154,162,168,169,183,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],dr,{77:it,116:fr}),e([2,4,5,10,72,74,76,78,93,98,118,128,162,168,169,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,306,310,602,764],[2,200]),e(Y,[2,773]),{2:r,3:244,4:n,5:a,199:726},e(pr,br,{81:727,198:Er}),e(Je,[2,1044]),e(gr,[2,1057],{108:729,190:[1,730]}),e([10,78,183,306,310,602,764],br,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,198:Er,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),{353:[1,782]},{183:[1,783]},e(Y,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},e(Y,[2,598],{112:[1,787],183:[1,788]}),{2:r,3:244,4:n,5:a,199:789},{40:790,74:[1,791],79:75,89:u,184:99,189:d},e(cn,[2,70]),{76:[1,792]},e(Y,[2,667]),{11:106,306:[1,793],602:j,764:H},e(Y,[2,665]),e(Y,[2,666]),{2:r,3:794,4:n,5:a},e(Y,[2,587]),{146:[1,795]},e([2,4,5,10,53,72,74,76,77,78,89,95,124,128,143,145,146,148,149,152,154,156,181,183,187,189,230,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],dr,{116:fr}),e(Y,[2,615]),e(Y,[2,616]),e(Y,[2,617]),e(Y,nr,{74:[1,796]}),{77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},e(ln,[2,320]),e(ln,[2,321]),e(ln,[2,322]),e(ln,[2,323]),e(ln,[2,324]),e(ln,[2,325]),e(ln,[2,326]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,114:625,327:637,12:797,2:r,4:n,5:a,53:i,72:o,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:yt,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:l,154:Dt,156:h,170:kt,171:Lt,179:$t,180:Mt,189:d,266:f,267:p,290:b,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,675],{74:hn}),e(Y,[2,676]),e(dn,[2,354],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,677],{74:[1,800]}),e(Y,[2,678],{74:[1,801]}),e(pt,[2,683]),e(pt,[2,685]),e(pt,[2,679]),e(pt,[2,680]),{114:807,115:St,116:Tt,124:[1,802],230:pn,429:803,430:804,433:bn},{2:r,3:808,4:n,5:a},e(qe,[2,656]),e(qe,[2,657]),e(Y,[2,614],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:100,4:n,5:a,504:274,506:809},e(Y,[2,754],{74:En}),e(gn,[2,756]),e(Y,[2,759]),e(Y,[2,681],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(mn,tt,{186:811,195:rt}),e(mn,tt,{186:812,195:rt}),e(mn,tt,{186:813,195:rt}),e(vn,[2,1087],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,188:814,174:815,253:816,94:817,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{77:[1,819],131:ae,196:818},{2:r,3:100,4:n,5:a,504:274,506:820},e(Sn,[2,153]),e(Sn,[2,154]),e(Sn,[2,155]),e(Sn,[2,156]),e(Sn,[2,157]),e(Sn,[2,158]),e(Sn,[2,159]),e(at,[2,3]),e(at,[2,774]),e(at,[2,775]),e(at,[2,776]),e(at,[2,777]),e(at,[2,778]),e(at,[2,779]),e(at,[2,780]),e(at,[2,781]),e(at,[2,782]),e(at,[2,783]),e(at,[2,784]),e(at,[2,785]),e(at,[2,786]),e(at,[2,787]),e(at,[2,788]),e(at,[2,789]),e(at,[2,790]),e(at,[2,791]),e(at,[2,792]),e(at,[2,793]),e(at,[2,794]),e(at,[2,795]),e(at,[2,796]),e(at,[2,797]),e(at,[2,798]),e(at,[2,799]),e(at,[2,800]),e(at,[2,801]),e(at,[2,802]),e(at,[2,803]),e(at,[2,804]),e(at,[2,805]),e(at,[2,806]),e(at,[2,807]),e(at,[2,808]),e(at,[2,809]),e(at,[2,810]),e(at,[2,811]),e(at,[2,812]),e(at,[2,813]),e(at,[2,814]),e(at,[2,815]),e(at,[2,816]),e(at,[2,817]),e(at,[2,818]),e(at,[2,819]),e(at,[2,820]),e(at,[2,821]),e(at,[2,822]),e(at,[2,823]),e(at,[2,824]),e(at,[2,825]),e(at,[2,826]),e(at,[2,827]),e(at,[2,828]),e(at,[2,829]),e(at,[2,830]),e(at,[2,831]),e(at,[2,832]),e(at,[2,833]),e(at,[2,834]),e(at,[2,835]),e(at,[2,836]),e(at,[2,837]),e(at,[2,838]),e(at,[2,839]),e(at,[2,840]),e(at,[2,841]),e(at,[2,842]),e(at,[2,843]),e(at,[2,844]),e(at,[2,845]),e(at,[2,846]),e(at,[2,847]),e(at,[2,848]),e(at,[2,849]),e(at,[2,850]),e(at,[2,851]),e(at,[2,852]),e(at,[2,853]),e(at,[2,854]),e(at,[2,855]),e(at,[2,856]),e(at,[2,857]),e(at,[2,858]),e(at,[2,859]),e(at,[2,860]),e(at,[2,861]),e(at,[2,862]),e(at,[2,863]),e(at,[2,864]),e(at,[2,865]),e(at,[2,866]),e(at,[2,867]),e(at,[2,868]),e(at,[2,869]),e(at,[2,870]),e(at,[2,871]),e(at,[2,872]),e(at,[2,873]),e(at,[2,874]),e(at,[2,875]),e(at,[2,876]),e(at,[2,877]),e(at,[2,878]),e(at,[2,879]),e(at,[2,880]),e(at,[2,881]),e(at,[2,882]),e(at,[2,883]),e(at,[2,884]),e(at,[2,885]),e(at,[2,886]),e(at,[2,887]),e(at,[2,888]),e(at,[2,889]),e(at,[2,890]),e(at,[2,891]),e(at,[2,892]),e(at,[2,893]),e(at,[2,894]),e(at,[2,895]),e(at,[2,896]),e(at,[2,897]),e(at,[2,898]),e(at,[2,899]),e(at,[2,900]),e(at,[2,901]),e(at,[2,902]),e(at,[2,903]),e(at,[2,904]),e(at,[2,905]),e(at,[2,906]),e(at,[2,907]),e(at,[2,908]),e(at,[2,909]),e(at,[2,910]),e(at,[2,911]),e(at,[2,912]),e(at,[2,913]),e(at,[2,914]),e(at,[2,915]),e(at,[2,916]),e(at,[2,917]),e(at,[2,918]),e(at,[2,919]),e(at,[2,920]),e(at,[2,921]),e(at,[2,922]),e(at,[2,923]),e(at,[2,924]),e(at,[2,925]),e(at,[2,926]),e(at,[2,927]),e(at,[2,928]),e(at,[2,929]),e(at,[2,930]),e(at,[2,931]),e(at,[2,932]),e(at,[2,933]),e(at,[2,934]),e(at,[2,935]),e(at,[2,936]),e(at,[2,937]),e(at,[2,938]),e(at,[2,939]),e(at,[2,940]),e(at,[2,941]),e(at,[2,942]),e(at,[2,943]),e(at,[2,944]),e(at,[2,945]),e(at,[2,946]),e(at,[2,947]),e(at,[2,948]),e(at,[2,949]),e(at,[2,950]),e(at,[2,951]),e(at,[2,952]),e(at,[2,953]),e(at,[2,954]),e(at,[2,955]),e(at,[2,956]),e(at,[2,957]),e(at,[2,958]),e(at,[2,959]),e(at,[2,960]),e(at,[2,961]),e(at,[2,962]),e(at,[2,963]),e(at,[2,964]),e(at,[2,965]),e(at,[2,966]),e(at,[2,967]),e(at,[2,968]),e(at,[2,969]),e(at,[2,970]),e(at,[2,971]),e(at,[2,972]),e(at,[2,973]),e(at,[2,974]),e(at,[2,975]),e(at,[2,976]),e(at,[2,977]),e(at,[2,978]),e(at,[2,979]),e(at,[2,980]),e(at,[2,981]),e(at,[2,982]),e(at,[2,983]),e(at,[2,984]),e(at,[2,985]),e(at,[2,986]),e(at,[2,987]),e(at,[2,988]),e(at,[2,989]),e(at,[2,990]),e(at,[2,991]),e(at,[2,992]),e(at,[2,993]),e(at,[2,994]),e(at,[2,995]),e(at,[2,996]),e(at,[2,997]),e(at,[2,998]),e(at,[2,999]),e(at,[2,1e3]),e(at,[2,1001]),e(at,[2,1002]),e(at,[2,1003]),e(at,[2,1004]),e(at,[2,1005]),e(at,[2,1006]),e(at,[2,1007]),e(at,[2,1008]),e(at,[2,1009]),e(at,[2,1010]),e(at,[2,1011]),e(at,[2,1012]),e(at,[2,1013]),e(at,[2,1014]),e(at,[2,1015]),e(at,[2,1016]),e(at,[2,1017]),e(at,[2,1018]),e(at,[2,1019]),e(at,[2,1020]),e(at,[2,1021]),e(at,[2,1022]),e(at,[2,1023]),e(at,[2,1024]),e(at,[2,1025]),e(at,[2,1026]),e(at,[2,1027]),e(at,[2,1028]),e(at,[2,1029]),e(at,[2,1030]),e(at,[2,1031]),e(at,[2,1032]),e(at,[2,1033]),e(at,[2,1034]),e(at,[2,1035]),e(at,[2,1036]),e(at,[2,1037]),e(at,[2,1038]),e(at,[2,1039]),e(at,[2,1040]),e(J,[2,7]),e(J,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:821,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:r,3:826,4:n,5:a},e(mn,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:832,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:833,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:834,4:n,5:a,132:[1,835]},{2:r,3:836,4:n,5:a,132:[1,837]},{2:r,3:838,4:n,5:a,99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:839,4:n,5:a},{154:[1,840]},e(Tn,ut,{350:841,156:ct}),{230:[1,842]},{2:r,3:843,4:n,5:a},e(Y,[2,729],{74:An}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:845,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(gn,[2,732]),e(yn,[2,1143],{419:190,476:846,144:847,139:Nn,141:Nn,145:Xe,420:Fe,424:Pe}),{139:[1,848],141:[1,849]},e(Cn,Rn,{490:851,493:852,77:[1,850],137:ht}),e(On,[2,1167],{494:853,132:[1,854]}),e(wn,[2,1171],{496:855,497:856,152:dt}),e(wn,[2,747]),e(In,[2,739]),{2:r,3:857,4:n,5:a,131:[1,858]},{2:r,3:859,4:n,5:a},{2:r,3:860,4:n,5:a},e(qe,ut,{350:861,156:ct}),e(qe,ut,{350:862,156:ct}),e(gt,[2,491]),e(gt,[2,492]),{183:[1,863]},{183:[2,1142]},e(xn,[2,1137],{466:864,469:865,137:[1,866]}),e(ft,[2,1136]),e(Dn,kn,{510:867,95:Ln,230:[1,868],514:$n,515:Mn,516:Un}),{76:[1,873]},{76:[1,874]},{145:re,450:875},{4:_n,7:879,76:[1,877],272:876,387:878,389:Fn},e(Y,[2,456],{128:[1,882]}),e(Y,[2,579]),{2:r,3:883,4:n,5:a},{298:[1,884]},e(Tn,bt,{398:885,156:Et}),e(Y,[2,593]),{2:r,3:244,4:n,5:a,199:887,399:886},{2:r,3:244,4:n,5:a,199:887,399:888},e(Y,[2,772]),e(J,[2,669],{438:889,310:[1,890]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:891,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:892,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:893,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:894,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:895,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:896,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:897,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:898,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:899,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:900,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:901,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:902,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:903,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:904,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:905,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:906,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:907,4:n,5:a,77:[1,909],131:ae,156:W,196:908,200:910,290:X,291:K,292:Q,293:z},{2:r,3:911,4:n,5:a,77:[1,913],131:ae,156:W,196:912,200:914,290:X,291:K,292:Q,293:z},e(Pn,[2,440],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:915,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,441],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:916,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,442],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:917,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,[2,443],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:918,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),e(Pn,qn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:919,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:920,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:921,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Pn,[2,445],{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:922,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:923,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:924,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:929,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:930,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:695,4:n,5:a,77:[1,931],111:934,145:Gn,156:W,200:935,202:933,290:X,291:K,292:Q,293:z,329:932},{99:[1,937],297:[1,938]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:939,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:940,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:941,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:942,387:878,389:Fn},e(Vn,[2,88]),e(Vn,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(qe,Ge,{340:207,77:ot,198:Ve}),{78:[2,1107]},{78:[2,1108]},{134:ee,135:te},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:947,152:le,154:he,156:W,158:167,164:[1,949],179:de,180:fe,181:pe,185:[1,948],196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:950,4:n,5:a,149:Bn,180:[1,952]},e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,416],{114:625,327:637,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e(jn,[2,417],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(jn,[2,418],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(Hn,[2,419],{114:625,327:637,316:qt}),e(Hn,[2,420],{114:625,327:637,316:qt}),e(rr,[2,365]),e(rr,[2,1113]),e(rr,[2,1114]),e(rr,[2,366]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,231,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,362]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:953,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ir,[2,620]),e(ir,[2,621]),e(ir,[2,622]),e(ir,[2,623]),e(ir,[2,625]),{40:954,79:75,89:u,184:99,189:d},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,304:955,307:677,308:sr,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{305:956,306:Jn,307:957,308:sr,310:Yn},e(Wn,[2,372]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:959,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:960,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:961,387:878,389:Fn},e(ir,[2,626]),{74:[1,963],300:[1,962]},e(ir,[2,642]),e(Xn,[2,649]),e(Kn,[2,627]),e(Kn,[2,628]),e(Kn,[2,629]),e(Kn,[2,630]),e(Kn,[2,631]),e(Kn,[2,632]),e(Kn,[2,633]),e(Kn,[2,634]),e(Kn,[2,635]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:964,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e([2,4,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,426,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],tr,{77:it,116:Qn}),{74:hn,300:[1,966]},e(zn,[2,314],{77:it}),e(We,[2,315]),{74:[1,968],426:[1,967]},e(ir,[2,639]),e(Zn,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:972,342:973,343:[1,974],344:ta,419:190,420:Fe,424:Pe},e(qe,Ge,{340:981,198:Ve}),{77:ra,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,201:980,302:$e,341:982,342:983,344:ta,419:190,420:Fe,424:Pe},{230:[1,986],455:985},{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:987,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{231:[2,696]},{78:[1,988]},e(hr,[2,1093],{211:989,3:990,2:r,4:n,5:a}),e(lr,[2,1092]),e(hr,[2,183]),{2:r,3:991,4:n,5:a},{212:[1,992]},e(hr,[2,187]),{2:r,3:993,4:n,5:a},e(hr,[2,191]),{2:r,3:994,4:n,5:a},e(hr,[2,195]),{2:r,3:995,4:n,5:a},e(hr,[2,198]),{2:r,3:996,4:n,5:a},{2:r,3:997,4:n,5:a},{148:[1,998]},e(na,[2,172],{82:999,183:[1,1e3]}),{2:r,3:219,4:n,5:a,132:[1,1005],143:oe,145:[1,1006],152:le,156:W,181:pe,199:1001,200:1002,201:1003,202:1004,290:X,291:K,292:Q,293:z,302:$e},{2:r,3:1011,4:n,5:a,109:1007,110:1008,111:1009,112:aa},e(gr,[2,1058]),e(sa,[2,1049],{91:1012,182:1013,183:[1,1014]}),e(Ye,[2,1048],{153:1015,179:ia,180:oa,181:ua}),e([2,4,5,10,72,74,76,78,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,90],{77:[1,1019]}),{119:[1,1020]},e(ca,[2,93]),{2:r,3:1021,4:n,5:a},e(ca,[2,95]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1022,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1023,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1025,118:Ar,122:yr,123:Nr,124:Cr,125:1024,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},e(ca,[2,104]),e(ca,[2,105]),e(ca,[2,106]),e(ca,[2,107]),e(ca,[2,108]),e(ca,[2,109]),{2:r,3:1030,4:n,5:a},{2:r,3:1031,4:n,5:a,133:[1,1032]},e(ca,[2,113]),e(ca,[2,114]),e(ca,[2,115]),e(ca,[2,116]),e(ca,[2,117]),e(ca,[2,118]),{2:r,3:1033,4:n,5:a,77:ar,113:669,131:ae,132:se,143:oe,152:le,181:pe,196:670,201:672,257:671,294:we,295:Ie,296:xe,302:$e,419:673,424:Pe},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},e(ca,[2,123]),{77:[1,1037]},{2:r,3:1038,4:n,5:a},{77:[1,1039]},{77:[1,1040]},{77:[1,1041]},{77:[1,1042]},{77:[1,1043],164:[1,1044]},{77:[1,1045]},{77:[1,1046]},{77:[1,1047]},{77:[1,1048]},{77:[1,1049]},{77:[1,1050]},{77:[1,1051]},{77:[1,1052]},{77:[1,1053]},{77:[2,1073]},{77:[2,1074]},{2:r,3:244,4:n,5:a,199:1054},{2:r,3:244,4:n,5:a,199:1055},{113:1056,132:se,296:xe},e(Y,[2,596],{112:[1,1057]}),{2:r,3:244,4:n,5:a,199:1058},{113:1059,132:se,296:xe},{2:r,3:1060,4:n,5:a},e(Y,[2,693]),e(Y,[2,68]),{2:r,3:236,4:n,5:a,75:1061},{77:[1,1062]},e(Y,[2,674]),e(Y,[2,586]),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1063,336:1064,337:1066},{144:1069,145:Xe,419:190,420:Fe,424:Pe},e(Y,[2,671]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1070,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Pn,qn,{255:146,200:147,256:148,111:149,254:150,196:151,257:152,113:153,258:154,201:155,202:156,259:157,260:158,261:159,144:161,262:162,263:163,56:165,158:167,3:168,419:190,94:1071,2:r,4:n,5:a,77:ne,131:ae,132:se,137:ie,143:oe,145:ue,149:ce,152:le,154:he,156:W,179:de,180:fe,181:pe,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,420:Fe,424:Pe}),{113:1072,132:se,296:xe},{2:r,3:266,4:n,5:a,446:1073,447:Qe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1075,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,230:pn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe,429:1074,433:bn},e(Y,[2,651]),{114:1077,115:St,116:Tt,124:[1,1076]},e(Y,[2,663]),e(Y,[2,664]),{2:r,3:1079,4:n,5:a,77:da,131:fa,432:1078},{114:807,115:St,116:Tt,124:[1,1082],430:1083},e(Y,[2,753],{74:En}),{2:r,3:100,4:n,5:a,504:1084},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1085,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1086,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1087,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(vn,[2,151]),e(vn,[2,1088],{74:pa}),e(ba,[2,273]),e(ba,[2,280],{114:625,327:637,3:1090,113:1092,2:r,4:n,5:a,76:[1,1089],99:mt,112:vt,115:St,116:Tt,123:At,124:fn,131:[1,1091],132:se,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,296:xe,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(et,[2,1089],{197:1093,765:[1,1094]}),{131:ae,196:1095},{74:En,78:[1,1096]},e(J,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},e(Y,[2,575],{76:[1,1103],77:[1,1102]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1104,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(rr,[2,346]),e(mn,[2,1112]),e(mn,[2,1109]),e(mn,[2,1110]),{74:hn,78:[1,1105]},{74:hn,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},e(rr,[2,353]),e(Y,[2,580]),{298:[1,1111]},{2:r,3:1112,4:n,5:a,113:1113,132:se,296:xe},{2:r,3:244,4:n,5:a,199:1114},{230:[1,1115]},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},e(Y,[2,730],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(gn,[2,1145],{477:1117,483:1118,76:Ea}),e(yn,[2,1144]),{2:r,3:1122,4:n,5:a,132:lt,137:ht,144:1121,145:Xe,152:dt,419:190,420:Fe,424:Pe,475:1120,493:579,497:581},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:r,3:578,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},e(On,[2,1163],{491:1126,132:[1,1127]}),e(Cn,[2,1162]),e(wn,[2,1169],{495:1128,497:1129,152:dt}),e(On,[2,1168]),e(wn,[2,746]),e(wn,[2,1172]),e(Cn,[2,749]),e(Cn,[2,750]),e(wn,[2,748]),e(In,[2,740]),{2:r,3:244,4:n,5:a,199:1130},{2:r,3:244,4:n,5:a,199:1131},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1132,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ga,[2,1139],{467:1133,113:1134,132:se,296:xe}),e(xn,[2,1138]),{2:r,3:1135,4:n,5:a},{335:ma,338:va,339:Sa,511:1136},{2:r,3:244,4:n,5:a,199:1140},e(Dn,[2,765]),e(Dn,[2,766]),e(Dn,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},e(pt,[2,688]),e(pt,[2,689],{124:[1,1144]}),{4:_n,7:879,272:1145,387:878,389:Fn},e([2,4,10,53,72,74,76,77,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,542],{5:[1,1146]}),e([2,5,10,53,72,74,76,78,89,93,95,98,99,107,112,115,116,118,122,123,124,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,230,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,297,300,306,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,343,356,368,369,373,374,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,539],{4:[1,1148],77:[1,1147]}),{77:[1,1149]},e(Ta,[2,4]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1150,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,588]),e(Tn,[2,568]),{2:r,3:1151,4:n,5:a,113:1152,132:se,296:xe},e(Y,[2,564],{74:Aa}),e(pt,[2,566]),e(Y,[2,613],{74:Aa}),e(Y,[2,668]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1154,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(ya,[2,376],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(Hn,[2,377],{114:625,327:637,316:qt}),e(ya,[2,378],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(Na,[2,379],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,314:[1,1155],316:qt,317:Gt,318:Vt,319:Bt}),e(Na,[2,381],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,314:[1,1156],316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,383],{114:625,327:637}),e(jn,[2,384],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(jn,[2,385],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,180:Mt,312:_t,316:qt}),e(Ca,[2,386],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e(Ca,[2,387],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e(Ca,[2,388],{114:625,327:637,115:St,116:Tt,123:At,136:Ct,312:_t,316:qt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,112,118,122,123,124,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,179,180,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,311,313,314,315,317,318,319,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,389],{114:625,327:637,115:St,116:Tt,136:Ct,312:_t,316:qt}),e(Ra,[2,390],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,391],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,392],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(Ra,[2,393],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,179:$t,180:Mt,312:_t,316:qt,317:Gt}),e(zn,[2,394],{77:it}),e(We,[2,395]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1157,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,397]),e(zn,[2,398],{77:it}),e(We,[2,399]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1158,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,401]),e(Oa,[2,402],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,403],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,404],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,405],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e([2,4,5,10,53,72,89,99,124,139,140,146,154,156,170,171,189,266,267,290,306,310,320,321,322,323,324,325,326,330,331,333,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],wa,{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,407],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,408],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,409],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,410],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(Oa,[2,411],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},e(Ia,[2,414],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,107,118,122,128,129,130,131,132,134,135,137,143,145,146,148,149,150,152,156,162,164,166,168,169,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,415],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt}),{2:r,3:168,4:n,5:a,40:1160,56:165,77:ne,78:[1,1162],79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1161,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,428]),e(We,[2,430]),e(We,[2,437]),e(We,[2,438]),{2:r,3:667,4:n,5:a,77:[1,1163]},{2:r,3:695,4:n,5:a,77:[1,1164],111:934,145:Gn,156:W,200:935,202:1166,290:X,291:K,292:Q,293:z,329:1165},e(We,[2,435]),e(Ia,[2,432],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e(Ia,[2,433],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,332:Zt}),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,99,107,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,189,198,206,208,222,223,224,225,226,227,228,229,232,239,242,243,245,247,266,267,280,281,282,283,284,285,286,287,288,290,296,300,306,308,309,310,314,320,321,322,323,324,325,326,330,331,332,333,335,338,339,396,400,401,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,464,470,505,507,508,517,602,764],[2,434],{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,436]),e(We,[2,306]),e(We,[2,307]),e(We,[2,308]),e(We,[2,421]),{74:hn,78:[1,1167]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1168,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1169,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,xa),e(Da,[2,286]),e(We,[2,282]),{78:[1,1171],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1172]},{305:1173,306:Jn,307:957,308:sr,310:Yn},{306:[1,1174]},e(Wn,[2,371]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1175,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1176],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{76:[1,1177],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1178]},e(ir,[2,640]),{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,300:[1,1179],302:$e,419:190,420:Fe,422:1180,423:686,424:Pe},{78:[1,1181],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1182,4:n,5:a,149:Bn},e(We,[2,364]),e(ir,[2,637]),{2:r,3:704,4:n,5:a,131:ur,132:cr,426:[1,1183],428:1184},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1185,423:686,424:Pe},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1186,423:686,424:Pe},{2:r,3:695,4:n,5:a,77:or,111:690,113:688,131:ae,132:se,143:oe,144:685,145:Xe,152:le,156:W,181:pe,196:687,200:693,201:692,257:689,258:691,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e,419:190,420:Fe,422:1187,423:686,424:Pe},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1188,419:190,420:Fe,424:Pe},e(ka,[2,458],{74:La}),{149:ea,341:1190,344:ta},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,100:1191,111:1193,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1192,419:190,420:Fe,424:Pe},e(ka,[2,466]),e($a,[2,469]),e($a,[2,470]),e(Ma,[2,474]),e(Ma,[2,475]),{2:r,3:244,4:n,5:a,199:1195},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1196,419:190,420:Fe,424:Pe},e(ka,[2,462],{74:La}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1192,419:190,420:Fe,424:Pe},{308:Ua,456:1197,458:1198,459:1199},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1201,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{230:[2,697]},e(hr,[2,181],{3:1202,2:r,4:n,5:a,76:[1,1203]}),e(hr,[2,182]),e(hr,[2,1094]),e(hr,[2,184]),e(hr,[2,186]),e(hr,[2,188]),e(hr,[2,192]),e(hr,[2,196]),e(hr,[2,199]),e([2,4,5,10,53,72,74,76,77,78,89,93,95,98,118,124,128,143,145,146,148,149,152,154,156,162,168,169,181,183,187,189,206,208,222,223,224,225,226,227,228,229,230,231,232,245,247,266,267,290,297,302,306,310,335,338,339,343,344,356,368,369,373,374,396,400,401,402,403,404,406,408,409,417,418,420,424,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,514,515,516,517,602,764],[2,201]),{2:r,3:1204,4:n,5:a},e(_a,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:r,3:219,4:n,5:a,77:[1,1210],132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,203:1209,209:1211,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(pr,[2,164]),e(pr,[2,165]),e(pr,[2,166]),e(pr,[2,167]),e(pr,[2,168]),{2:r,3:667,4:n,5:a},e(Je,[2,83],{74:[1,1212]}),e(Fa,[2,85]),e(Fa,[2,86]),{113:1213,132:se,296:xe},e([10,72,74,78,93,98,118,124,128,162,168,169,183,198,206,208,222,223,224,225,226,227,228,229,232,245,247,306,310,602,764],tr,{116:Qn}),e(sa,[2,73]),e(sa,[2,1050]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1214,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,126]),e(ca,[2,144]),e(ca,[2,145]),e(ca,[2,146]),{2:r,3:168,4:n,5:a,56:165,77:ne,78:[2,1065],94:260,111:149,113:153,127:1215,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1216,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1217]},e(ca,[2,94]),e([2,4,5,10,72,74,76,77,78,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,96],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e([2,4,5,10,72,74,76,77,78,112,118,122,124,128,129,130,131,132,134,135,137,139,140,143,145,146,148,149,150,152,154,156,162,164,166,168,169,170,171,172,173,175,181,183,185,187,198,280,281,282,283,284,285,286,287,288,306,310,420,424,602,764],[2,97],{114:625,327:637,99:mt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1218],112:Tr,114:736,115:St,116:Tt,117:1219,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},e(Pa,[2,1061],{153:1015,179:ia,180:oa,181:ua}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1221,118:Ar,122:yr,123:Nr,124:Cr,126:1220,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1222,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1223,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1224,4:n,5:a},e(ca,[2,110]),e(ca,[2,111]),e(ca,[2,112]),e(ca,[2,119]),{2:r,3:1225,4:n,5:a},{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1226,336:1064,337:1066},{2:r,3:1227,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1228,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,125]),e(Pa,[2,1067],{155:1229}),e(Pa,[2,1069],{157:1230}),e(Pa,[2,1071],{159:1231}),e(Pa,[2,1075],{161:1232}),e(qa,Ga,{163:1233,178:1234}),{77:[1,1235]},e(Pa,[2,1077],{165:1236}),e(Pa,[2,1079],{167:1237}),e(qa,Ga,{178:1234,163:1238}),e(qa,Ga,{178:1234,163:1239}),e(qa,Ga,{178:1234,163:1240}),e(qa,Ga,{178:1234,163:1241}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1242,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1243,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Va,[2,1081],{176:1244}),e(Y,[2,606],{183:[1,1245]}),e(Y,[2,602],{183:[1,1246]}),e(Y,[2,595]),{113:1247,132:se,296:xe},e(Y,[2,604],{183:[1,1248]}),e(Y,[2,599]),e(Y,[2,600],{112:[1,1249]}),e(cn,[2,69]),{40:1250,79:75,89:u,184:99,189:d},e(Y,[2,450],{74:Ba,128:[1,1251]}),e(ja,[2,451]),{124:[1,1253]},{2:r,3:1254,4:n,5:a},e(qe,[2,1115]),e(qe,[2,1116]),e(Y,[2,618]),e(dn,[2,355],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Oa,wa,{114:625,327:637,112:vt,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,332:Zt}),e(pt,[2,682]),e(pt,[2,684]),e(Y,[2,650]),e(Y,[2,652],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1255,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1079,4:n,5:a,77:da,131:fa,432:1256},e(Ha,[2,659]),e(Ha,[2,660]),e(Ha,[2,661]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1257,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1258,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{114:1077,115:St,116:Tt,124:[1,1259]},e(gn,[2,755]),e(vn,[2,148],{74:pa}),e(vn,[2,149],{74:pa}),e(vn,[2,150],{74:pa}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:1260,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1261,4:n,5:a,113:1263,131:[1,1262],132:se,296:xe},e(ba,[2,275]),e(ba,[2,277]),e(ba,[2,279]),e(et,[2,160]),e(et,[2,1090]),{78:[1,1264]},e(nt,[2,758]),{2:r,3:1265,4:n,5:a},{2:r,3:1266,4:n,5:a},{2:r,3:1268,4:n,5:a,384:1267},{2:r,3:1268,4:n,5:a,384:1269},{2:r,3:1270,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1271,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1272,4:n,5:a},{74:hn,78:[1,1273]},e(rr,[2,347]),e(rr,[2,348]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1274,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1275,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1276,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1277,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Tn,[2,504]),e(Y,Ja,{407:1278,76:Ya,77:[1,1279]}),e(Y,Ja,{407:1281,76:Ya}),{77:[1,1282]},{2:r,3:244,4:n,5:a,199:1283},e(gn,[2,731]),e(gn,[2,733]),e(gn,[2,1146]),{143:ze,145:Ze,431:1284},e(Wa,[2,1147],{419:190,479:1285,144:1286,145:Xe,420:Fe,424:Pe}),{76:Ea,139:[2,1151],481:1287,483:1288},e([10,74,76,78,132,139,145,152,306,310,420,424,602,764],Rn,{490:851,493:852,137:ht}),e(gn,[2,736]),e(gn,Nn),{74:An,78:[1,1289]},e(wn,[2,1165],{492:1290,497:1291,152:dt}),e(On,[2,1164]),e(wn,[2,745]),e(wn,[2,1170]),e(Y,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,148:[1,1295],154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ka,Xa,{79:75,184:99,468:1296,40:1299,89:u,146:Ka,189:d,470:Qa}),e(ga,[2,1140]),e(xn,[2,723]),{230:[1,1300]},e(za,[2,769]),e(za,[2,770]),e(za,[2,771]),e(Dn,kn,{510:1301,95:Ln,514:$n,515:Mn,516:Un}),e(Dn,[2,768]),e(Y,[2,312]),e(Y,[2,313]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1302,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(pt,[2,690],{124:[1,1303]}),e(Ta,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},e(Ta,[2,5]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1307,419:190,420:Fe,424:Pe},e(Y,[2,455],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,589]),e(Y,[2,590]),{2:r,3:244,4:n,5:a,199:1308},e(Y,[2,670]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1309,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1310,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1311],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1312],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:168,4:n,5:a,40:1313,56:165,77:ne,79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1314,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1315]},{74:hn,78:[1,1316]},e(We,[2,426]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1317,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,40:1318,56:165,77:ne,78:[1,1320],79:75,89:u,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1319,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,184:99,189:d,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,429]),e(We,[2,431]),e(We,Za,{275:1321,276:es}),{78:[1,1323],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1324],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1325,4:n,5:a,180:[1,1326]},e(ir,[2,619]),e(We,[2,363]),{306:[1,1327]},e(We,[2,370]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,306:[2,374],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1328,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{4:_n,7:879,272:1329,387:878,389:Fn},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1330,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ir,[2,641]),e(Xn,[2,648]),e(Kn,[2,636]),e(Da,xa),e(ir,[2,638]),e(Zn,[2,643]),e(Zn,[2,645]),e(Zn,[2,646]),e(Zn,[2,647]),e(ka,[2,457],{74:La}),{77:[1,1332],143:oe,144:1333,145:Xe,152:le,181:pe,201:1334,302:$e,419:190,420:Fe,424:Pe},e(ka,[2,463]),{74:ts,78:[1,1335]},{74:rs,78:[1,1337]},e([74,78,99,112,115,116,123,124,133,136,138,139,140,141,142,154,170,171,179,180,311,312,313,315,316,317,318,319,320,321,322,323,324,325,326,330,331,332,333],ns),e(as,[2,479],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{40:1341,77:ra,79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:1339,342:1340,344:ta,419:190,420:Fe,424:Pe},e(ka,[2,461],{74:La}),e(Y,[2,717],{457:1342,458:1343,459:1344,308:Ua,464:[1,1345]}),e(ss,[2,701]),e(ss,[2,702]),{154:[1,1347],460:[1,1346]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,308:[2,698],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(hr,[2,179]),{2:r,3:1348,4:n,5:a},e(Y,[2,574]),e(is,[2,238],{84:1349,128:[1,1350]}),e(_a,[2,1046]),{77:[1,1351]},{77:[1,1352]},e(na,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:os,206:us,208:cs,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs}),{2:r,3:219,4:n,5:a,40:711,77:Be,79:75,89:u,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,184:99,189:d,199:213,200:215,201:214,202:217,203:1369,209:1211,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(ms,[2,177]),{2:r,3:1011,4:n,5:a,110:1370,111:1009,112:aa},e(Fa,[2,87]),e(sa,[2,147],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{78:[1,1371]},{74:hn,78:[2,1066]},{2:r,3:168,4:n,5:a,56:165,77:ne,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,242:[1,1375],254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,98]),e(Pa,[2,1062],{153:1015,179:ia,180:oa,181:ua}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1377],112:Tr,114:736,115:St,116:Tt,117:1378,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},e(Pa,[2,1063],{153:1015,179:ia,180:oa,181:ua}),{78:[1,1379],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1380],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1381]},e(ca,[2,120]),{74:Ba,78:[1,1382]},e(ca,[2,122]),{74:hn,78:[1,1383]},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1384],112:Tr,114:736,115:St,116:Tt,117:1385,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1386],112:Tr,114:736,115:St,116:Tt,117:1387,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1388],112:Tr,114:736,115:St,116:Tt,117:1389,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1390],112:Tr,114:736,115:St,116:Tt,117:1391,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{74:vs,78:[1,1392]},e(as,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),e(qa,Ga,{178:1234,163:1395}),{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1396],112:Tr,114:736,115:St,116:Tt,117:1397,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:733,4:n,5:a,72:mr,76:vr,77:Sr,78:[1,1398],112:Tr,114:736,115:St,116:Tt,117:1399,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{74:vs,78:[1,1400]},{74:vs,78:[1,1401]},{74:vs,78:[1,1402]},{74:vs,78:[1,1403]},{78:[1,1404],153:1015,179:ia,180:oa,181:ua},{74:pa,78:[1,1405]},{2:r,3:733,4:n,5:a,72:mr,74:[1,1406],76:vr,77:Sr,112:Tr,114:736,115:St,116:Tt,117:1407,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,144:758,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,158:768,160:769,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,419:190,420:Fe,424:Pe},{2:r,3:1408,4:n,5:a},{2:r,3:1409,4:n,5:a},e(Y,[2,597]),{2:r,3:1410,4:n,5:a},{113:1411,132:se,296:xe},{78:[1,1412]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1413,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,336:1414,337:1066},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1415,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{124:[1,1416]},e(Y,[2,653],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Ha,[2,658]),{78:[1,1417],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,[2,654],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1418,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ba,[2,272]),e(ba,[2,274]),e(ba,[2,276]),e(ba,[2,278]),e(et,[2,161]),e(Y,[2,569]),{148:[1,1419]},e(Y,[2,570]),e(gn,[2,536],{387:878,7:879,272:1420,4:_n,386:[1,1421],389:Fn}),e(Y,[2,571]),e(Y,[2,573]),{74:hn,78:[1,1422]},e(Y,[2,577]),e(rr,[2,345]),{74:[1,1423],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1424],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1425],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{74:[1,1426],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,[2,581]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1427,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1428,4:n,5:a},e(Y,[2,583]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1429,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1430]},{2:r,3:1431,4:n,5:a},{76:Ea,139:[2,1149],480:1432,483:1433},e(Wa,[2,1148]),{139:[1,1434]},{139:[2,1152]},e(gn,[2,737]),e(wn,[2,744]),e(wn,[2,1166]),{2:r,3:1268,4:n,5:a,76:[1,1437],351:1435,358:1436,384:1438},{2:r,3:1011,4:n,5:a,100:1439,111:1440},{40:1441,79:75,89:u,184:99,189:d},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1442,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ka,[2,722]),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1443,336:1064,337:1066},{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1444,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ka,[2,727]),{2:r,3:244,4:n,5:a,199:1445},{335:ma,338:va,339:Sa,511:1446},e(pt,[2,691],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1447,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:[1,1448],78:[1,1449]},e(as,[2,543]),e(as,[2,544]),{74:rs,78:[1,1450]},e(pt,[2,565]),e(ya,[2,380],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(ya,[2,382],{114:625,327:637,115:St,116:Tt,123:At,133:Nt,136:Ct,138:Rt,141:It,142:xt,179:$t,180:Mt,312:_t,316:qt,317:Gt,318:Vt,319:Bt}),e(We,[2,396]),e(We,[2,400]),{78:[1,1451]},{74:hn,78:[1,1452]},e(We,[2,422]),e(We,[2,424]),{78:[1,1453],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1454]},{74:hn,78:[1,1455]},e(We,[2,427]),e(We,[2,327]),{77:[1,1456]},e(We,Za,{275:1457,276:es}),e(We,Za,{275:1458,276:es}),e(Da,[2,284]),e(We,[2,281]),e(We,[2,369]),e(Wn,[2,373],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{2:r,3:1325,4:n,5:a},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1194,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,345:1463,419:190,420:Fe,424:Pe},e(Ma,[2,477]),e(Ma,[2,478]),{40:1466,77:ra,79:75,89:u,143:oe,144:979,145:Xe,149:ea,152:le,181:pe,184:99,189:d,201:980,302:$e,341:1464,342:1465,344:ta,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,111:1467},e(Ma,[2,473]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1468,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1469,419:190,420:Fe,424:Pe},e(ka,[2,460],{74:La}),e(ka,[2,467]),e(Y,[2,694]),e(ss,[2,699]),e(ss,[2,700]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:817,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,174:1470,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,253:816,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{170:[1,1472],309:[1,1471]},{460:[1,1473]},e(hr,[2,180]),e(Ss,[2,240],{85:1474,232:[1,1475]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1476,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1477,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1478,4:n,5:a},e(na,[2,170],{216:1357,221:1360,215:1479,205:1480,206:us,208:cs,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs}),{2:r,3:219,4:n,5:a,77:Be,132:je,143:oe,144:212,145:ue,152:le,156:W,181:pe,199:213,200:215,201:214,202:217,209:1481,213:He,214:218,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},e(Ts,[2,205]),e(Ts,[2,206]),{2:r,3:219,4:n,5:a,77:[1,1486],143:oe,144:1484,145:ue,152:le,156:W,181:pe,199:1483,200:1487,201:1485,202:1488,217:1482,290:X,291:K,292:Q,293:z,302:$e,419:190,420:Fe,424:Pe},{207:[1,1489],223:As},{207:[1,1491],223:ys},e(Ns,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(Ns,[2,224]),{223:[1,1496]},{208:[1,1498],223:[1,1497]},{208:[1,1500],223:[1,1499]},{208:[1,1501]},{223:[1,1502]},{223:[1,1503]},{74:os,204:1504,205:1356,206:us,208:cs,215:1355,216:1357,221:1360,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(Fa,[2,84]),e(ca,[2,100]),{74:Cs,78:[1,1505]},{78:[1,1507]},e(Rs,[2,261]),{78:[2,1060]},e(Rs,[2,263],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,242:[1,1508],243:[1,1509],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ca,[2,99]),e(Pa,[2,1064],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,101]),e(ca,[2,102]),e(ca,[2,103]),e(ca,[2,121]),e(ca,[2,124]),e(ca,[2,127]),e(Pa,[2,1068],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,128]),e(Pa,[2,1070],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,129]),e(Pa,[2,1072],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,130]),e(Pa,[2,1076],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,131]),e(qa,[2,1083],{177:1510}),e(qa,[2,1086],{153:1015,179:ia,180:oa,181:ua}),{74:vs,78:[1,1511]},e(ca,[2,133]),e(Pa,[2,1078],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,134]),e(Pa,[2,1080],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,135]),e(ca,[2,136]),e(ca,[2,137]),e(ca,[2,138]),e(ca,[2,139]),e(ca,[2,140]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:260,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,151:1512,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Va,[2,1082],{153:1015,179:ia,180:oa,181:ua}),e(Y,[2,607]),e(Y,[2,603]),e(Y,[2,605]),e(Y,[2,601]),e(cn,[2,71]),e(Y,[2,449],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ja,[2,452]),e(ja,[2,453],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1513,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Ha,[2,662]),e(Y,[2,655],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:1514,4:n,5:a},e(gn,[2,545],{385:1515,391:1516,392:1517,366:1525,154:Os,187:ws,230:Is,297:xs,343:Ds,356:ks,368:Ls,369:$s,373:Ms,374:Us}),e(gn,[2,535]),e(Y,[2,576],{76:[1,1529]}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1530,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1531,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1532,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1533,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:hn,78:[1,1534]},e(Y,[2,585]),{74:Cs,78:[1,1535]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1536,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1538,482:582,493:579,497:581},{78:[1,1539]},{74:[1,1540],78:[2,506]},{40:1541,79:75,89:u,184:99,189:d},e(as,[2,532]),{74:ts,78:[1,1542]},e(ms,ns),e(Y,[2,1133],{412:1543,413:1544,72:_s}),e(ka,Xa,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:u,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,146:Ka,154:Dt,170:kt,171:Lt,179:$t,180:Mt,189:d,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er,470:Qa}),e(ka,[2,725],{74:Ba}),e(ka,[2,726],{74:hn}),e([10,53,72,89,124,146,156,189,266,267,290,306,310,335,338,339,396,400,401,404,406,408,409,417,418,434,436,437,439,440,441,442,443,447,448,451,452,505,507,508,517,602,764],[2,1181],{512:1547,3:1548,2:r,4:n,5:a,76:[1,1549]}),e(Fs,[2,1183],{513:1550,76:[1,1551]}),e(pt,[2,692],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{131:[1,1552]},e(Ta,[2,538]),e(Ta,[2,540]),e(We,[2,412]),e(We,[2,413]),e(We,[2,439]),e(We,[2,423]),e(We,[2,425]),{118:Ps,277:1553,278:1554,279:[1,1555]},e(We,[2,328]),e(We,[2,329]),e(We,[2,316]),{131:[1,1557]},e(We,[2,318]),{131:[1,1558]},{74:rs,78:[1,1559]},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1560,419:190,420:Fe,424:Pe},e(ka,[2,465],{74:La}),e(ka,[2,468]),e(ms,[2,488]),e(as,[2,480],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(ka,[2,459],{74:La}),e(Y,[2,718],{74:pa,198:[1,1561]}),{335:qs,338:Gs,461:1562},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1565,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{119:[1,1567],170:[1,1568],309:[1,1566]},e(Vs,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},e(is,[2,239],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{95:[1,1572],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{95:[1,1573]},e(Ts,[2,203]),e(Ts,[2,204]),e(ms,[2,178]),e(Ts,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),e(Bs,[2,208],{3:1577,2:r,4:n,5:a,76:[1,1578]}),e(js,[2,1095],{219:1579,76:[1,1580]}),{2:r,3:1581,4:n,5:a,76:[1,1582]},{40:1583,79:75,89:u,184:99,189:d},e(Bs,[2,216],{3:1584,2:r,4:n,5:a,76:[1,1585]}),e(Bs,[2,219],{3:1586,2:r,4:n,5:a,76:[1,1587]}),{77:[1,1588]},e(Ns,[2,234]),{77:[1,1589]},e(Ns,[2,230]),e(Ns,[2,223]),{223:ys},{223:As},e(Ns,[2,225]),e(Ns,[2,226]),{223:[1,1590]},e(Ns,[2,228]),{223:[1,1591]},{223:[1,1592]},e(Ns,[2,232]),e(Ns,[2,233]),{78:[1,1593],205:1480,206:us,208:cs,215:1479,216:1357,221:1360,222:ls,223:hs,224:ds,225:fs,226:ps,227:bs,228:Es,229:gs},e(ca,[2,91]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1594,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ca,[2,92]),e(Rs,[2,264]),{244:[1,1595]},e(as,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:r,4:n,5:a,72:mr,76:vr,77:Sr,112:Tr,115:St,116:Tt,118:Ar,122:yr,123:Nr,124:Cr,128:Rr,129:Or,130:wr,131:Ir,132:xr,133:Dr,134:kr,135:Lr,136:$r,137:Mr,138:Ur,139:_r,140:Fr,141:Pr,142:qr,143:Gr,145:Vr,146:Br,148:jr,149:Hr,150:Jr,152:Yr,154:Wr,156:Xr,162:Kr,164:Qr,166:zr,168:Zr,169:en,170:tn,171:rn,172:nn,173:an,175:sn,185:on,187:un,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,420:Fe,424:Pe}),e(ca,[2,132]),{74:hn,78:[1,1597]},e(ja,[2,454],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Y,[2,572]),e(gn,[2,534]),e(gn,[2,546],{366:1525,392:1598,154:Os,187:ws,230:Is,297:xs,343:Ds,356:ks,368:Ls,369:$s,373:Ms,374:Us}),e(ln,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:r,3:244,4:n,5:a,199:1601},e(ln,[2,554],{77:[1,1602]}),{2:r,3:114,4:n,5:a,77:[1,1604],113:251,131:ae,132:se,143:oe,152:le,156:W,181:pe,196:250,200:1605,201:254,257:252,258:253,265:Ke,274:1603,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e},e(ln,[2,558]),{297:[1,1606]},e(ln,[2,560]),e(ln,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:r,3:1609,4:n,5:a},{78:[1,1610],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1611],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1612],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{78:[1,1613],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(Y,Ja,{407:1614,76:Ya}),e(Y,[2,591]),{74:Cs,78:[1,1615]},{2:r,3:1122,4:n,5:a,132:lt,137:ht,143:ze,145:Ze,152:dt,431:585,475:1124,478:1616,482:582,493:579,497:581},e(gn,[2,735]),e(Y,[2,493],{352:1617,354:1618,355:1619,4:Hs,243:Js,343:Ys,356:Ws}),e(Xs,Ks,{3:1268,359:1624,384:1625,360:1626,361:1627,2:r,4:n,5:a,367:Qs}),{78:[2,507]},{76:[1,1629]},e(Y,[2,609]),e(Y,[2,1134]),{368:[1,1631],414:[1,1630]},e(ka,[2,728]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1632,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Y,[2,762]),e(Fs,[2,1182]),e(Y,t,{17:5,18:7,19:8,20:9,21:10,22:11,23:12,24:13,25:14,26:15,27:16,28:17,29:18,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:36,48:37,49:38,50:39,51:40,52:41,54:43,55:44,56:45,57:46,58:47,59:48,60:49,61:50,62:51,63:52,64:53,65:54,66:55,67:56,68:57,69:58,70:59,71:60,79:75,504:95,184:99,3:100,12:1633,2:r,4:n,5:a,53:i,72:o,89:u,124:c,146:l,156:h,189:d,266:f,267:p,290:b,335:E,338:g,339:m,396:v,400:S,401:T,404:A,406:y,408:N,409:C,417:R,418:O,434:w,436:I,437:x,439:D,440:k,441:L,442:$,443:M,447:U,448:_,451:F,452:P,505:q,507:G,508:V,517:B}),e(Fs,[2,1184]),{78:[1,1634]},{78:[1,1635],118:Ps,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},e(Ma,[2,476]),e(ka,[2,464],{74:La}),{2:r,3:244,4:n,5:a,143:ze,145:Ze,199:1643,431:1642},e(ss,[2,703]),e(ss,[2,705]),{146:[1,1644]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1645],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},{339:zs,462:1646},{417:[1,1649],463:[1,1648]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1650,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Zs,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1655,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1661,4:n,5:a},{2:r,3:1662,4:n,5:a},e(Ts,[2,207]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1663,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1664,111:1440},e(Bs,[2,209]),{2:r,3:1665,4:n,5:a},e(Bs,[2,1097],{220:1666,3:1667,2:r,4:n,5:a}),e(js,[2,1096]),e(Bs,[2,212]),{2:r,3:1668,4:n,5:a},{78:[1,1669]},e(Bs,[2,217]),{2:r,3:1670,4:n,5:a},e(Bs,[2,220]),{2:r,3:1671,4:n,5:a},{40:1672,79:75,89:u,184:99,189:d},{40:1673,79:75,89:u,184:99,189:d},e(Ns,[2,227]),e(Ns,[2,229]),e(Ns,[2,231]),e(na,[2,171]),e(Rs,[2,262]),e(Rs,[2,265],{242:[1,1674]}),e(qa,[2,1084],{153:1015,179:ia,180:oa,181:ua}),e(ca,[2,141]),e(ln,[2,547]),e(ln,[2,550]),{374:[1,1675]},e(ln,[2,1127],{395:1676,393:1677,77:ni}),{131:ae,196:1679},e(ln,[2,555]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1680,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(ln,[2,557]),e(ln,[2,559]),{2:r,3:114,4:n,5:a,77:[1,1682],113:251,131:ae,132:se,143:oe,152:le,156:W,181:pe,196:250,200:255,201:254,257:252,258:253,265:Ke,274:1681,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,302:$e},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1683,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Y,[2,578]),e(rr,[2,349]),e(rr,[2,350]),e(rr,[2,351]),e(rr,[2,352]),e(Y,[2,582]),e(Y,[2,592]),e(gn,[2,734]),e(Y,[2,489]),e(Y,[2,494],{355:1684,4:Hs,243:Js,343:Ys,356:Ws}),e(ai,[2,496]),e(ai,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},e(as,[2,533]),e(as,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:Ls,369:[1,1694],370:[1,1698],373:[1,1695]},{2:r,3:1699,4:n,5:a},{40:1700,79:75,89:u,184:99,189:d},{415:[1,1701]},{416:[1,1702]},e(Y,[2,761]),e(Y,[2,763]),e(Ta,[2,537]),e(We,[2,331]),{78:[1,1703]},e(We,[2,332]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1704,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1705,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(We,[2,317]),e(We,[2,319]),{2:r,3:1706,4:n,5:a},e(Y,[2,720],{77:[1,1707]}),{2:r,3:1011,4:n,5:a,111:1065,143:la,145:ha,147:1708,336:1064,337:1066},{335:qs,338:Gs,461:1709},e(ss,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1717],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(sa,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:ae,196:1722},{131:ae,196:1723},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1376,111:149,113:153,120:1724,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,241:1374,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},e(Ss,[2,248],{234:1725,74:si,239:[1,1727]}),e(ii,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},e(ii,[2,247],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},e(Ts,[2,235],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),e(Ts,[2,236],{74:ts}),e(Bs,[2,210]),e(Bs,[2,211]),e(Bs,[2,1098]),e(Bs,[2,213]),{2:r,3:1735,4:n,5:a,76:[1,1736]},e(Bs,[2,218]),e(Bs,[2,221]),{78:[1,1737]},{78:[1,1738]},e(Rs,[2,266]),{2:r,3:244,4:n,5:a,199:1739},e(ln,[2,552]),e(ln,[2,1128]),{2:r,3:1740,4:n,5:a},{74:[1,1741]},{78:[1,1742],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ln,[2,562]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1743,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1744],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ai,[2,495]),{2:r,3:1745,4:n,5:a},{131:ae,196:1746},{2:r,3:1747,4:n,5:a},e(Xs,Ks,{361:1627,360:1748,367:Qs}),e(gn,[2,510]),e(gn,[2,511]),e(gn,[2,512]),e(gn,[2,513]),e(gn,[2,514]),{370:[1,1749]},{370:[1,1750]},e(oi,[2,1121],{382:1751,370:[1,1752]}),{2:r,3:1753,4:n,5:a},{2:r,3:1754,4:n,5:a},e(Xs,[2,516]),e(Y,[2,1131],{411:1755,413:1756,72:_s}),e(Y,[2,610]),e(Y,[2,611],{367:[1,1757]}),e(We,[2,333]),e([78,118],[2,334],{74:si}),{74:Cs,78:[2,335]},e(Y,[2,719]),{2:r,3:1011,4:n,5:a,100:1758,111:1440},e(ss,[2,706],{74:Ba}),e(ss,[2,704]),{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1759,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1760,111:1440},{344:[1,1761]},{339:zs,462:1762},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1763,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{339:zs,462:1764},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1765,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{339:zs,462:1766},e(sa,[2,72]),{40:1767,79:75,89:u,164:[1,1768],184:99,189:d,240:[1,1769]},{40:1770,79:75,89:u,184:99,189:d,240:[1,1771]},{40:1772,79:75,89:u,184:99,189:d,240:[1,1773]},e(Zs,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},e(Vs,[2,260],{74:Cs}),e(Ss,[2,241]),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,235:1778,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1779,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{77:[1,1780]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1781,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1782,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},e(Bs,[2,214]),{2:r,3:1786,4:n,5:a},{2:r,3:1787,4:n,5:a,76:[1,1788]},{2:r,3:1789,4:n,5:a,76:[1,1790]},e(ln,[2,1125],{394:1791,393:1792,77:ni}),{78:[1,1793]},{131:ae,196:1794},e(ln,[2,556]),{78:[1,1795],99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ln,[2,517]),e(ai,[2,498]),e(ai,[2,499]),e(ai,[2,500]),e(as,[2,509]),{2:r,3:1797,4:n,5:a,77:[2,1117],371:1796},{77:[1,1798]},{2:r,3:1800,4:n,5:a,77:[2,1123],383:1799},e(oi,[2,1122]),{77:[1,1801]},{77:[1,1802]},e(Y,[2,608]),e(Y,[2,1132]),e(Xs,Ks,{361:1627,360:1803,367:Qs}),{74:ts,78:[1,1804]},e(ss,[2,713],{74:La}),{74:ts,78:[1,1805]},e(ss,[2,715]),e(ss,[2,708]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1806],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ss,[2,711]),{99:mt,112:vt,114:625,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,309:[1,1807],311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,327:637,330:Qt,331:zt,332:Zt,333:er},e(ss,[2,709]),e(sa,[2,251]),{40:1808,79:75,89:u,184:99,189:d,240:[1,1809]},{40:1810,79:75,89:u,184:99,189:d},e(sa,[2,253]),{40:1811,79:75,89:u,184:99,189:d},e(sa,[2,254]),{40:1812,79:75,89:u,184:99,189:d},e(Zs,[2,268]),{131:ae,196:1813},{249:[1,1814]},{249:[2,1100]},e(ii,[2,243]),e(Ss,[2,249],{114:625,327:637,99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1660,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,233:1815,235:1656,236:ei,237:ti,238:ri,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{74:si,78:[1,1816]},{74:si,78:[1,1817]},e(_a,[2,1053],{97:1818,104:1819,3:1821,2:r,4:n,5:a,76:ui}),{2:r,3:168,4:n,5:a,56:165,77:ne,94:1824,103:1822,105:1823,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1011,4:n,5:a,100:1825,111:1440},e(Bs,[2,215]),e(Ts,[2,173]),{2:r,3:1826,4:n,5:a},e(Ts,[2,175]),{2:r,3:1827,4:n,5:a},e(ln,[2,551]),e(ln,[2,1126]),e(ln,[2,549]),{78:[1,1828]},e(ln,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:r,3:1831,4:n,5:a,132:ci,372:1830},{77:[1,1833]},{77:[2,1124]},{2:r,3:1011,4:n,5:a,100:1834,111:1440},{2:r,3:1011,4:n,5:a,100:1835,111:1440},e(Y,[2,612]),e(Y,[2,721]),{343:[1,1837],344:[1,1836]},{339:zs,462:1838},{335:qs,338:Gs,461:1839},e(sa,[2,252]),{40:1840,79:75,89:u,184:99,189:d},e(sa,[2,255]),e(sa,[2,257]),e(sa,[2,258]),e(Zs,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:si,78:[1,1843]},e(ii,[2,245]),e(ii,[2,246]),e(_a,[2,74]),e(_a,[2,1054]),{2:r,3:1844,4:n,5:a},e(_a,[2,78]),{74:[1,1846],78:[1,1845]},e(as,[2,80]),e(as,[2,81],{114:625,327:637,76:[1,1847],99:mt,112:vt,115:St,116:Tt,123:At,124:fn,133:Nt,136:Ct,138:Rt,139:Ot,140:wt,141:It,142:xt,154:Dt,170:kt,171:Lt,179:$t,180:Mt,311:Ut,312:_t,313:Ft,315:Pt,316:qt,317:Gt,318:Vt,319:Bt,320:jt,321:Ht,322:Jt,323:Yt,324:Wt,325:Xt,326:Kt,330:Qt,331:zt,332:Zt,333:er}),{74:ts,78:[1,1848]},e(Ts,[2,174]),e(Ts,[2,176]),e(ln,[2,553]),{2:r,3:1831,4:n,5:a,132:ci,372:1849},{74:li,78:[1,1850]},e(as,[2,528]),e(as,[2,529]),{2:r,3:1011,4:n,5:a,100:1852,111:1440},{74:ts,78:[1,1853]},{74:ts,78:[1,1854]},{77:ra,143:oe,144:979,145:Xe,152:le,181:pe,201:980,302:$e,342:1855,419:190,420:Fe,424:Pe},{344:[1,1856]},e(ss,[2,710]),e(ss,[2,712]),e(sa,[2,256]),{131:ae,196:1857},{131:[2,1102]},e(ii,[2,244]),e(_a,[2,77]),{78:[2,76]},{2:r,3:168,4:n,5:a,56:165,77:ne,94:1824,105:1858,111:149,113:153,131:ae,132:se,137:ie,143:oe,144:161,145:ue,149:ce,152:le,154:he,156:W,158:167,179:de,180:fe,181:pe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:be,266:f,270:Ee,271:ge,273:me,280:ve,281:Se,282:Te,283:Ae,284:ye,285:Ne,286:Ce,287:Re,288:Oe,290:X,291:K,292:Q,293:z,294:we,295:Ie,296:xe,297:De,298:ke,299:Le,302:$e,303:Me,312:Ue,317:_e,419:190,420:Fe,424:Pe},{2:r,3:1859,4:n,5:a},{78:[1,1860]},{74:li,78:[1,1861]},{374:[1,1862]},{2:r,3:1863,4:n,5:a,132:[1,1864]},{74:ts,78:[1,1865]},e(gn,[2,526]),e(gn,[2,527]),e(ss,[2,714],{74:La}),e(ss,[2,716]),e(hi,[2,1103],{251:1866,766:[1,1867]}),e(as,[2,79]),e(as,[2,82]),e(_a,[2,1055],{3:1821,101:1868,104:1869,2:r,4:n,5:a,76:ui}),e(gn,[2,518]),{2:r,3:244,4:n,5:a,199:1870},e(as,[2,530]),e(as,[2,531]),e(gn,[2,525]),e(Zs,[2,1105],{252:1871,415:[1,1872]}),e(hi,[2,1104]),e(_a,[2,75]),e(_a,[2,1056]),e(di,[2,1119],{375:1873,377:1874,77:[1,1875]}),e(Zs,[2,269]),e(Zs,[2,1106]),e(gn,[2,521],{376:1876,378:1877,230:[1,1878]}),e(di,[2,1120]),{2:r,3:1831,4:n,5:a,132:ci,372:1879},e(gn,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:li,78:[1,1883]},e(gn,[2,522]),{335:[1,1884]},{380:[1,1885]},e(di,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},e(gn,[2,524])],defaultActions:{105:[2,6],194:[2,336],195:[2,337],196:[2,338],197:[2,339],198:[2,340],199:[2,341],200:[2,342],201:[2,343],202:[2,344],209:[2,695],591:[2,1142],653:[2,1107],654:[2,1108],710:[2,696],780:[2,1073],781:[2,1074],926:[2,446],927:[2,447],928:[2,448],987:[2,697],1288:[2,1152],1375:[2,1060],1433:[2,1150],1541:[2,507],1732:[2,1052],1777:[2,1100],1797:[2,1118],1800:[2,1124],1842:[2,1102],1845:[2,76],1887:[2,523]},parseError:function(e,t){if(!t.recoverable){var r=new Error(e);throw r.hash=t,r}this.trace(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],s=this.table,i="",o=0,u=0,c=0,l=a.slice.call(arguments,1),h=Object.create(this.lexer),d={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(d.yy[f]=this.yy[f]);h.setInput(e,d.yy),d.yy.lexer=h,d.yy.parser=this,void 0===h.yylloc&&(h.yylloc={});var p=h.yylloc;a.push(p);var b=h.options&&h.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var E,g,m,v,S,T,A,y,N,C,R=function(){var e;return"number"!=typeof(e=h.lex()||1)&&(e=t.symbols_[e]||e),e},O={};;){if(m=n[n.length-1],void 0===(v=this.defaultActions[m]?this.defaultActions[m]:(null==E&&(E=R()),s[m]&&s[m][E]))||!v.length||!v[0]){var w,I="",x=function(e){for(var t=n.length-1,r=0;;){if(2..toString()in s[e])return r;if(0===e||t<2)return!1;e=n[t-=2],++r}};if(c)1!==g&&(w=x(m));else{for(T in w=x(m),N=[],s[m])this.terminals_[T]&&2t[0].length)){if(t=r,n=s,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,a[s])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return 0)/i,/^(?:#)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:&)/i,/^(?:\|)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?::-)/i,/^(?:\?-)/i,/^(?:\.\.)/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:!)/i,/^(?:\^)/i,/^(?:~)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274],inclusive:!0}}};function Ei(){this.yy={}}return fi.lexer=bi,new((Ei.prototype=fi).Parser=Ei)}();void 0!==e&&"undefined"!=typeof exports&&(exports.parser=t,exports.Parser=t.Parser,exports.parse=function(){return t.parse.apply(t,arguments)},exports.main=function(e){e[1]||(console.log("Usage: "+e[0]+" FILE"),process.exit(1));var t=null.readFileSync(null.normalize(e[1]),"utf8");return exports.parser.parse(t)},"undefined"!=typeof module&&e.main===module&&exports.main(process.argv.slice(1))),gi.prettyflag=!1,gi.pretty=function(e,t){var r=gi.prettyflag;gi.prettyflag=!t;var n=gi.parse(e).toString();return gi.prettyflag=r,n};var c=gi.utils={};function f(e){return"(y="+e+",y===y?y:undefined)"}function n(e,t){return"(y="+e+',typeof y=="undefined"?undefined:'+t+")"}function S(){return!0}function r(){}function u(e){return e[0]===String.fromCharCode(65279)&&(e=e.substr(1)),e}var p=c.escapeq=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})},l=c.undoubleq=function(e){return e.replace(/(\')/g,"''")},mi=c.doubleq=function(e){return e.replace(/(\'\')/g,"\\'")};c.doubleqq=function(e){return e.replace(/\'/g,"'")};c.global="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:Function("return this")();c.isNativeFunction=function(e){return"function"==typeof e&&!!~e.toString().indexOf("[native code]")};c.isWebWorker=function(){try{var e=c.global.importScripts;return c.isNativeFunction(e)}catch(e){return!1}}(),c.isNode=function(){try{return c.isNativeFunction(c.global.process.reallyExit)}catch(e){return!1}}(),c.isBrowser=function(){try{return c.isNativeFunction(c.global.location.reload)}catch(e){return!1}}(),c.isBrowserify=c.isBrowser&&"undefined"!=typeof process&&process.browser,c.isRequireJS=c.isBrowser&&"function"==typeof e.specified,c.isMeteor="undefined"!=typeof Meteor&&Meteor.release,c.isMeteorClient=c.isMeteorClient=c.isMeteor&&Meteor.isClient,c.isMeteorServer=c.isMeteor&&Meteor.isServer,c.isCordova="object"==typeof cordova,c.isReactNative=!1,c.hasIndexedDB=!!c.global.indexedDB,c.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var o=c.loadFile=function(t,e,r,n){var a;if(c.isNode||c.isMeteorServer);else if(c.isCordova)c.global.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(e){e.root.getFile(t,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){r(u(this.result))},t.readAsText(e)})})});else if("string"==typeof t)if("#"===t.substr(0,1)&&"undefined"!=typeof document)a=document.querySelector(t).textContent,r(a);else{var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState)if(200===s.status)r&&r(u(s.responseText));else if(n)return n(s)},s.open("GET",t,e),s.responseType="text",s.send()}else if(t instanceof Event){var i=t.target.files,o=new FileReader;i[0].name;o.onload=function(e){var t=e.target.result;r(u(t))},o.readAsText(i[0])}};c.loadBinaryFile=function(e,t,n,r){if(c.isNode||c.isMeteorServer);else if("string"==typeof e){var a=new XMLHttpRequest;a.open("GET",e,t),a.responseType="arraybuffer",a.onload=function(){for(var e=new Uint8Array(a.response),t=[],r=0;rgi.MAXSQLCACHESIZE&&i.resetSqlCache(),i.sqlCacheSize++,i.sqlCache[s]=u),gi.res=u(r,n,a)}return gi.precompile(o.statements[0],gi.useid,r),gi.res=o.statements[0].execute(e,r,n,a)}if(!n)return gi.drun(e,o,r,n,a);gi.adrun(e,o,r,n,a)}},gi.drun=function(e,t,r,n,a){var s=gi.useid;s!==e&&gi.use(e);for(var i=[],o=0,u=t.statements.length;on.length)return l;var h=[];return l&&0n.length?[t]:r(n,a+1,t);if("DISTINCT"===s.selid){if(0===(f=void 0===s.args||0===s.args.length?x(t):r(s.args,0,t)).length)return[];var d=x(f);return a+1+1>n.length?d:r(n,a+1,d)}if("AND"===s.selid)return d=!0,s.args.forEach(function(e){d=d&&0n.length?[t]:r(n,a+1,t):[];if("OR"===s.selid)return d=!1,s.args.forEach(function(e){d=d||0n.length?[t]:r(n,a+1,t):[];if("ALL"===s.selid)return 0===(f=r(s.args[0],0,t)).length?[]:a+1+1>n.length?f:r(n,a+1,f);if("ANY"===s.selid)return 0===(f=r(s.args[0],0,t)).length?[]:a+1+1>n.length?[f[0]]:r(n,a+1,[f[0]]);if("UNIONALL"===s.selid){var f=[];return s.args.forEach(function(e){f=f.concat(r(e,0,t))}),0===f.length?[]:a+1+1>n.length?f:r(n,a+1,f)}if("UNION"===s.selid){var f=[];return s.args.forEach(function(e){f=f.concat(r(e,0,t))}),0===(f=x(f)).length?[]:a+1+1>n.length?f:r(n,a+1,f)}if("IF"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:a+1+1>n.length?[t]:r(n,a+1,t);if("REPEAT"===s.selid){var p,b,E=s.args[0].value;b=s.args[1]?s.args[1].value:E,s.args[2]&&(p=s.args[2].variable);var g=[];if(0===E&&(g=a+1+1>n.length?[t]:(p&&(gi.vars[p]=0),g.concat(r(n,a+1,t)))),0=E&&(a+1+1>n.length?g=g.concat(S):S.forEach(function(e){g=g.concat(r(n,a+1,e))}))}if(1e5<++v)throw new Error("Security brake. Number of iterations = "+v)}return g}if("OF"===s.selid){if(a+1+1>n.length)return[t];var T=[];return Object.keys(t).forEach(function(e){gi.vars[s.args[0].variable]=e,T=T.concat(r(n,a+1,t[e]))}),T}if("TO"===s.selid){var A=gi.vars[s.args[0]],y=[];return(y=void 0!==A?A.slice(0):[]).push(t),a+1+1>n.length?[t]:(gi.vars[s.args[0]]=y,T=r(n,a+1,t),gi.vars[s.args[0]]=A,T)}if("ARRAY"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("SUM"===s.selid){if(!(0<(f=r(s.args,0,t)).length))return[];var N=f.reduce(function(e,t){return e+t},0);return a+1+1>n.length?[N]:r(n,a+1,N)}if("AVG"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f.reduce(function(e,t){return e+t},0)/f.length,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("COUNT"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f.length,a+1+1>n.length?[N]:r(n,a+1,N)):[];if("FIRST"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f[0],a+1+1>n.length?[N]:r(n,a+1,N)):[];if("LAST"===s.selid)return 0<(f=r(s.args,0,t)).length?(N=f[f.length-1],a+1+1>n.length?[N]:r(n,a+1,N)):[];if("MIN"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:(N=f.reduce(function(e,t){return Math.min(e,t)},1/0),a+1+1>n.length?[N]:r(n,a+1,N));if("MAX"===s.selid)return 0===(f=r(s.args,0,t)).length?[]:(N=f.reduce(function(e,t){return Math.max(e,t)},-1/0),a+1+1>n.length?[N]:r(n,a+1,N));if("PLUS"===s.selid){for(g=[],m=r(s.args,0,t).slice(),a+1+1>n.length?g=g.concat(m):m.forEach(function(e){g=g.concat(r(n,a+1,e))}),v=0;0n.length?g=g.concat(f):f.forEach(function(e){var t=r(n,a+1,e);g=g.concat(t)}),1e5<++v)throw new Error("Security brake. Number of iterations = "+v);return g}if("STAR"===s.selid){for(g=[],g=r(n,a+1,t),m=r(s.args,0,t).slice(),a+1+1>n.length?g=g.concat(m):m.forEach(function(e){g=g.concat(r(n,a+1,e))}),v=0;0n.length?[t]:r(n,a+1,w);throw new Error("Wrong selector "+s.selid)}if(0===(f=r(s.args,0,t)).length)return[];var C={status:1,values:f}}else{if(!s.srchid)throw new Error("Selector not found");C=gi.srch[s.srchid.toUpperCase()](t,s.args,I,O)}if(void 0===C&&(C={status:1,values:[t]}),d=[],1===C.status){var R=C.values;if(a+1+1>n.length)d=R;else for(v=0;v=n.sources.length)n.wherefn(a,n.params,gi)&&(n.groupfn?n.groupfn(a,n.params,gi):n.data.push(n.selectfn(a,n.params,gi)));else if(n.sources[s].applyselect){var i=n.sources[s];i.applyselect(n.params,function(e){if(0":"<")+"b"+t+")return 1;",n+="if(a"+t+"==b"+t+"){"):(n+="if((a['"+r+"']||'')"+t+("ASC"===e.direction?">":"<")+"(b['"+r+"']||'')"+t+")return 1;",n+="if((a['"+r+"']||'')"+t+"==(b['"+r+"']||'')"+t+"){")}else t=".valueOf()",e.nocase&&(t+=".toUpperCase()"),n+="if(("+e.toJS("a","")+"||'')"+t+("ASC"===e.direction?">(":"<(")+e.toJS("b","")+"||'')"+t+")return 1;",n+="if(("+e.toJS("a","")+"||'')"+t+"==("+e.toJS("b","")+"||'')"+t+"){";s+="}"}),n+="return 0;",n+=s+"return -1",new Function("a,b",n)}}(t))}};var M=function(t){for(var e=0,r=t.sources.length;e":"<")+"(b['"+n+"']||'')"+a+")return 1;",c+="if((a['"+n+"']||'')"+a+"==(b['"+n+"']||'')"+a+"){",l+="}"}),c+="return 0;",c+=l+"return -1",o.orderfns=c,new Function("a,b","var y;"+c)}},D.Select.prototype.compilePivot=function(e){var h=this.pivot.columnid,d=this.pivot.expr.expression.columnid,f=this.pivot.expr.aggregatorid,p=this.pivot.inlist;return p&&(p=p.map(function(e){return e.expr.columnid})),function(){var r=this,n=r.columns.filter(function(e){return e.columnid!=h&&e.columnid!=d}).map(function(e){return e.columnid}),a=[],s={},i={},o={},u=[];if(r.data.forEach(function(t){if(!p||-1r[t[h]]&&(r[t[h]]=t[d]);else if("FIRST"==f)void 0===r[t[h]]&&(r[t[h]]=t[d]);else if("LAST"==f)r[t[h]]=t[d];else{if(!gi.aggr[f])throw new Error("Wrong aggregator in PIVOT clause");gi.aggr[f](r[t[h]],t[d])}}}),"AVG"==f)for(var e in i){var t=i[e];for(var c in t)-1==n.indexOf(c)&&c!=d&&(t[c]=t[c]/o[e][c])}r.data=u,p&&(a=p);var l=r.columns.filter(function(e){return e.columnid==d})[0];r.columns=r.columns.filter(function(e){return!(e.columnid==h||e.columnid==d)}),a.forEach(function(e){var t=b(l);t.columnid=e,r.columns.push(t)})}},D.Select.prototype.compileUnpivot=function(e){var s=this.unpivot.tocolumnid,i=this.unpivot.forcolumnid,t=this.unpivot.inlist.map(function(e){return e.columnid});return function(){var n=[],a=e.columns.map(function(e){return e.columnid}).filter(function(e){return-1==t.indexOf(e)&&e!=i&&e!=s});e.data.forEach(function(r){t.forEach(function(e){var t={};a.forEach(function(e){t[e]=r[e]}),t[i]=e,t[s]=r[e],n.push(t)})}),e.data=n}};var F=function(e,t){for(var r=[],n=0,a=e.length,s=0;s"!==this.op&&"!"!==this.op)return this.left.toString()+" "+this.op+" "+(this.allsome?this.allsome+" ":"")+this.right.toString();var e=this.left.toString()+this.op;return"string"!=typeof this.right&&"number"!=typeof this.right&&(e+="("),e+=this.right.toString(),"string"!=typeof this.right&&"number"!=typeof this.right&&(e+=")"),e},D.Op.prototype.findAggregator=function(e){this.left&&this.left.findAggregator&&this.left.findAggregator(e),this.right&&this.right.findAggregator&&!this.allsome&&this.right.findAggregator(e)},D.Op.prototype.toType=function(e){if(-1<["-","*","/","%","^"].indexOf(this.op))return"number";if(-1<["||"].indexOf(this.op))return"string";if("+"===this.op){if("string"===this.left.toType(e)||"string"===this.right.toType(e))return"string";if("number"===this.left.toType(e)||"number"===this.right.toType(e))return"number"}return-1<["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE","REGEXP","GLOB"].indexOf(this.op)?"boolean":"BETWEEN"===this.op||"NOT BETWEEN"===this.op||"IS NULL"===this.op||"IS NOT NULL"===this.op?"boolean":this.allsome?"boolean":this.op?"unknown":this.left.toType()},D.Op.prototype.toJS=function(t,r,n){function e(e){return e.toJS&&(e=e.toJS(t,r,n)),"y["+(i.push(e)-1)+"]"}function a(){return e(u.left)}function s(){return e(u.right)}var i=[],o=this.op,u=this;if("="===this.op?o="===":"<>"===this.op?o="!=":"OR"===this.op&&(o="||"),"->"===this.op){var c="("+a()+"||{})";if("string"==typeof this.right)h=c+'["'+this.right+'"]';else if("number"==typeof this.right)h=c+"["+this.right+"]";else if(this.right instanceof D.FuncValue){var l=[];if(this.right.args&&0!==this.right.args.length)l=this.right.args.map(e);h=c+"['"+this.right.funcid+"']("+l.join(",")+")"}else h=c+"["+s()+"]"}if("!"===this.op&&"string"==typeof this.right&&(h="alasql.databases[alasql.useid].objects["+a()+']["'+this.right+'"]'),"IS"===this.op&&(h="(("+a()+"==null) === ("+s()+"==null))"),"=="===this.op&&(h="alasql.utils.deepEqual("+a()+","+s()+")"),"==="!==this.op&&"!==="!==this.op||(h="("+("!==="===this.op?"!":"")+"(("+a()+").valueOf()===("+s()+").valueOf()))"),"!=="===this.op&&(h="(!alasql.utils.deepEqual("+a()+","+s()+"))"),"||"===this.op&&(h="(''+("+a()+"||'')+("+s()+'||""))'),"LIKE"===this.op||"NOT LIKE"===this.op){var h="("+("NOT LIKE"===this.op?"!":"")+"alasql.utils.like("+s()+","+a();this.escape&&(h+=","+e(this.escape)),h+="))"}if("REGEXP"===this.op&&(h="alasql.stdfn.REGEXP_LIKE("+a()+","+s()+")"),"GLOB"===this.op&&(h="alasql.utils.glob("+a()+","+s()+")"),"BETWEEN"===this.op||"NOT BETWEEN"===this.op){var d=a();h="("+("NOT BETWEEN"===this.op?"!":"")+"(("+e(this.right1)+"<="+d+") && ("+d+"<="+e(this.right2)+")))"}if("IN"===this.op&&(this.right instanceof D.Select?(h="(",h+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,"+t+"))",h+=".indexOf(",h+=a()+")>-1)"):h=Array.isArray(this.right)?"(["+this.right.map(e).join(",")+"].indexOf("+a()+")>-1)":"("+s()+".indexOf("+a()+")>-1)"),"NOT IN"===this.op&&(this.right instanceof D.Select?(h="(",h+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,p))",h+=".indexOf(",h+=a()+")<0)"):Array.isArray(this.right)?(h="(["+this.right.map(e).join(",")+"].indexOf(",h+=a()+")<0)"):(h="("+s()+".indexOf(",h+=a()+")==-1)")),"ALL"===this.allsome)if(this.right instanceof D.Select)h="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",h+=".every(function(b){return (",h+=a()+")"+o+"b})";else{if(!Array.isArray(this.right))throw new Error("NOT IN operator without SELECT");h=""+(1==this.right.length?e(this.right[0]):"["+this.right.map(e).join(",")+"]"),h+=".every(function(b){return (",h+=a()+")"+o+"b})"}if("SOME"===this.allsome||"ANY"===this.allsome)if(this.right instanceof D.Select)h="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",h+=".some(function(b){return (",h+=a()+")"+o+"b})";else{if(!Array.isArray(this.right))throw new Error("SOME/ANY operator without SELECT");h=""+(1==this.right.length?e(this.right[0]):"["+this.right.map(e).join(",")+"]"),h+=".some(function(b){return (",h+=a()+")"+o+"b})"}if("AND"===this.op){if(this.left.reduced){if(this.right.reduced)return"true";h=s()}else this.right.reduced&&(h=a());o="&&"}var f=h||"("+a()+o+s()+")",p="y=[("+i.join("), (")+")]";return"&&"===o||"||"===o||"IS"===o||"IS NULL"===o||"IS NOT NULL"===o?"("+p+", "+f+")":"("+p+", y.some(function(e){return e == null}) ? void 0 : "+f+")"},D.VarValue=function(e){return D.extend(this,e)},D.VarValue.prototype.toString=function(){return"@"+this.variable},D.VarValue.prototype.toType=function(){return"unknown"},D.VarValue.prototype.toJS=function(){return"alasql.vars['"+this.variable+"']"},D.NumValue=function(e){return D.extend(this,e)},D.NumValue.prototype.toString=function(){return this.value.toString()},D.NumValue.prototype.toType=function(){return"number"},D.NumValue.prototype.toJS=function(){return""+this.value},D.StringValue=function(e){return D.extend(this,e)},D.StringValue.prototype.toString=function(){return"'"+this.value.toString()+"'"},D.StringValue.prototype.toType=function(){return"string"},D.StringValue.prototype.toJS=function(){return"'"+p(this.value)+"'"},D.DomainValueValue=function(e){return D.extend(this,e)},D.DomainValueValue.prototype.toString=function(){return"VALUE"},D.DomainValueValue.prototype.toType=function(){return"object"},D.DomainValueValue.prototype.toJS=function(e,t,r){return e},D.ArrayValue=function(e){return D.extend(this,e)},D.ArrayValue.prototype.toString=function(){return"ARRAY[]"},D.ArrayValue.prototype.toType=function(){return"object"},D.ArrayValue.prototype.toJS=function(t,r,n){return"[("+this.value.map(function(e){return e.toJS(t,r,n)}).join("), (")+")]"},D.LogicValue=function(e){return D.extend(this,e)},D.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"},D.LogicValue.prototype.toType=function(){return"boolean"},D.LogicValue.prototype.toJS=function(){return this.value?"true":"false"},D.NullValue=function(e){return D.extend(this,e)},D.NullValue.prototype.toString=function(){return"NULL"},D.NullValue.prototype.toJS=function(){return"undefined"},D.ParamValue=function(e){return D.extend(this,e)},D.ParamValue.prototype.toString=function(){return"$"+this.param},D.ParamValue.prototype.toJS=function(){return"string"==typeof this.param?"params['"+this.param+"']":"params["+this.param+"]"},D.UniOp=function(e){return D.extend(this,e)},D.UniOp.prototype.toString=function(){var e;return e=void 0,"~"===this.op&&(e=this.op+this.right.toString()),"-"===this.op&&(e=this.op+this.right.toString()),"+"===this.op&&(e=this.op+this.right.toString()),"#"===this.op&&(e=this.op+this.right.toString()),"NOT"===this.op&&(e=this.op+"("+this.right.toString()+")"),null===this.op&&(e="("+this.right.toString()+")"),e||(e="("+this.right.toString()+")"),e},D.UniOp.prototype.findAggregator=function(e){this.right.findAggregator&&this.right.findAggregator(e)},D.UniOp.prototype.toType=function(){return"-"===this.op?"number":"+"===this.op?"number":"NOT"===this.op?"boolean":void 0},D.UniOp.prototype.toJS=function(e,t,r){return"~"===this.op?"(~("+this.right.toJS(e,t,r)+"))":"-"===this.op?"(-("+this.right.toJS(e,t,r)+"))":"+"===this.op?"("+this.right.toJS(e,t,r)+")":"NOT"===this.op?"!("+this.right.toJS(e,t,r)+")":"#"===this.op?this.right instanceof D.Column?"(alasql.databases[alasql.useid].objects['"+this.right.columnid+"'])":"(alasql.databases[alasql.useid].objects["+this.right.toJS(e,t,r)+"])":null==this.op?"("+this.right.toJS(e,t,r)+")":void 0},D.Column=function(e){return D.extend(this,e)},D.Column.prototype.toString=function(e){var t;return t=this.columnid==+this.columnid?"["+this.columnid+"]":this.columnid,this.tableid&&(t=+this.columnid===this.columnid?this.tableid+t:this.tableid+"."+t,this.databaseid&&(t=this.databaseid+"."+t)),this.alias&&!e&&(t+=" AS "+this.alias),t},D.Column.prototype.toJS=function(e,t,r){var n="";if(this.tableid||""!==t||r)if("g"===e)n="g['"+this.nick+"']";else if(this.tableid)n="_"!==this.columnid?e+"['"+this.tableid+"']['"+this.columnid+"']":"g"===e?"g['_']":e+"['"+this.tableid+"']";else if(r){var a=r[this.columnid];if("-"===a)throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables');n=a?"_"!==this.columnid?e+"['"+a+"']['"+this.columnid+"']":e+"['"+a+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']"}else n=-1===t?e+"['"+this.columnid+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']";else n="_"!==this.columnid?e+"['"+this.columnid+"']":"g"===e?"g['_']":e;return n},D.AggrValue=function(e){return D.extend(this,e)},D.AggrValue.prototype.toString=function(e){var t="";return"REDUCE"===this.aggregatorid?t+=this.funcid+"(":t+=this.aggregatorid+"(",this.distinct&&(t+="DISTINCT "),this.expression&&(t+=this.expression.toString()),t+=")",this.over&&(t+=" "+this.over.toString()),this.alias&&!e&&(t+=" AS "+this.alias),t},D.AggrValue.prototype.findAggregator=function(e){var t=p(this.toString())+":"+e.selectGroup.length;if(!(r=!1)){if(!this.nick){this.nick=t;for(var r=!1,n=0;ngi.MAXSQLCACHESIZE&&db.resetSqlCache(),db.sqlCacheSize++,db.sqlCache[a]=s,gi.res=s(e,t)},D.Select.prototype.Select=function(){var r=this;if(1>8&255]+H[e>>16&255]+H[e>>24&255]+"-"+H[255&t]+H[t>>8&255]+"-"+H[t>>16&15|64]+H[t>>24&255]+"-"+H[63&r|128]+H[r>>8&255]+"-"+H[r>>16&255]+H[r>>24&255]+H[255&n]+H[n>>8&255]+H[n>>16&255]+H[n>>24&255]},D.CaseValue=function(e){return D.extend(this,e)},D.CaseValue.prototype.toString=function(){var e="CASE ";return this.expression&&(e+=this.expression.toString()),this.whens&&(e+=this.whens.map(function(e){return" WHEN "+e.when.toString()+" THEN "+e.then.toString()}).join()),e+=" END"},D.CaseValue.prototype.findAggregator=function(t){this.expression&&this.expression.findAggregator&&this.expression.findAggregator(t),this.whens&&0",r+="table {border:1px black solid; border-collapse: collapse; border-spacing: 0px;}",r+="td,th {border:1px black solid; padding-left:5px; padding-right:5px}",r+="th {background-color: #EEE}",r+="",r+="";var e=[];for(var n in t[0])e.push(n);r+="#",e.forEach(function(e){r+=" "+e});for(var a=0,s=t.length;a"+(a+1),e.forEach(function(e){r+=" ",t[a][e]==+t[a][e]?(r+='',void 0===t[a][e]?r+="NULL":r+=t[a][e],r+="
"):void 0===t[a][e]?r+="NULL":"string"==typeof t[a][e]?r+=t[a][e]:r+=Y(t[a][e])});r+="
"}else r+=""+Y(t)+"
";return r}function Q(e,t,r){if(!(r<=0)){var n=(t-e.scrollTop)/r*10;setTimeout(function(){e.scrollTop!==t&&(e.scrollTop=e.scrollTop+n,Q(e,t,r-10))},10)}}function z(m,e,t,v,S,T){var A={};function y(e){return e&&!1===gi.options.casesensitive?e.toLowerCase():e}t=t||{},gi.utils.extend(A,t),void 0===A.headers&&(A.headers=!0),e=gi.utils.autoExtFilename(e,"xls",t),gi.utils.loadBinaryFile(e,!!v,function(e){if(e instanceof ArrayBuffer)var t=function(e){for(var t="",r=0,n=10240;r",e),Array.isArray(r)&&console.table?console.table(r):console.log(Y(r));else{var s;s="output"===a?document.getElementsByTagName("output")[0]:"string"==typeof a?document.getElementById(a):a;var i="";if("string"==typeof e&&gi.options.logprompt&&(i+=""+gi.pretty(e)+" "),Array.isArray(r))if(0===r.length)i+="[ ]
";else if("object"!=typeof r[0]||Array.isArray(r[0]))for(var o=0,u=r.length;o"+K(r[o])+"
";else i+=K(r);else i+=K(r);s.innerHTML+=i}},gi.clear=function(){var e=gi.options.logtarget;c.isNode||c.isMeteorServer?console.clear&&console.clear():("output"===e?document.getElementsByTagName("output")[0]:"string"==typeof e?document.getElementById(e):e).innerHTML=""},gi.write=function(e){var t=gi.options.logtarget;c.isNode||c.isMeteorServer?console.log&&console.log(e):("output"===t?document.getElementsByTagName("output")[0]:"string"==typeof t?document.getElementById(t):t).innerHTML+=e},gi.prompt=function(s,i,e){if(c.isNode)throw new Error("The prompt not realized for Node.js");var o=0;if("string"==typeof s&&(s=document.getElementById(s)),"string"==typeof i&&(i=document.getElementById(i)),i.textContent=gi.useid,e){gi.prompthistory.push(e),o=gi.prompthistory.length;try{var t=Date.now();gi.log(e),gi.write(''+(Date.now()-t)+" ms
")}catch(e){gi.write(""+olduseid+"> "+sql+"
"),gi.write(''+e+"
")}}var r=s.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;Q(document.getElementsByTagName("body")[0],r,500),s.onkeydown=function(e){if(13===e.which){var t=s.value,r=gi.useid;s.value="",gi.prompthistory.push(t),o=gi.prompthistory.length;try{var n=Date.now();gi.log(t),gi.write('
'+(Date.now()-n)+" ms
")}catch(e){gi.write(""+r+"> "+gi.pretty(t,!1)+"
"),gi.write(''+e+"
")}s.focus(),i.textContent=gi.useid;var a=s.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;Q(document.getElementsByTagName("body")[0],a,500)}else 38===e.which?(--o<0&&(o=0),gi.prompthistory[o]&&(s.value=gi.prompthistory[o],e.preventDefault())):40===e.which&&(++o>=gi.prompthistory.length?(o=gi.prompthistory.length,s.value=""):gi.prompthistory[o]&&(s.value=gi.prompthistory[o],e.preventDefault()))}},D.BeginTransaction=function(e){return D.extend(this,e)},D.BeginTransaction.prototype.toString=function(){return"BEGIN TRANSACTION"},D.BeginTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[gi.useid].engineid].begin(e,r):(r&&r(1),1)},D.CommitTransaction=function(e){return D.extend(this,e)},D.CommitTransaction.prototype.toString=function(){return"COMMIT TRANSACTION"},D.CommitTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[gi.useid].engineid].commit(e,r):(r&&r(1),1)},D.RollbackTransaction=function(e){return D.extend(this,e)},D.RollbackTransaction.prototype.toString=function(){return"ROLLBACK TRANSACTION"},D.RollbackTransaction.prototype.execute=function(e,t,r){return gi.databases[e].engineid?gi.engines[gi.databases[e].engineid].rollback(e,r):(r&&r(1),1)},gi.options.tsql&&(gi.stdfn.OBJECT_ID=function(e,t){void 0===t&&(t="T"),t=t.toUpperCase();var r=e.split("."),n=gi.useid,a=r[0];2==r.length&&(n=r[0],a=r[1]);var s=gi.databases[n].tables;for(var i in n=gi.databases[n].databaseid,s)if(i==a)return s[i].view&&"V"==t?n+"."+i:s[i].view||"T"!=t?void 0:n+"."+i}),gi.options.mysql,(gi.options.mysql||gi.options.sqlite)&&(gi.from.INFORMATION_SCHEMA=function(e,t,r,n,a){if("VIEWS"!=e&&"TABLES"!=e)throw new Error("Unknown INFORMATION_SCHEMA table");var s=[];for(var i in gi.databases){var o=gi.databases[i].tables;for(var u in o)(o[u].view&&"VIEWS"==e||!o[u].view&&"TABLES"==e)&&s.push({TABLE_CATALOG:i,TABLE_NAME:u})}return r&&(s=r(s,n,a)),s}),gi.options.postgres,gi.options.oracle,gi.options.sqlite,gi.into.SQL=function(e,t,r,n,a){var s;"object"==typeof e&&(t=e,e=void 0);var i={};if(gi.utils.extend(i,t),void 0===i.tableid)throw new Error("Table for INSERT TO is not defined.");var o="";0===n.length&&"object"==typeof r[0]&&(n=Object.keys(r[0]).map(function(e){return{columnid:e}}));for(var u=0,c=r.length;u"+d.sheetid+" \t\t",l+="",l+="",l+="",void 0!==d.caption){var e=d.caption;"string"==typeof e&&(e={title:e}),l+="",l+=e.title,l+=" "}void 0!==d.columns?r=d.columns:0==r.length&&0",r.forEach(function(e){l+=' '}),l+="",d.headers&&(l+="",l+="",r.forEach(function(e,t){l+="",void 0!==e.title&&("function"==typeof e.title?l+=e.title(d,e,t):l+=e.title),l+=" "}),l+=" ",l+=" ");l+="",t&&0d.limit)){l+="",r.forEach(function(e,t){var r={};g(r,d.cell),g(r,c.cell),void 0!==d.column&&g(r,d.column.cell),g(r,e.cell),d.cells&&d.cells[u]&&d.cells[u][t]&&g(r,d.cells[u][t]);var n=o[e.columnid];"function"==typeof r.value&&(n=r.value(n,d,o,e,r,u,t));var a=r.typeid;"function"==typeof a&&(a=a(n,d,o,e,r,u,t)),void 0===a&&("number"==typeof n?a="number":"string"==typeof n?a="string":"boolean"==typeof n?a="boolean":"object"==typeof n&&n instanceof Date&&(a="date"));var s="";"money"==a?s='mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;':"number"==a?s=" ":"date"==a?s='mso-number-format:"Short Date";':h.types&&h.types[a]&&h.types[a].typestyle&&(s=h.types[a].typestyle),l+="";var i=r.format;if(void 0===n)l+="";else if(void 0!==i)if("function"==typeof i)l+=i(n);else{if("string"!=typeof i)throw new Error("Unknown format type. Should be function or string");l+=n}else l+="number"==a||"date"==a?n.toString():"money"==a?(+n).toFixed(2):n;l+=" "}),l+=" "}});return l+=" ",l+="
",l+="",l+=""}();e=gi.utils.autoExtFilename(e,"xls",h);var i=gi.utils.saveFile(e,s);return n&&(i=n(i)),i},gi.into.XLSXML=function(e,b,t,r,n){b=b||{},"object"==typeof e&&(b=e,e=void 0);var c,l,h={};l=b&&b.sheets?(h=b.sheets,c=t,r):(h.Sheet1=b,c=[t],[r]),e=gi.utils.autoExtFilename(e,"xls",b);var a=gi.utils.saveFile(e,function(){var s="",d=" ",i={},o=62;function f(e){var t="";for(var r in e){for(var n in t+="<"+r,e[r])t+=" ","x:"==n.substr(0,2)?t+=n:t+="ss:",t+=n+'="'+e[r][n]+'"';t+="/>"}var a=E(t);return i[a]||(i[a]={styleid:o},s+='",o++),"s"+i[a].styleid}function e(t){try{return Object.values(t)}catch(e){return Object.keys(t).map(function(e){return t[e]})}}var t=0;for(var r in h){var p=h[r],n=void 0!==p.dataidx?p.dataidx:t++,a=e(c[n]),u=void 0;void 0!==p.columns?u=p.columns:(void 0===(u=l[n])||0==u.length&&0 \t \t\t\t',u.forEach(function(e,t){d+=' '}),p.headers&&(d+='',u.forEach(function(e,t){if(d+="',void 0!==e.title&&("function"==typeof e.title?d+=e.title(p,e,t):d+=e.title),d+=" | "}),d+="
"),a&&0p.limit)){var h={};if(g(h,p.row),p.rows&&p.rows[l]&&g(h,p.rows[l]),d+="",u.forEach(function(e,t){var r={};g(r,p.cell),g(r,h.cell),void 0!==p.column&&g(r,p.column.cell),g(r,e.cell),p.cells&&p.cells[l]&&p.cells[l][t]&&g(r,p.cells[l][t]);var n=c[e.columnid];"function"==typeof r.value&&(n=r.value(n,p,c,e,r,l,t));var a=r.typeid;"function"==typeof a&&(a=a(n,p,c,e,r,l,t)),void 0===a&&("number"==typeof n?a="number":"string"==typeof n?a="string":"boolean"==typeof n?a="boolean":"object"==typeof n&&n instanceof Date&&(a="date"));var s="String";"number"==a?s="Number":"date"==a&&(s="Date");var i="";"money"==a?i='mso-number-format:"\\#\\,\\#\\#0\\\\ _р_\\.";white-space:normal;':"number"==a?i=" ":"date"==a?i='mso-number-format:"Short Date";':b.types&&b.types[a]&&b.types[a].typestyle&&(i=b.types[a].typestyle),i=i||'mso-number-format:"\\@";',d+="",d+='';var u=r.format;if(void 0===n)d+="";else if(void 0!==u)if("function"==typeof u)d+=u(n);else{if("string"!=typeof u)throw new Error("Unknown format type. Should be function or string");d+=n}else d+="number"==a||"date"==a?n.toString():"money"==a?(+n).toFixed(2):n;d+=" | "}),d+="
"}}),d+="
"}return' \t\t \t\t \t\t \t\t \t\t \t\t \t\t \t\t 0 \t\t \t\t \t\t '+s+(d+=" ")}());return n&&(a=n(a)),a},gi.into.XLSX=function(n,r,e,t,a){var s=1;N(t,[{columnid:"_"}])&&(e=e.map(function(e){return e._}),t=void 0),n=gi.utils.autoExtFilename(n,"xlsx",r);var i=C();"object"==typeof n&&(r=n,n=void 0);var g={SheetNames:[],Sheets:{}};return r.sourcefilename?gi.utils.loadBinaryFile(r.sourcefilename,!!a,function(e){g=i.read(e,{type:"binary"}),o()}):o(),a&&(s=a(s)),s;function o(){"object"==typeof r&&Array.isArray(r)?e&&0/g,""),{declaration:function(){if(o(/^<\?xml\s*/)){for(var e={attributes:{}};!u()&&!c("?>");){var t=i();if(!t)return e;e.attributes[t.name]=t.value}return o(/\?>\s*/),e}}(),root:function e(){var t=o(/^<([\w-:.]+)\s*/);if(t){for(var r,n={name:t[1],attributes:{},children:[]};!(u()||c(">")||c("?>")||c("/>"));){var a=i();if(!a)return n;n.attributes[a.name]=a.value}if(o(/^\s*\/>\s*/))return n;for(o(/\??>\s*/),n.content=s();r=e();)n.children.push(r);return o(/^<\/[\w-:.]+>\s*/),n}}()};function s(){var e=o(/^([^<]*)/);return e?e[1]:""}function i(){var e=o(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(e)return{name:e[1],value:function(e){return e.replace(/^['"]|['"]$/g,"")}(e[2])}}function o(e){var t=r.match(e);if(t)return r=r.slice(t[0].length),t}function u(){return 0==r.length}function c(e){return 0==r.indexOf(e)}}(e).root,r&&(s=r(s,n,a))}),s},gi.from.GEXF=function(e,t,r,n,a){var s;return gi("SEARCH FROM XML("+e+")",[],function(e){s=e,r&&(s=r(s))}),s},D.Print=function(e){return D.extend(this,e)},D.Print.prototype.toString=function(){var e="PRINT";return this.statement&&(e+=" "+this.statement.toString()),e},D.Print.prototype.execute=function(e,r,t){var n=this,a=1;if(gi.precompile(this,e,r),this.exprs&&0=0.0.4"
}
}
}
},
+ "es5-ext": {
+ "version": "0.10.50",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
+ "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "^1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
"es6-promise": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz",
- "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ=="
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
+ "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q=="
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.14",
+ "es6-iterator": "^2.0.1",
+ "es6-symbol": "^3.1.1"
+ }
},
"escape-string-regexp": {
"version": "1.0.5",
@@ -1597,10 +2151,10 @@
"integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
"dev": true,
"requires": {
- "esprima": "1.1.1",
- "estraverse": "1.5.1",
- "esutils": "1.0.0",
- "source-map": "0.1.43"
+ "esprima": "~1.1.1",
+ "estraverse": "~1.5.0",
+ "esutils": "~1.0.0",
+ "source-map": "~0.1.33"
},
"dependencies": {
"esprima": {
@@ -1616,63 +2170,55 @@
"dev": true,
"optional": true,
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
}
}
},
"eslint": {
- "version": "4.19.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
- "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
- "dev": true,
- "requires": {
- "ajv": "5.5.2",
- "babel-code-frame": "6.26.0",
- "chalk": "2.4.1",
- "concat-stream": "1.6.2",
- "cross-spawn": "5.1.0",
- "debug": "3.1.0",
- "doctrine": "2.1.0",
- "eslint-scope": "3.7.1",
- "eslint-visitor-keys": "1.0.0",
- "espree": "3.5.4",
- "esquery": "1.0.1",
- "esutils": "2.0.2",
- "file-entry-cache": "2.0.0",
- "functional-red-black-tree": "1.0.1",
- "glob": "7.1.2",
- "globals": "11.5.0",
- "ignore": "3.3.8",
- "imurmurhash": "0.1.4",
- "inquirer": "3.3.0",
- "is-resolvable": "1.1.0",
- "js-yaml": "3.10.0",
- "json-stable-stringify-without-jsonify": "1.0.1",
- "levn": "0.3.0",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1",
- "natural-compare": "1.4.0",
- "optionator": "0.8.2",
- "path-is-inside": "1.0.2",
- "pluralize": "7.0.0",
- "progress": "2.0.0",
- "regexpp": "1.1.0",
- "require-uncached": "1.0.3",
- "semver": "5.4.1",
- "strip-ansi": "4.0.0",
- "strip-json-comments": "2.0.1",
- "table": "4.0.2",
- "text-table": "0.2.0"
+ "version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.9.1",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^4.0.3",
+ "eslint-utils": "^1.3.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^5.0.1",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.7.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^6.2.2",
+ "js-yaml": "^3.13.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.11",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^5.5.1",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "^2.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0"
},
"dependencies": {
- "ansi-escapes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
- "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
- "dev": true
- },
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
@@ -1685,46 +2231,25 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "1.9.1"
+ "color-convert": "^1.9.0"
}
},
"chalk": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
- }
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "dev": true,
- "requires": {
- "restore-cursor": "2.0.0"
- }
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "2.0.2"
- }
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
},
"esutils": {
"version": "2.0.2",
@@ -1732,126 +2257,29 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true
},
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
- }
- },
- "globals": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz",
- "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==",
- "dev": true
- },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "inquirer": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
- "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "3.1.0",
- "chalk": "2.4.1",
- "cli-cursor": "2.1.0",
- "cli-width": "2.2.0",
- "external-editor": "2.2.0",
- "figures": "2.0.0",
- "lodash": "4.17.4",
- "mute-stream": "0.0.7",
- "run-async": "2.3.0",
- "rx-lite": "4.0.8",
- "rx-lite-aggregates": "4.0.8",
- "string-width": "2.1.1",
- "strip-ansi": "4.0.0",
- "through": "2.3.8"
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
}
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
- "dev": true
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
- "requires": {
- "mimic-fn": "1.1.0"
- }
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
- "requires": {
- "onetime": "2.0.1",
- "signal-exit": "3.0.2"
- }
- },
- "run-async": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
- "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "dev": true,
- "requires": {
- "is-promise": "2.1.0"
- }
- },
- "rx-lite": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
- "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
+ "brace-expansion": "^1.1.7"
}
},
"strip-ansi": {
@@ -1860,39 +2288,35 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
},
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
"supports-color": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
- "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
},
"eslint-config-airbnb-base": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz",
- "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz",
+ "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==",
"dev": true,
"requires": {
- "eslint-restricted-globals": "0.1.1"
+ "eslint-restricted-globals": "^0.1.1",
+ "object.assign": "^4.1.0",
+ "object.entries": "^1.0.4"
}
},
"eslint-config-standard": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz",
- "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz",
+ "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==",
"dev": true
},
"eslint-import-resolver-node": {
@@ -1901,8 +2325,8 @@
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "resolve": "1.7.1"
+ "debug": "^2.6.9",
+ "resolve": "^1.5.0"
},
"dependencies": {
"debug": {
@@ -1914,155 +2338,159 @@
"ms": "2.0.0"
}
},
- "resolve": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
- "dev": true,
- "requires": {
- "path-parse": "1.0.5"
- }
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
"eslint-module-utils": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
- "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
- "dev": true,
- "requires": {
- "debug": "2.6.8",
- "pkg-dir": "1.0.0"
- }
- },
- "eslint-plugin-import": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz",
- "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz",
+ "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==",
"dev": true,
"requires": {
- "contains-path": "0.1.0",
- "debug": "2.6.8",
- "doctrine": "1.5.0",
- "eslint-import-resolver-node": "0.3.2",
- "eslint-module-utils": "2.2.0",
- "has": "1.0.3",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "read-pkg-up": "2.0.0",
- "resolve": "1.7.1"
+ "debug": "^2.6.8",
+ "pkg-dir": "^2.0.0"
},
"dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "2.0.0"
- }
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "ms": "2.0.0"
}
},
- "path-type": {
+ "ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-es": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz",
+ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==",
+ "dev": true,
+ "requires": {
+ "eslint-utils": "^1.3.0",
+ "regexpp": "^2.0.1"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz",
+ "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.0.3",
+ "contains-path": "^0.1.0",
+ "debug": "^2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "^0.3.2",
+ "eslint-module-utils": "^2.4.0",
+ "has": "^1.0.3",
+ "lodash": "^4.17.11",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^2.0.0",
+ "resolve": "^1.10.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "pify": "2.3.0"
+ "ms": "2.0.0"
}
},
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
"dev": true,
"requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
}
},
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
},
- "resolve": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "path-parse": "1.0.5"
+ "brace-expansion": "^1.1.7"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
}
},
"eslint-plugin-node": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz",
- "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz",
+ "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==",
"dev": true,
"requires": {
- "ignore": "3.3.8",
- "minimatch": "3.0.4",
- "resolve": "1.4.0",
- "semver": "5.4.1"
+ "eslint-plugin-es": "^1.3.1",
+ "eslint-utils": "^1.3.1",
+ "ignore": "^5.0.2",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.0"
},
"dependencies": {
+ "ignore": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.1.tgz",
+ "integrity": "sha512-DWjnQIFLenVrwyRCKZT+7a7/U4Cqgar4WG8V++K3hw+lrW1hc/SIwdiGmtxKCVACmHULTuGeBbHJmbwW7/sAvA==",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "brace-expansion": "^1.1.7"
}
}
}
},
"eslint-plugin-promise": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz",
- "integrity": "sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.1.1.tgz",
+ "integrity": "sha512-faAHw7uzlNPy7b45J1guyjazw28M+7gJokKUjC5JSFoYfUEyy6Gw/i7YQvmv2Yk00sUjWcmzXQLpU1Ki/C2IZQ==",
"dev": true
},
"eslint-plugin-standard": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz",
- "integrity": "sha512-fVcdyuKRr0EZ4fjWl3c+gp1BANFJD1+RaWa2UPYfMZ6jCtp5RG00kSaXnK/dE5sYzt4kaWJ9qdxqUfc0d9kX0w==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz",
+ "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==",
"dev": true
},
"eslint-restricted-globals": {
@@ -2072,13 +2500,13 @@
"dev": true
},
"eslint-scope": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
- "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
"dev": true,
"requires": {
- "esrecurse": "4.2.1",
- "estraverse": "4.2.0"
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
},
"dependencies": {
"estraverse": {
@@ -2089,6 +2517,12 @@
}
}
},
+ "eslint-utils": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
+ "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
+ "dev": true
+ },
"eslint-visitor-keys": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
@@ -2096,13 +2530,14 @@
"dev": true
},
"espree": {
- "version": "3.5.4",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
- "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
"dev": true,
"requires": {
- "acorn": "5.6.2",
- "acorn-jsx": "3.0.1"
+ "acorn": "^6.0.7",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
}
},
"esprima-fb": {
@@ -2117,7 +2552,7 @@
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
"dev": true,
"requires": {
- "estraverse": "4.2.0"
+ "estraverse": "^4.0.0"
},
"dependencies": {
"estraverse": {
@@ -2134,7 +2569,7 @@
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"dev": true,
"requires": {
- "estraverse": "4.2.0"
+ "estraverse": "^4.1.0"
},
"dependencies": {
"estraverse": {
@@ -2158,38 +2593,30 @@
"dev": true
},
"execa": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz",
- "integrity": "sha1-4urUcsLDGq1vc/GslW7vReEjIMs=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"dev": true,
"requires": {
- "cross-spawn-async": "2.2.5",
- "npm-run-path": "1.0.0",
- "object-assign": "4.1.1",
- "path-key": "1.0.0",
- "strip-eof": "1.0.0"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
},
"dependencies": {
- "npm-run-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz",
- "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=",
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "path-key": "1.0.0"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "path-key": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz",
- "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=",
- "dev": true
}
}
},
@@ -2202,58 +2629,173 @@
"exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI="
+ "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
},
"expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "requires": {
- "is-posix-bracket": "0.1.1"
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
"dev": true,
"requires": {
- "fill-range": "2.2.3"
+ "homedir-polyfill": "^1.0.1"
}
},
- "expand-tilde": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
- "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dev": true,
"requires": {
- "os-homedir": "1.0.2"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
}
},
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
- },
"external-editor": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
- "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
+ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
"dev": true,
"requires": {
- "chardet": "0.4.2",
- "iconv-lite": "0.4.23",
- "tmp": "0.0.33"
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
}
},
"extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "requires": {
- "is-extglob": "1.0.0"
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
}
},
"extsprintf": {
@@ -2267,14 +2809,14 @@
"integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "time-stamp": "1.1.0"
+ "chalk": "^1.1.1",
+ "time-stamp": "^1.0.0"
}
},
"fast-deep-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
},
"fast-json-stable-stringify": {
"version": "2.0.0",
@@ -2288,148 +2830,212 @@
"dev": true
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
+ "escape-string-regexp": "^1.0.5"
}
},
"file-entry-cache": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
- "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
"dev": true,
"requires": {
- "flat-cache": "1.3.0",
- "object-assign": "4.1.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
+ "flat-cache": "^2.0.1"
}
},
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true
- },
"fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "1.1.7",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
}
},
- "find-index": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
- "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
- "dev": true
- },
"find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
+ "locate-path": "^3.0.0"
+ },
+ "dependencies": {
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ }
}
},
"findup-sync": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
- "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
"dev": true,
"requires": {
- "detect-file": "0.1.0",
- "is-glob": "2.0.1",
- "micromatch": "2.3.11",
- "resolve-dir": "0.1.1"
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
}
},
"fined": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
- "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
"dev": true,
"requires": {
- "expand-tilde": "2.0.2",
- "is-plain-object": "2.0.4",
- "object.defaults": "1.1.0",
- "object.pick": "1.3.0",
- "parse-filepath": "1.0.1"
- },
- "dependencies": {
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
- "dev": true,
- "requires": {
- "homedir-polyfill": "1.0.1"
- }
- }
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
}
},
- "first-chunk-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
- "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
- "dev": true
- },
"flagged-respawn": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz",
- "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
"dev": true
},
- "flat-cache": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
- "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "flat": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
"dev": true,
"requires": {
- "circular-json": "0.3.3",
- "del": "2.2.2",
- "graceful-fs": "4.1.11",
- "write": "0.2.1"
+ "is-buffer": "~2.0.3"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
+ "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
+ "dev": true
+ }
}
},
- "for-in": {
- "version": "1.0.2",
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
+ "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
"dev": true
},
"for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
"dev": true,
"requires": {
- "for-in": "1.0.2"
+ "for-in": "^1.0.1"
}
},
"forever-agent": {
@@ -2438,27 +3044,593 @@
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
- "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
+ "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fs-mkdirp-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
+ "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "through2": "^2.0.3"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minipass": {
+ "version": "2.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.7.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
}
},
- "fs-exists-sync": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
- "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -2471,19 +3643,10 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
- "gaze": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
- "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
- "dev": true,
- "requires": {
- "globule": "0.1.0"
- }
- },
"get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-stdin": {
"version": "4.0.1",
@@ -2497,105 +3660,140 @@
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
"dev": true
},
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"giturl": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/giturl/-/giturl-1.0.0.tgz",
- "integrity": "sha1-lzKoHp4lxFeiLw4socnFHbu1Ml8=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/giturl/-/giturl-1.0.1.tgz",
+ "integrity": "sha512-wQourBdI13n8tbjcZTDl6k+ZrCRMU6p9vfp9jknZq+zfWc8xXNztpZFM4XkPHVzHcMSUZxEMYYKZjIGkPlei6Q==",
"dev": true
},
"glob": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
- "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "2.0.10",
- "once": "1.3.3"
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "dev": true,
- "requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
}
},
"glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
"dev": true,
"requires": {
- "is-glob": "2.0.1"
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
}
},
"glob-stream": {
- "version": "3.1.18",
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
- "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
- "dev": true,
- "requires": {
- "glob": "4.5.3",
- "glob2base": "0.0.12",
- "minimatch": "2.0.10",
- "ordered-read-streams": "0.1.0",
- "through2": "0.6.5",
- "unique-stream": "1.0.0"
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "dev": true,
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
"readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "readable-stream": "1.0.34",
- "xtend": "4.0.1"
+ "safe-buffer": "~5.1.0"
}
}
}
},
"glob-watcher": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
- "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
- "dev": true,
- "requires": {
- "gaze": "0.5.2"
- }
- },
- "glob2base": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
- "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz",
+ "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==",
"dev": true,
"requires": {
- "find-index": "0.1.1"
+ "anymatch": "^2.0.0",
+ "async-done": "^1.2.0",
+ "chokidar": "^2.0.0",
+ "is-negated-glob": "^1.0.0",
+ "just-debounce": "^1.0.0",
+ "object.defaults": "^1.1.0"
}
},
"global-dirs": {
@@ -2604,35 +3802,37 @@
"integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
"dev": true,
"requires": {
- "ini": "1.3.4"
+ "ini": "^1.3.4"
}
},
"global-modules": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
- "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
"requires": {
- "global-prefix": "0.1.5",
- "is-windows": "0.2.0"
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
}
},
"global-prefix": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
- "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
"dev": true,
"requires": {
- "homedir-polyfill": "1.0.1",
- "ini": "1.3.4",
- "is-windows": "0.2.0",
- "which": "1.3.0"
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
}
},
"globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
"globby": {
@@ -2641,12 +3841,12 @@
"integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=",
"dev": true,
"requires": {
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "glob": "6.0.4",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^6.0.1",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
},
"dependencies": {
"glob": {
@@ -2655,155 +3855,310 @@
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"dev": true,
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "2.0.10",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "glogg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+ "dev": true,
+ "requires": {
+ "sparkles": "^1.0.0"
+ }
+ },
+ "got": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
+ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
+ "dev": true,
+ "requires": {
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "gulp": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.1.tgz",
+ "integrity": "sha512-yDVtVunxrAdsk7rIV/b7lVSBifPN1Eqe6wTjsESGrFcL+MEVzaaeNTkpUuGTUptloSOU+8oJm/lBJbgPV+tMAw==",
+ "dev": true,
+ "requires": {
+ "glob-watcher": "^5.0.3",
+ "gulp-cli": "^2.2.0",
+ "undertaker": "^1.2.1",
+ "vinyl-fs": "^3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "dev": true,
+ "requires": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "gulp-cli": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz",
+ "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^1.0.1",
+ "archy": "^1.0.0",
+ "array-sort": "^1.0.0",
+ "color-support": "^1.1.3",
+ "concat-stream": "^1.6.0",
+ "copy-props": "^2.0.1",
+ "fancy-log": "^1.3.2",
+ "gulplog": "^1.0.0",
+ "interpret": "^1.1.0",
+ "isobject": "^3.0.1",
+ "liftoff": "^3.1.0",
+ "matchdep": "^2.0.0",
+ "mute-stdout": "^1.0.0",
+ "pretty-hrtime": "^1.0.0",
+ "replace-homedir": "^1.0.0",
+ "semver-greatest-satisfied-range": "^1.1.0",
+ "v8flags": "^3.0.1",
+ "yargs": "^7.1.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
- }
- },
- "globule": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
- "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
- "dev": true,
- "requires": {
- "glob": "3.1.21",
- "lodash": "1.0.2",
- "minimatch": "0.2.14"
- },
- "dependencies": {
- "glob": {
- "version": "3.1.21",
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"dev": true,
"requires": {
- "graceful-fs": "1.2.3",
- "inherits": "1.0.2",
- "minimatch": "0.2.14"
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
}
},
- "graceful-fs": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
- "inherits": {
+ "string-width": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
"dev": true
},
- "lodash": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
- "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
"dev": true
},
- "minimatch": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
"requires": {
- "lru-cache": "2.7.3",
- "sigmund": "1.0.1"
+ "camelcase": "^3.0.0"
}
}
}
},
- "glogg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
- "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
- "dev": true,
- "requires": {
- "sparkles": "1.0.0"
- }
- },
- "got": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
- "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=",
- "dev": true,
- "requires": {
- "duplexify": "3.5.1",
- "infinity-agent": "2.0.3",
- "is-redirect": "1.0.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.0",
- "nested-error-stacks": "1.0.2",
- "object-assign": "3.0.0",
- "prepend-http": "1.0.4",
- "read-all-stream": "3.1.0",
- "timed-out": "2.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
- "dev": true
- },
- "growl": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
- "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
- "dev": true
- },
- "gulp": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
- "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
- "dev": true,
- "requires": {
- "archy": "1.0.0",
- "chalk": "1.1.3",
- "deprecated": "0.0.1",
- "gulp-util": "3.0.8",
- "interpret": "1.0.4",
- "liftoff": "2.3.0",
- "minimist": "1.2.0",
- "orchestrator": "0.3.8",
- "pretty-hrtime": "1.0.3",
- "semver": "4.3.6",
- "tildify": "1.2.0",
- "v8flags": "2.1.1",
- "vinyl-fs": "0.3.14"
- },
- "dependencies": {
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
- "dev": true
- }
- }
- },
"gulp-concat": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz",
"integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=",
"dev": true,
"requires": {
- "concat-with-sourcemaps": "1.0.4",
- "through2": "2.0.3",
- "vinyl": "2.1.0"
+ "concat-with-sourcemaps": "^1.0.0",
+ "through2": "^2.0.0",
+ "vinyl": "^2.0.0"
},
"dependencies": {
"clone": {
@@ -2830,12 +4185,12 @@
"integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=",
"dev": true,
"requires": {
- "clone": "2.1.1",
- "clone-buffer": "1.0.0",
- "clone-stats": "1.0.0",
- "cloneable-readable": "1.0.0",
- "remove-trailing-separator": "1.1.0",
- "replace-ext": "1.0.0"
+ "clone": "^2.1.1",
+ "clone-buffer": "^1.0.0",
+ "clone-stats": "^1.0.0",
+ "cloneable-readable": "^1.0.0",
+ "remove-trailing-separator": "^1.0.1",
+ "replace-ext": "^1.0.0"
}
}
}
@@ -2846,23 +4201,44 @@
"integrity": "sha1-fl6Zd4R2h4NFNggDyo+LEniwxT4=",
"dev": true,
"requires": {
- "bufferstreams": "1.1.3",
- "es3-safe-recast": "2.0.2",
- "gulp-util": "3.0.8",
- "recast": "0.10.43",
- "through2": "2.0.3",
- "vinyl-sourcemaps-apply": "0.1.4"
+ "bufferstreams": "^1.0.2",
+ "es3-safe-recast": "^2.0.1",
+ "gulp-util": "^3.0.1",
+ "recast": "^0.10.12",
+ "through2": "^2.0.0",
+ "vinyl-sourcemaps-apply": "^0.1.4"
}
},
"gulp-exec": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-2.1.3.tgz",
- "integrity": "sha1-RgpOyN+GhB0XOLx0lYxo5XaTQtk=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/gulp-exec/-/gulp-exec-3.0.2.tgz",
+ "integrity": "sha512-74sde0n+pQo/Jbe5qsk0sPC4afjnB7VHDUZd4BrRTLt6lsNU451N+kSvCOoSn6q0iqS9ztT1uy8ZE/FRqmXKeQ==",
"dev": true,
"requires": {
- "gulp-util": "3.0.8",
- "gulplog": "1.0.0",
- "through2": "2.0.3"
+ "lodash.template": "^4.4.0",
+ "plugin-error": "^0.1.2",
+ "through2": "^2.0.3"
+ },
+ "dependencies": {
+ "lodash.template": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "~3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "~3.0.0"
+ }
+ }
}
},
"gulp-jison": {
@@ -2871,9 +4247,9 @@
"integrity": "sha1-OoH9tcWNQHCVeNwIGD+jikESqkk=",
"dev": true,
"requires": {
- "gulp-util": "3.0.8",
- "jison": "0.4.18",
- "through2": "0.6.5"
+ "gulp-util": "~3.0.4",
+ "jison": "~0.4.15",
+ "through2": "~0.6.3"
},
"dependencies": {
"readable-stream": {
@@ -2882,10 +4258,10 @@
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
}
},
"through2": {
@@ -2894,27 +4270,27 @@
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
"dev": true,
"requires": {
- "readable-stream": "1.0.34",
- "xtend": "4.0.1"
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
}
}
}
},
"gulp-rename": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
- "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz",
+ "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
"dev": true
},
"gulp-replace": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz",
- "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz",
+ "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==",
"dev": true,
"requires": {
- "istextorbinary": "1.0.2",
- "readable-stream": "2.3.3",
- "replacestream": "4.0.3"
+ "istextorbinary": "2.2.1",
+ "readable-stream": "^2.0.1",
+ "replacestream": "^4.0.0"
},
"dependencies": {
"isarray": {
@@ -2923,113 +4299,192 @@
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true
},
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
"readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "~5.1.0"
}
}
}
},
"gulp-shell": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.6.3.tgz",
- "integrity": "sha1-Lqpu3/+ovf96jwufmFKHbzMzHGs=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.7.0.tgz",
+ "integrity": "sha512-rpMbI6+b9LZNLB+KkOeqWynLdqVtypy8v68spDVjvMg1cVaVhNQILYVXPvmeH/KtcrPv4JLmoEJeElEB6/IvcA==",
"dev": true,
"requires": {
- "async": "2.5.0",
- "gulp-util": "3.0.8",
- "lodash": "4.17.4",
- "through2": "2.0.3"
- }
- },
- "gulp-uglify": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-2.1.2.tgz",
- "integrity": "sha1-bbhbHQ7mPRgFhZK2WGSdZcLsRUE=",
- "dev": true,
- "requires": {
- "gulplog": "1.0.0",
- "has-gulplog": "0.1.0",
- "lodash": "4.17.4",
- "make-error-cause": "1.2.2",
- "through2": "2.0.3",
- "uglify-js": "2.8.29",
- "uglify-save-license": "0.4.1",
- "vinyl-sourcemaps-apply": "0.2.1"
+ "async": "^2.6.2",
+ "chalk": "^2.4.2",
+ "fancy-log": "^1.3.3",
+ "lodash.template": "^4.4.0",
+ "plugin-error": "^1.0.1",
+ "through2": "^3.0.1"
},
"dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "dev": true,
+ "requires": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "lodash.template": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
"dev": true,
"requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
+ "lodash._reinterpolate": "~3.0.0",
+ "lodash.templatesettings": "^4.0.0"
}
},
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
"dev": true,
"requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "lodash._reinterpolate": "~3.0.0"
}
},
- "vinyl-sourcemaps-apply": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
- "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
+ "plugin-error": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
+ "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
"dev": true,
"requires": {
- "source-map": "0.5.7"
+ "ansi-colors": "^1.0.1",
+ "arr-diff": "^4.0.0",
+ "arr-union": "^3.1.0",
+ "extend-shallow": "^3.0.2"
}
},
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "readable-stream": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
+ "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
+ "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2 || 3"
+ }
+ }
+ }
+ },
+ "gulp-uglify": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz",
+ "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==",
+ "dev": true,
+ "requires": {
+ "array-each": "^1.0.1",
+ "extend-shallow": "^3.0.2",
+ "gulplog": "^1.0.0",
+ "has-gulplog": "^0.1.0",
+ "isobject": "^3.0.1",
+ "make-error-cause": "^1.1.1",
+ "safe-buffer": "^5.1.2",
+ "through2": "^2.0.0",
+ "uglify-js": "^3.0.5",
+ "vinyl-sourcemaps-apply": "^0.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "vinyl-sourcemaps-apply": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
+ "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
"dev": true,
"requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
+ "source-map": "^0.5.1"
}
}
}
@@ -3040,24 +4495,24 @@
"integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
"dev": true,
"requires": {
- "array-differ": "1.0.0",
- "array-uniq": "1.0.3",
- "beeper": "1.1.1",
- "chalk": "1.1.3",
- "dateformat": "2.2.0",
- "fancy-log": "1.3.0",
- "gulplog": "1.0.0",
- "has-gulplog": "0.1.0",
- "lodash._reescape": "3.0.0",
- "lodash._reevaluate": "3.0.0",
- "lodash._reinterpolate": "3.0.0",
- "lodash.template": "3.6.2",
- "minimist": "1.2.0",
- "multipipe": "0.1.2",
- "object-assign": "3.0.0",
+ "array-differ": "^1.0.0",
+ "array-uniq": "^1.0.2",
+ "beeper": "^1.0.0",
+ "chalk": "^1.0.0",
+ "dateformat": "^2.0.0",
+ "fancy-log": "^1.1.0",
+ "gulplog": "^1.0.0",
+ "has-gulplog": "^0.1.0",
+ "lodash._reescape": "^3.0.0",
+ "lodash._reevaluate": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.template": "^3.0.0",
+ "minimist": "^1.1.0",
+ "multipipe": "^0.1.2",
+ "object-assign": "^3.0.0",
"replace-ext": "0.0.1",
- "through2": "2.0.3",
- "vinyl": "0.5.3"
+ "through2": "^2.0.0",
+ "vinyl": "^0.5.0"
}
},
"gulplog": {
@@ -3066,95 +4521,26 @@
"integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
"dev": true,
"requires": {
- "glogg": "1.0.0"
+ "glogg": "^1.0.0"
}
},
"handlebars": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
- "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
+ "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
"dev": true,
"requires": {
- "async": "1.5.2",
- "optimist": "0.6.1",
- "source-map": "0.4.4",
- "uglify-js": "2.8.29"
+ "neo-async": "^2.6.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
},
"dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
- },
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true,
- "optional": true
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "dev": true,
- "optional": true,
- "requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
- }
- },
"source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "dev": true,
- "optional": true,
- "requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
- "optional": true
- }
- }
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true,
- "optional": true
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "dev": true,
- "optional": true,
- "requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
- }
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
}
}
},
@@ -3164,12 +4550,12 @@
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
- "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"requires": {
- "ajv": "5.5.2",
- "har-schema": "2.0.0"
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
}
},
"has": {
@@ -3178,7 +4564,7 @@
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"requires": {
- "function-bind": "1.1.1"
+ "function-bind": "^1.1.1"
}
},
"has-ansi": {
@@ -3187,7 +4573,7 @@
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"has-flag": {
@@ -3202,81 +4588,157 @@
"integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
"dev": true,
"requires": {
- "sparkles": "1.0.0"
+ "sparkles": "^1.0.0"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
}
},
- "hawk": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
- "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
"requires": {
- "boom": "4.3.1",
- "cryptiles": "3.1.2",
- "hoek": "4.2.0",
- "sntp": "2.1.0"
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
"he": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
- "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true
},
"highlight-es": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.1.tgz",
- "integrity": "sha1-O7AesfIGLdqrcviyN2ajv4wadx8=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz",
+ "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "is-es2016-keyword": "1.0.0",
- "js-tokens": "3.0.2"
+ "chalk": "^2.4.0",
+ "is-es2016-keyword": "^1.0.0",
+ "js-tokens": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
- "hoek": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
- "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ=="
- },
"homedir-polyfill": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
- "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
- "parse-passwd": "1.0.0"
+ "parse-passwd": "^1.0.0"
}
},
"hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw="
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "1.0.0",
- "jsprim": "1.4.1",
- "sshpk": "1.13.1"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz",
- "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
+ "import-fresh": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz",
+ "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
"import-lazy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
@@ -3295,23 +4757,17 @@
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
"requires": {
- "repeating": "2.0.1"
+ "repeating": "^2.0.0"
}
},
- "infinity-agent": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
- "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=",
- "dev": true
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
- "once": "1.3.3",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -3321,66 +4777,166 @@
"dev": true
},
"ini": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
- "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
"inquirer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
- "dev": true,
- "requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
- "cli-width": "2.2.0",
- "figures": "1.7.0",
- "lodash": "4.17.4",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "through": "2.3.8"
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz",
+ "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.11",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"interpret": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz",
- "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
"dev": true
},
"invariant": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"dev": true,
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
},
"invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
},
"is-absolute": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz",
- "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "dev": true,
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "is-relative": "0.2.1",
- "is-windows": "0.2.0"
+ "kind-of": "^3.0.2"
}
},
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
},
"is-buffer": {
"version": "1.1.5",
@@ -3388,36 +4944,53 @@
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
"dev": true
},
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "dev": true,
"requires": {
- "builtin-modules": "1.1.1"
+ "ci-info": "^1.5.0"
}
},
- "is-ci": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
- "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
"requires": {
- "ci-info": "1.1.2"
+ "kind-of": "^3.0.2"
}
},
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
"dev": true
},
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-primitive": "2.0.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
}
},
"is-es2016-keyword": {
@@ -3433,9 +5006,9 @@
"dev": true
},
"is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
"is-finite": {
@@ -3444,24 +5017,21 @@
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "1.0.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^2.1.1"
}
},
"is-installed-globally": {
@@ -3470,10 +5040,16 @@
"integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
"dev": true,
"requires": {
- "global-dirs": "0.1.1",
- "is-path-inside": "1.0.1"
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
}
},
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
+ "dev": true
+ },
"is-npm": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
@@ -3481,12 +5057,12 @@
"dev": true
},
"is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"is-obj": {
@@ -3495,65 +5071,24 @@
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
"dev": true
},
- "is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
- "dev": true
- },
- "is-path-in-cwd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
- "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
- "dev": true,
- "requires": {
- "is-path-inside": "1.0.1"
- }
- },
"is-path-inside": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"dev": true,
"requires": {
- "path-is-inside": "1.0.2"
+ "path-is-inside": "^1.0.1"
}
},
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
- "dev": true
- },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
"requires": {
- "isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "isobject": "^3.0.1"
}
},
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
- "dev": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true
- },
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -3566,20 +5101,23 @@
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
"dev": true
},
- "is-relative": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
- "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
- "is-unc-path": "0.1.2"
+ "has": "^1.0.1"
}
},
- "is-resolvable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
- "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
- "dev": true
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "dev": true,
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
},
"is-retry-allowed": {
"version": "1.1.0",
@@ -3590,8 +5128,16 @@
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
},
"is-typedarray": {
"version": "1.0.0",
@@ -3599,23 +5145,36 @@
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-unc-path": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz",
- "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
"dev": true,
"requires": {
- "unc-path-regex": "0.1.2"
+ "unc-path-regex": "^0.1.2"
}
},
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-valid-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
+ "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
+ "dev": true
},
"is-windows": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
- "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
"dev": true
},
"isarray": {
@@ -3627,25 +5186,13 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
- }
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
},
"isstream": {
"version": "0.1.2",
@@ -3658,20 +5205,20 @@
"integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
"dev": true,
"requires": {
- "abbrev": "1.0.9",
- "async": "1.5.2",
- "escodegen": "1.8.1",
- "esprima": "2.7.3",
- "glob": "5.0.15",
- "handlebars": "4.0.10",
- "js-yaml": "3.10.0",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "once": "1.3.3",
- "resolve": "1.1.7",
- "supports-color": "3.2.3",
- "which": "1.3.0",
- "wordwrap": "1.0.0"
+ "abbrev": "1.0.x",
+ "async": "1.x",
+ "escodegen": "1.8.x",
+ "esprima": "2.7.x",
+ "glob": "^5.0.15",
+ "handlebars": "^4.0.1",
+ "js-yaml": "3.x",
+ "mkdirp": "0.5.x",
+ "nopt": "3.x",
+ "once": "1.x",
+ "resolve": "1.1.x",
+ "supports-color": "^3.1.0",
+ "which": "^1.1.1",
+ "wordwrap": "^1.0.0"
},
"dependencies": {
"async": {
@@ -3686,11 +5233,11 @@
"integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
"dev": true,
"requires": {
- "esprima": "2.7.3",
- "estraverse": "1.9.3",
- "esutils": "2.0.2",
- "optionator": "0.8.2",
- "source-map": "0.2.0"
+ "esprima": "^2.7.1",
+ "estraverse": "^1.9.1",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.2.0"
}
},
"esprima": {
@@ -3717,11 +5264,22 @@
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
"dev": true,
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "2.0.10",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
}
},
"resolve": {
@@ -3737,7 +5295,7 @@
"dev": true,
"optional": true,
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
},
"supports-color": {
@@ -3746,7 +5304,7 @@
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
}
},
"wordwrap": {
@@ -3758,13 +5316,14 @@
}
},
"istextorbinary": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz",
- "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz",
+ "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==",
"dev": true,
"requires": {
- "binaryextensions": "1.0.1",
- "textextensions": "1.0.2"
+ "binaryextensions": "2",
+ "editions": "^1.3.3",
+ "textextensions": "2"
}
},
"jison": {
@@ -3776,10 +5335,10 @@
"JSONSelect": "0.4.0",
"cjson": "0.3.0",
"ebnf-parser": "0.1.10",
- "escodegen": "1.3.3",
- "esprima": "1.1.1",
- "jison-lex": "0.3.4",
- "lex-parser": "0.1.4",
+ "escodegen": "1.3.x",
+ "esprima": "1.1.x",
+ "jison-lex": "0.3.x",
+ "lex-parser": "~0.1.3",
"nomnom": "1.5.2"
},
"dependencies": {
@@ -3797,30 +5356,30 @@
"integrity": "sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U=",
"dev": true,
"requires": {
- "lex-parser": "0.1.4",
+ "lex-parser": "0.1.x",
"nomnom": "1.5.2"
}
},
"js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
- "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
- "argparse": "1.0.9",
- "esprima": "4.0.0"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
"dependencies": {
"esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
}
}
@@ -3828,8 +5387,7 @@
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "optional": true
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"json-schema": {
"version": "0.2.3",
@@ -3837,9 +5395,9 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -3852,20 +5410,14 @@
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
- "json3": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
- "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
- "dev": true
- },
"jsonlint": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.0.tgz",
"integrity": "sha1-iKpGvCiaesk7tGyuLVihh6m7SUo=",
"dev": true,
"requires": {
- "JSV": "4.0.2",
- "nomnom": "1.5.2"
+ "JSV": ">= 4.0.x",
+ "nomnom": ">= 1.5.x"
}
},
"jsprim": {
@@ -3879,36 +5431,102 @@
"verror": "1.10.0"
}
},
+ "just-debounce": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
+ "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
+ "dev": true
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "last-run": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
+ "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
+ "dev": true,
+ "requires": {
+ "default-resolution": "^2.0.0",
+ "es6-weak-map": "^2.0.1"
+ }
+ },
+ "latest-version": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
+ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+ "dev": true,
+ "requires": {
+ "package-json": "^4.0.0"
+ }
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
}
},
- "latest-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
- "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=",
- "dev": true,
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"requires": {
- "package-json": "1.2.0"
+ "invert-kv": "^2.0.0"
}
},
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true
- },
- "lcid": {
+ "lead": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
+ "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
+ "dev": true,
"requires": {
- "invert-kv": "1.0.0"
+ "flush-write-stream": "^1.0.2"
}
},
"levn": {
@@ -3917,8 +5535,8 @@
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
"requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
}
},
"lex-parser": {
@@ -3928,79 +5546,84 @@
"dev": true
},
"liftoff": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
- "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
+ "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
"dev": true,
"requires": {
- "extend": "3.0.1",
- "findup-sync": "0.4.3",
- "fined": "1.1.0",
- "flagged-respawn": "0.3.2",
- "lodash.isplainobject": "4.0.6",
- "lodash.isstring": "4.0.1",
- "lodash.mapvalues": "4.6.0",
- "rechoir": "0.6.2",
- "resolve": "1.4.0"
+ "extend": "^3.0.0",
+ "findup-sync": "^3.0.0",
+ "fined": "^1.0.1",
+ "flagged-respawn": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.0",
+ "rechoir": "^0.6.2",
+ "resolve": "^1.1.7"
}
},
"load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
}
},
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "load-yaml-file": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.1.1.tgz",
+ "integrity": "sha512-G910TofXH7u0NfslAzqv6c9pHpvBzObNOo2hMG0/KUDpdHeFY0wE/fTBMExt0Gb12gg5bXS7Hj6pb0e+xbBXLA==",
"dev": true,
"requires": {
- "p-locate": "2.0.0",
- "path-exists": "3.0.0"
+ "graceful-fs": "^4.1.5",
+ "js-yaml": "^3.13.0",
+ "pify": "^2.3.0",
+ "strip-bom": "^3.0.0"
},
"dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
}
}
},
- "lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
- },
- "lodash._baseassign": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
- "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dev": true,
"requires": {
- "lodash._basecopy": "3.0.1",
- "lodash.keys": "3.1.2"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
}
},
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+ },
"lodash._basecopy": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
"dev": true
},
- "lodash._basecreate": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
- "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
- "dev": true
- },
"lodash._basetostring": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
@@ -4049,29 +5672,13 @@
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
"dev": true
},
- "lodash.assign": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
- },
- "lodash.create": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
- "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
- "dev": true,
- "requires": {
- "lodash._baseassign": "3.2.0",
- "lodash._basecreate": "3.0.3",
- "lodash._isiterateecall": "3.0.9"
- }
- },
"lodash.escape": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
"integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
"dev": true,
"requires": {
- "lodash._root": "3.0.1"
+ "lodash._root": "^3.0.0"
}
},
"lodash.isarguments": {
@@ -4086,35 +5693,17 @@
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
"dev": true
},
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
- "dev": true
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
- "dev": true
- },
"lodash.keys": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
"dev": true,
"requires": {
- "lodash._getnative": "3.9.1",
- "lodash.isarguments": "3.1.0",
- "lodash.isarray": "3.0.4"
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
}
},
- "lodash.mapvalues": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
- "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
- "dev": true
- },
"lodash.restparam": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
@@ -4127,15 +5716,15 @@
"integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
"dev": true,
"requires": {
- "lodash._basecopy": "3.0.1",
- "lodash._basetostring": "3.0.1",
- "lodash._basevalues": "3.0.0",
- "lodash._isiterateecall": "3.0.9",
- "lodash._reinterpolate": "3.0.0",
- "lodash.escape": "3.2.0",
- "lodash.keys": "3.1.2",
- "lodash.restparam": "3.6.1",
- "lodash.templatesettings": "3.1.1"
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basetostring": "^3.0.0",
+ "lodash._basevalues": "^3.0.0",
+ "lodash._isiterateecall": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0",
+ "lodash.keys": "^3.0.0",
+ "lodash.restparam": "^3.0.0",
+ "lodash.templatesettings": "^3.0.0"
}
},
"lodash.templatesettings": {
@@ -4144,8 +5733,8 @@
"integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
"dev": true,
"requires": {
- "lodash._reinterpolate": "3.0.0",
- "lodash.escape": "3.2.0"
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0"
}
},
"lodash.toarray": {
@@ -4154,19 +5743,59 @@
"integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
"dev": true
},
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
- "dev": true
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
},
"loose-envify": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"requires": {
- "js-tokens": "3.0.2"
+ "js-tokens": "^3.0.0 || ^4.0.0"
}
},
"loud-rejection": {
@@ -4175,29 +5804,33 @@
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
"requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
}
},
"lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
"dev": true
},
"lru-cache": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
- "dev": true
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
},
"make-dir": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz",
- "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dev": true,
"requires": {
- "pify": "3.0.0"
+ "pify": "^3.0.0"
},
"dependencies": {
"pify": {
@@ -4209,9 +5842,9 @@
}
},
"make-error": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz",
- "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
+ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
"dev": true
},
"make-error-cause": {
@@ -4220,7 +5853,32 @@
"integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
"dev": true,
"requires": {
- "make-error": "1.3.0"
+ "make-error": "^1.2.0"
+ }
+ },
+ "make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "requires": {
+ "p-defer": "^1.0.0"
}
},
"map-cache": {
@@ -4235,23 +5893,105 @@
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
"marked": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
- "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz",
+ "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==",
"dev": true
},
"marked-terminal": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-1.7.0.tgz",
- "integrity": "sha1-yMRgiBx3LHYEtkNnAH7l938SWQQ=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.2.0.tgz",
+ "integrity": "sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.1.0",
+ "cardinal": "^2.1.1",
+ "chalk": "^2.4.1",
+ "cli-table": "^0.3.1",
+ "node-emoji": "^1.4.1",
+ "supports-hyperlinks": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "matchdep": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
+ "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
"dev": true,
"requires": {
- "cardinal": "1.0.0",
- "chalk": "1.1.3",
- "cli-table": "0.3.1",
- "lodash.assign": "4.2.0",
- "node-emoji": "1.8.1"
+ "findup-sync": "^2.0.0",
+ "micromatch": "^3.0.4",
+ "resolve": "^1.4.0",
+ "stack-trace": "0.0.10"
+ },
+ "dependencies": {
+ "findup-sync": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
+ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^3.1.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
}
},
"mem": {
@@ -4260,7 +6000,7 @@
"integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "mimic-fn": "1.1.0"
+ "mimic-fn": "^1.0.0"
}
},
"meow": {
@@ -4269,82 +6009,154 @@
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"dev": true,
"requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
},
"dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
}
}
},
- "merge-options": {
- "version": "0.0.64",
- "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-0.0.64.tgz",
- "integrity": "sha1-y+BPWUppheryf3+PCyo6z2+dVi0=",
- "dev": true,
- "requires": {
- "is-plain-obj": "1.1.0"
- }
- },
"micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
}
},
"mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
},
"mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
"requires": {
- "mime-db": "1.30.0"
+ "mime-db": "1.40.0"
}
},
"mimic-fn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
- "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
- "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -4353,6 +6165,27 @@
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
@@ -4371,82 +6204,122 @@
}
},
"mocha": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz",
- "integrity": "sha1-HgSA/jbS2lhY0etqzDhBiybqog0=",
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
+ "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
"dev": true,
"requires": {
- "browser-stdout": "1.3.0",
- "commander": "2.9.0",
- "debug": "2.6.8",
- "diff": "3.2.0",
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
"escape-string-regexp": "1.0.5",
- "glob": "7.1.1",
- "growl": "1.9.2",
- "he": "1.1.1",
- "json3": "3.3.2",
- "lodash.create": "3.1.1",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
"mkdirp": "0.5.1",
- "supports-color": "3.1.2"
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.5",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.2.2",
+ "yargs-parser": "13.0.0",
+ "yargs-unparser": "1.5.0"
},
"dependencies": {
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
- "graceful-readlink": "1.0.1"
+ "ms": "^2.1.1"
}
},
- "glob": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
}
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "brace-expansion": "^1.1.7"
}
},
"supports-color": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
- "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "isexe": "^2.0.0"
}
}
}
},
"mocha.parallel": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.3.tgz",
- "integrity": "sha1-VGR2kdTxH17/y1Llx4tLv80hRoQ=",
+ "version": "0.15.6",
+ "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.6.tgz",
+ "integrity": "sha512-pWph+QieKGjk7cHY2hB78wyKJDOQLyOMDuBLQLrFL7riJb8qbQBlCY3XztFHv0D1d4I1gCpiwFNjd4LhVOXPew==",
"dev": true,
"requires": {
- "bluebird": "2.11.0",
- "semaphore": "1.1.0"
+ "bluebird": "^2.9.34",
+ "semaphore": "^1.0.5"
}
},
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true
+ },
"ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
},
"multipipe": {
@@ -4458,118 +6331,144 @@
"duplexer2": "0.0.2"
}
},
+ "mute-stdout": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
+ "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
+ "dev": true
+ },
"mute-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
"mversion": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/mversion/-/mversion-1.10.1.tgz",
- "integrity": "sha1-kyLRpPEfZnDeACTRgjoyphWj1A4=",
- "dev": true,
- "requires": {
- "chalk": "0.5.1",
- "cli-usage": "0.1.4",
- "contra": "1.9.4",
- "minimatch": "1.0.0",
- "minimist": "0.2.0",
- "rc": "0.5.5",
- "semver": "4.3.6",
- "through2": "1.1.1",
- "update-notifier": "0.2.2",
- "vinyl-fs": "0.3.14"
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/mversion/-/mversion-1.13.0.tgz",
+ "integrity": "sha512-882S8k+ZndowFEDwAzfOXfQvVVPZwTuoYIayqUck0b9h5VNfeppJTnJ8sMOXIiq8JvIzgXWGCOeMmf7ffScjJA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "cli-usage": "^0.1.8",
+ "contra": "^1.9.4",
+ "minimatch": "^3.0.4",
+ "minimist": "^1.2.0",
+ "rc": "^1.2.8",
+ "semver": "^5.6.0",
+ "through2": "^3.0.0",
+ "update-notifier": "^2.5.0",
+ "vinyl-fs": "^3.0.3"
},
"dependencies": {
- "ansi-regex": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
- "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
- "dev": true
- },
"ansi-styles": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
- "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
- "dev": true
- },
- "chalk": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
- "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "ansi-styles": "1.1.0",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "0.1.0",
- "strip-ansi": "0.3.0",
- "supports-color": "0.2.0"
+ "color-convert": "^1.9.0"
}
},
- "has-ansi": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
- "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "ansi-regex": "0.2.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
"minimatch": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
- "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "lru-cache": "2.7.3",
- "sigmund": "1.0.1"
+ "brace-expansion": "^1.1.7"
}
},
- "minimist": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz",
- "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=",
- "dev": true
- },
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
- "dev": true
+ "readable-stream": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
+ "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
},
- "strip-ansi": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
- "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "string_decoder": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
+ "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
"dev": true,
"requires": {
- "ansi-regex": "0.2.1"
+ "safe-buffer": "~5.1.0"
}
},
"supports-color": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
- "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
- "dev": true
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
},
"through2": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz",
- "integrity": "sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
"dev": true,
"requires": {
- "readable-stream": "1.1.14",
- "xtend": "4.0.1"
+ "readable-stream": "2 || 3"
}
}
}
},
- "natives": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
- "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
- "dev": true
+ "nan": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+ "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
},
"natural-compare": {
"version": "1.4.0",
@@ -4577,22 +6476,40 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "nested-error-stacks": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
- "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
+ "neo-async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
+ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node-emoji": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
+ "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
"dev": true,
"requires": {
- "inherits": "2.0.3"
+ "lodash.toarray": "^4.4.0"
}
},
- "node-emoji": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz",
- "integrity": "sha1-buxr+wdCHiFIx1xrunJCH4UwqCY=",
+ "node-environment-flags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
"dev": true,
"requires": {
- "lodash.toarray": "4.4.0"
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
}
},
"nomnom": {
@@ -4601,8 +6518,8 @@
"integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=",
"dev": true,
"requires": {
- "colors": "0.5.1",
- "underscore": "1.1.7"
+ "colors": "0.5.x",
+ "underscore": "1.1.x"
}
},
"nopt": {
@@ -4611,18 +6528,19 @@
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"requires": {
- "abbrev": "1.0.9"
+ "abbrev": "1"
}
},
"normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
"requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.1"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
"normalize-path": {
@@ -4631,219 +6549,213 @@
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"requires": {
- "remove-trailing-separator": "1.1.0"
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "now-and-later": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
+ "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.2"
}
},
"npm-check": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/npm-check/-/npm-check-5.5.2.tgz",
- "integrity": "sha512-xK2DNWha5ZUguocpoOmRO6650d6TAWgdmJljm4XhOvjMhROrnitfx4FH9I2b3AgXaPoBICnuy4Ubo+mTaQqlnw==",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "callsite-record": "3.2.2",
- "chalk": "1.1.3",
- "co": "4.6.0",
- "depcheck": "0.6.8",
- "execa": "0.2.2",
- "giturl": "1.0.0",
- "global-modules": "1.0.0",
- "globby": "4.1.0",
- "inquirer": "0.12.0",
- "is-ci": "1.1.0",
- "lodash": "4.17.4",
- "meow": "3.7.0",
- "merge-options": "0.0.64",
- "minimatch": "3.0.4",
- "node-emoji": "1.8.1",
- "ora": "0.2.3",
- "package-json": "4.0.1",
- "path-exists": "2.1.0",
- "pkg-dir": "1.0.0",
- "semver": "5.4.1",
- "semver-diff": "2.1.0",
- "text-table": "0.2.0",
- "throat": "2.0.2",
- "update-notifier": "2.3.0"
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/npm-check/-/npm-check-5.9.0.tgz",
+ "integrity": "sha512-KLvT5tghIv7bsVhcF3yBCrFu075DpUZROYKXCQvLmOdQuu2gqWTjzrLBzZjtE6wcvzzu5bxb1RRRM8KVzKU0BQ==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.6.1",
+ "callsite-record": "^3.0.0",
+ "chalk": "^1.1.3",
+ "co": "^4.6.0",
+ "depcheck": "^0.6.11",
+ "execa": "^0.2.2",
+ "giturl": "^1.0.0",
+ "global-modules": "^1.0.0",
+ "globby": "^4.0.0",
+ "inquirer": "^0.12.0",
+ "is-ci": "^1.0.8",
+ "lodash": "^4.7.0",
+ "meow": "^3.7.0",
+ "minimatch": "^3.0.2",
+ "node-emoji": "^1.0.3",
+ "ora": "^0.2.1",
+ "package-json": "^4.0.1",
+ "path-exists": "^2.1.0",
+ "pkg-dir": "^1.0.0",
+ "preferred-pm": "^1.0.1",
+ "semver": "^5.0.1",
+ "semver-diff": "^2.0.0",
+ "text-table": "^0.2.0",
+ "throat": "^2.0.2",
+ "update-notifier": "^2.1.0",
+ "xtend": "^4.0.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"dev": true,
"requires": {
- "color-convert": "1.9.1"
+ "restore-cursor": "^1.0.1"
}
},
- "configstore": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz",
- "integrity": "sha1-CU7mYquD+tmRdnjeEU+q6o/NypA=",
+ "execa": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz",
+ "integrity": "sha1-4urUcsLDGq1vc/GslW7vReEjIMs=",
"dev": true,
"requires": {
- "dot-prop": "4.2.0",
- "graceful-fs": "4.1.11",
- "make-dir": "1.1.0",
- "unique-string": "1.0.0",
- "write-file-atomic": "2.3.0",
- "xdg-basedir": "3.0.0"
+ "cross-spawn-async": "^2.1.1",
+ "npm-run-path": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "path-key": "^1.0.0",
+ "strip-eof": "^1.0.0"
}
},
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"dev": true,
"requires": {
- "homedir-polyfill": "1.0.1"
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
}
},
- "global-modules": {
+ "is-fullwidth-code-point": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "global-prefix": "1.0.2",
- "is-windows": "1.0.1",
- "resolve-dir": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
- "global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "expand-tilde": "2.0.2",
- "homedir-polyfill": "1.0.1",
- "ini": "1.3.4",
- "is-windows": "1.0.1",
- "which": "1.3.0"
+ "brace-expansion": "^1.1.7"
}
},
- "got": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
- "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
+ "npm-run-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz",
+ "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=",
"dev": true,
"requires": {
- "create-error-class": "3.0.2",
- "duplexer3": "0.1.4",
- "get-stream": "3.0.0",
- "is-redirect": "1.0.0",
- "is-retry-allowed": "1.1.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.0",
- "safe-buffer": "5.1.1",
- "timed-out": "4.0.1",
- "unzip-response": "2.0.1",
- "url-parse-lax": "1.0.0"
+ "path-key": "^1.0.0"
}
},
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "is-windows": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz",
- "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
},
- "latest-version": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
- "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"dev": true,
"requires": {
- "package-json": "4.0.1"
+ "pinkie-promise": "^2.0.0"
}
},
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
+ "path-key": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz",
+ "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=",
+ "dev": true
},
- "package-json": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
- "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
"dev": true,
"requires": {
- "got": "6.7.1",
- "registry-auth-token": "3.3.1",
- "registry-url": "3.1.0",
- "semver": "5.4.1"
+ "find-up": "^1.0.0"
}
},
- "resolve-dir": {
+ "restore-cursor": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"dev": true,
"requires": {
- "expand-tilde": "2.0.2",
- "global-modules": "1.0.0"
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
}
},
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "once": "^1.3.0"
}
},
- "timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
- "dev": true
- },
- "update-notifier": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz",
- "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=",
- "dev": true,
- "requires": {
- "boxen": "1.3.0",
- "chalk": "2.3.0",
- "configstore": "3.1.1",
- "import-lazy": "2.1.0",
- "is-installed-globally": "0.1.0",
- "is-npm": "1.0.0",
- "latest-version": "3.1.0",
- "semver-diff": "2.1.0",
- "xdg-basedir": "3.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- }
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
- },
- "xdg-basedir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
- "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
- "dev": true
}
}
},
@@ -4851,9 +6763,8 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "dev": true,
"requires": {
- "path-key": "2.0.1"
+ "path-key": "^2.0.0"
}
},
"nsp": {
@@ -4862,17 +6773,17 @@
"integrity": "sha1-Q24/E4aeBhDTo49Z1V+bNTzDKBc=",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "cli-table": "0.3.1",
- "cvss": "1.0.2",
- "https-proxy-agent": "1.0.0",
- "joi": "6.10.1",
- "nodesecurity-npm-utils": "5.0.0",
- "path-is-absolute": "1.0.1",
- "rc": "1.2.1",
- "semver": "5.4.1",
- "subcommand": "2.1.0",
- "wreck": "6.3.0"
+ "chalk": "^1.1.1",
+ "cli-table": "^0.3.1",
+ "cvss": "^1.0.0",
+ "https-proxy-agent": "^1.0.0",
+ "joi": "^6.9.1",
+ "nodesecurity-npm-utils": "^5.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rc": "^1.1.2",
+ "semver": "^5.0.3",
+ "subcommand": "^2.0.3",
+ "wreck": "^6.3.0"
},
"dependencies": {
"agent-base": {
@@ -4881,8 +6792,8 @@
"integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
"dev": true,
"requires": {
- "extend": "3.0.1",
- "semver": "5.0.3"
+ "extend": "~3.0.0",
+ "semver": "~5.0.1"
},
"dependencies": {
"semver": {
@@ -4911,7 +6822,7 @@
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"dev": true,
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
},
"chalk": {
@@ -4920,11 +6831,11 @@
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
}
},
"cli-table": {
@@ -4964,9 +6875,9 @@
}
},
"deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true
},
"escape-string-regexp": {
@@ -4987,7 +6898,7 @@
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"hoek": {
@@ -5002,9 +6913,9 @@
"integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
"dev": true,
"requires": {
- "agent-base": "2.1.1",
- "debug": "2.6.9",
- "extend": "3.0.1"
+ "agent-base": "2",
+ "debug": "2",
+ "extend": "3"
}
},
"ini": {
@@ -5025,10 +6936,10 @@
"integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
"dev": true,
"requires": {
- "hoek": "2.16.3",
- "isemail": "1.2.0",
- "moment": "2.18.1",
- "topo": "1.1.0"
+ "hoek": "2.x.x",
+ "isemail": "1.x.x",
+ "moment": "2.x.x",
+ "topo": "1.x.x"
}
},
"minimist": {
@@ -5037,12 +6948,6 @@
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
- "moment": {
- "version": "2.18.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
- "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -5062,15 +6967,15 @@
"dev": true
},
"rc": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
- "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
}
},
"semver": {
@@ -5085,7 +6990,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
@@ -5100,10 +7005,10 @@
"integrity": "sha1-XkzspaN3njNlsVEeBfhmh3MC92A=",
"dev": true,
"requires": {
- "cliclopts": "1.1.1",
- "debug": "2.6.9",
- "minimist": "1.2.0",
- "xtend": "4.0.1"
+ "cliclopts": "^1.1.0",
+ "debug": "^2.1.3",
+ "minimist": "^1.2.0",
+ "xtend": "^4.0.0"
}
},
"supports-color": {
@@ -5118,7 +7023,7 @@
"integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
"dev": true,
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
},
"wreck": {
@@ -5127,8 +7032,8 @@
"integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=",
"dev": true,
"requires": {
- "boom": "2.10.1",
- "hoek": "2.16.3"
+ "boom": "2.x.x",
+ "hoek": "2.x.x"
}
},
"xtend": {
@@ -5145,9 +7050,9 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-assign": {
"version": "3.0.0",
@@ -5155,43 +7060,97 @@
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
"dev": true
},
- "object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"dev": true,
"requires": {
- "array-each": "1.0.1",
- "array-slice": "1.0.0",
- "for-own": "1.0.0",
- "isobject": "3.0.1"
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
},
"dependencies": {
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "for-in": "1.0.2"
+ "is-descriptor": "^0.1.0"
}
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
}
}
},
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "dev": true,
+ "requires": {
+ "array-each": "^1.0.1",
+ "array-slice": "^1.0.0",
+ "for-own": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
+ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.12.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
"dev": true,
"requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+ "dev": true,
+ "requires": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
}
},
"object.pick": {
@@ -5200,37 +7159,44 @@
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"dev": true,
"requires": {
- "isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "isobject": "^3.0.1"
+ }
+ },
+ "object.reduce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
+ "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
+ "dev": true,
+ "requires": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
}
},
"once": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
- "dev": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
},
"open": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
- "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
- "dev": true
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.2.0.tgz",
+ "integrity": "sha512-Vxf6HJkwrqmvh9UAID3MnMYXntbTxKLOSfOnO7LJdzPf3NE3KQYFNV0/Lcz2VAndbRFil58XVCyh8tiX11fiYw==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
},
"optimist": {
"version": "0.6.1",
@@ -5238,8 +7204,8 @@
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"dev": true,
"requires": {
- "minimist": "0.0.10",
- "wordwrap": "0.0.2"
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
},
"dependencies": {
"minimist": {
@@ -5256,12 +7222,12 @@
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "2.0.6",
- "levn": "0.3.0",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "1.0.0"
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
},
"dependencies": {
"wordwrap": {
@@ -5278,49 +7244,151 @@
"integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
- "cli-spinners": "0.1.2",
- "object-assign": "4.1.1"
+ "chalk": "^1.1.1",
+ "cli-cursor": "^1.0.2",
+ "cli-spinners": "^0.1.2",
+ "object-assign": "^4.0.1"
},
"dependencies": {
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^1.0.1"
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "requires": {
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ }
}
}
},
- "orchestrator": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
- "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
"dev": true,
"requires": {
- "end-of-stream": "0.1.5",
- "sequencify": "0.0.7",
- "stream-consume": "0.1.0"
+ "readable-stream": "^2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
}
},
- "ordered-read-streams": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
- "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
- "dev": true
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
"os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"requires": {
- "lcid": "1.0.0"
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ }
}
},
"os-tmpdir": {
@@ -5329,29 +7397,28 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
- "osenv": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
},
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "dev": true
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
},
"p-limit": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
- "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
"requires": {
- "p-try": "1.0.0"
+ "p-try": "^1.0.0"
}
},
"p-locate": {
@@ -5360,7 +7427,7 @@
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
"requires": {
- "p-limit": "1.2.0"
+ "p-limit": "^1.1.0"
}
},
"p-try": {
@@ -5370,59 +7437,74 @@
"dev": true
},
"package-json": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
- "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
+ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
"dev": true,
"requires": {
- "got": "3.3.1",
- "registry-url": "3.1.0"
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
}
},
- "parse-filepath": {
+ "parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz",
- "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"requires": {
- "is-absolute": "0.2.6",
- "map-cache": "0.2.2",
- "path-root": "0.1.1"
+ "callsites": "^3.0.0"
}
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
"dev": true,
"requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
+ "is-absolute": "^1.0.0",
+ "map-cache": "^0.2.0",
+ "path-root": "^0.1.1"
}
},
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
"requires": {
- "error-ex": "1.3.1"
+ "error-ex": "^1.2.0"
}
},
+ "parse-node-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
+ "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+ "dev": true
+ },
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
"path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "requires": {
- "pinkie-promise": "2.0.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"path-is-absolute": {
"version": "1.0.1",
@@ -5439,13 +7521,12 @@
"path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "dev": true
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
},
"path-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
- "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
"path-root": {
@@ -5454,7 +7535,7 @@
"integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
"dev": true,
"requires": {
- "path-root-regex": "0.1.2"
+ "path-root-regex": "^0.1.0"
}
},
"path-root-regex": {
@@ -5464,13 +7545,12 @@
"dev": true
},
"path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "pify": "^2.0.0"
}
},
"performance-now": {
@@ -5481,36 +7561,112 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
},
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
"requires": {
- "pinkie": "2.0.4"
+ "pinkie": "^2.0.0"
}
},
"pkg-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
- "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
"dev": true,
"requires": {
- "find-up": "1.1.2"
+ "find-up": "^2.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ }
}
},
- "pluralize": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
- "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "plugin-error": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
+ "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
+ "dev": true,
+ "requires": {
+ "ansi-cyan": "^0.1.1",
+ "ansi-red": "^0.1.1",
+ "arr-diff": "^1.0.1",
+ "arr-union": "^2.0.1",
+ "extend-shallow": "^1.1.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
+ "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1",
+ "array-slice": "^0.2.3"
+ }
+ },
+ "arr-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
+ "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
+ "dev": true
+ },
+ "array-slice": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+ "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
+ "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^1.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
+ "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
+ "dev": true
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
"dev": true
},
+ "preferred-pm": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-1.0.1.tgz",
+ "integrity": "sha512-9Uxgin5Xnsl67DBvlNFsmDIlBuG9/XKK2cVBTj//7/7wW6ZY+IC9/GlLqxyHABpoasAsJ1MARFOdYPxMUtndxA==",
+ "dev": true,
+ "requires": {
+ "path-exists": "^3.0.0",
+ "which-pm": "^1.0.1"
+ }
+ },
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -5523,16 +7679,10 @@
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
"dev": true
},
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true
- },
"prettier": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz",
- "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz",
+ "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==",
"dev": true
},
"pretty-hrtime": {
@@ -5542,9 +7692,9 @@
"dev": true
},
"printj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.0.tgz",
- "integrity": "sha1-hUh7Xo+WdjsLSiU2E7753Zs4fjw="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
+ "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
},
"private": {
"version": "0.1.8",
@@ -5559,9 +7709,9 @@
"dev": true
},
"progress": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
- "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
"pseudomap": {
@@ -5570,136 +7720,115 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
+ "psl": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
},
- "randomatic": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
- "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=",
- "dev": true,
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
},
"dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"requires": {
- "kind-of": "3.2.2"
+ "once": "^1.4.0"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "is-buffer": "1.1.5"
+ "wrappy": "1"
}
}
}
- },
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
}
}
},
- "rc": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz",
- "integrity": "sha1-VBzDMA9GS23+ZDLXVvDy3T6esZk=",
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
"dev": true,
"requires": {
- "deep-extend": "0.2.11",
- "ini": "1.3.4",
- "minimist": "0.0.10",
- "strip-json-comments": "0.1.3"
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
},
"dependencies": {
- "minimist": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
- "dev": true
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
}
}
},
- "read-all-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
- "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
- "pinkie-promise": "2.0.1",
- "readable-stream": "2.3.3"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
- }
- },
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
- "dev": true,
- "requires": {
- "safe-buffer": "5.1.1"
- }
- }
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
}
},
"read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
"requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
}
},
"read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
"requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ }
}
},
"readable-stream": {
@@ -5708,10 +7837,59 @@
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
}
},
"readline2": {
@@ -5720,9 +7898,26 @@
"integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
"dev": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
"mute-stream": "0.0.5"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "dev": true
+ }
}
},
"recast": {
@@ -5732,9 +7927,9 @@
"dev": true,
"requires": {
"ast-types": "0.8.15",
- "esprima-fb": "15001.1001.0-dev-harmony-fb",
- "private": "0.1.8",
- "source-map": "0.5.7"
+ "esprima-fb": "~15001.1001.0-dev-harmony-fb",
+ "private": "~0.1.5",
+ "source-map": "~0.5.0"
},
"dependencies": {
"ast-types": {
@@ -5757,7 +7952,7 @@
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
"dev": true,
"requires": {
- "resolve": "1.4.0"
+ "resolve": "^1.1.6"
}
},
"redent": {
@@ -5766,23 +7961,23 @@
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"dev": true,
"requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
}
},
"redeyed": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz",
- "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
+ "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=",
"dev": true,
"requires": {
- "esprima": "3.0.0"
+ "esprima": "~4.0.0"
},
"dependencies": {
"esprima": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz",
- "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
}
}
@@ -5793,55 +7988,30 @@
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
"requires": {
- "is-equal-shallow": "0.1.3"
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
}
},
"regexpp": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
- "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
"dev": true
},
"registry-auth-token": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz",
- "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
+ "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
"dev": true,
"requires": {
- "rc": "1.2.3",
- "safe-buffer": "5.1.1"
- },
- "dependencies": {
- "deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "dev": true
- },
- "rc": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.3.tgz",
- "integrity": "sha1-UVdakA+N1oOBxxC0cSwhVMPiA1s=",
- "dev": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- }
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
}
},
"registry-url": {
@@ -5850,33 +8020,28 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true,
"requires": {
- "rc": "1.2.1"
- },
- "dependencies": {
- "deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "dev": true
- },
- "rc": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
- "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
- "dev": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- }
+ "rc": "^1.0.1"
+ }
+ },
+ "remove-bom-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
+ "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5",
+ "is-utf8": "^0.2.1"
+ }
+ },
+ "remove-bom-stream": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
+ "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
+ "dev": true,
+ "requires": {
+ "remove-bom-buffer": "^3.0.0",
+ "safe-buffer": "^5.1.0",
+ "through2": "^2.0.3"
}
},
"remove-trailing-separator": {
@@ -5886,9 +8051,9 @@
"dev": true
},
"repeat-element": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
"dev": true
},
"repeat-string": {
@@ -5903,7 +8068,7 @@
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"dev": true,
"requires": {
- "is-finite": "1.0.2"
+ "is-finite": "^1.0.0"
}
},
"replace-ext": {
@@ -5912,15 +8077,26 @@
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
"dev": true
},
+ "replace-homedir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
+ "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1",
+ "is-absolute": "^1.0.0",
+ "remove-trailing-separator": "^1.1.0"
+ }
+ },
"replacestream": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
- "integrity": "sha1-PuV5gJK+Nksc2xSEMISSyz3/LzY=",
+ "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1",
- "readable-stream": "2.3.3"
+ "escape-string-regexp": "^1.0.3",
+ "object-assign": "^4.0.1",
+ "readable-stream": "^2.0.2"
},
"dependencies": {
"isarray": {
@@ -5935,59 +8111,70 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
"readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "~5.1.0"
}
}
}
},
"request": {
- "version": "2.83.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
- "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
- "requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.6.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.3.1",
- "har-validator": "5.0.3",
- "hawk": "6.0.2",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.17",
- "oauth-sign": "0.8.2",
- "performance-now": "2.1.0",
- "qs": "6.5.1",
- "safe-buffer": "5.1.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.3",
- "tunnel-agent": "0.6.0",
- "uuid": "3.1.0"
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
}
},
"require-directory": {
@@ -5996,9 +8183,9 @@
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"require-package-name": {
"version": "2.0.1",
@@ -6006,101 +8193,78 @@
"integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=",
"dev": true
},
- "require-uncached": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
- "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
- "dev": true,
- "requires": {
- "caller-path": "0.1.0",
- "resolve-from": "1.0.1"
- }
- },
"resolve": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz",
- "integrity": "sha1-p1vgHFPaJdk0qY69DkxKcxL5KoY=",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
+ "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
"dev": true,
"requires": {
- "path-parse": "1.0.5"
+ "path-parse": "^1.0.6"
}
},
"resolve-dir": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
- "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
"dev": true,
"requires": {
- "expand-tilde": "1.2.2",
- "global-modules": "0.2.3"
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
}
},
"resolve-from": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
- "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
- "restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "resolve-options": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
+ "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
"dev": true,
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
+ "value-or-function": "^3.0.0"
}
},
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "align-text": "0.1.4"
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
}
},
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
"rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"requires": {
- "glob": "7.1.2"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- }
+ "glob": "^7.1.3"
}
},
"run-async": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
- "once": "1.3.3"
+ "is-promise": "^2.1.0"
}
},
"rx-lite": {
@@ -6109,13 +8273,13 @@
"integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
"dev": true
},
- "rx-lite-aggregates": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
- "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "rxjs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz",
+ "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==",
"dev": true,
"requires": {
- "rx-lite": "3.1.2"
+ "tslib": "^1.9.0"
}
},
"safe-buffer": {
@@ -6123,22 +8287,30 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
},
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"semaphore": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
- "integrity": "sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=",
+ "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==",
"dev": true
},
"semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4="
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
},
"semver-diff": {
"version": "2.1.0",
@@ -6146,70 +8318,201 @@
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true,
"requires": {
- "semver": "5.4.1"
+ "semver": "^5.0.3"
}
},
- "sequencify": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
- "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
- "dev": true
+ "semver-greatest-satisfied-range": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
+ "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
+ "dev": true,
+ "requires": {
+ "sver-compat": "^1.5.0"
+ }
},
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
+ "set-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dev": true,
"requires": {
- "shebang-regex": "1.0.0"
+ "shebang-regex": "^1.0.0"
}
},
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
- },
- "sigmund": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
- "dev": true
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
},
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "dev": true
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"slice-ansi": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
- "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0"
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
},
"dependencies": {
- "is-fullwidth-code-point": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ }
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
}
},
- "sntp": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
- "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
"requires": {
- "hoek": "4.2.0"
+ "kind-of": "^3.2.0"
}
},
"source-map": {
@@ -6218,6 +8521,25 @@
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
"sparkles": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
@@ -6225,22 +8547,45 @@
"dev": true
},
"spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
"requires": {
- "spdx-license-ids": "1.2.2"
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
"spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
},
"spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
+ "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
},
"sprintf-js": {
"version": "1.0.3",
@@ -6248,31 +8593,67 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
+ "ssf": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz",
+ "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==",
+ "requires": {
+ "frac": "~1.1.2"
+ }
+ },
"sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
}
},
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "dev": true
+ },
"stackframe": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz",
"integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=",
"dev": true
},
- "stream-consume": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
- "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=",
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "stream-exhaust": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
+ "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
"dev": true
},
"stream-shift": {
@@ -6287,23 +8668,29 @@
"integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM=",
"dev": true
},
- "string-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
- "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
- "dev": true,
- "requires": {
- "strip-ansi": "3.0.1"
- }
- },
"string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
}
},
"string_decoder": {
@@ -6312,32 +8699,24 @@
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
},
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "requires": {
- "is-utf8": "0.2.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "dev": true
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
},
"strip-indent": {
"version": "1.0.1",
@@ -6345,13 +8724,13 @@
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"dev": true,
"requires": {
- "get-stdin": "4.0.1"
+ "get-stdin": "^4.0.1"
}
},
"strip-json-comments": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz",
- "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"supports-color": {
@@ -6360,96 +8739,71 @@
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
},
- "table": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
- "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "supports-hyperlinks": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz",
+ "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==",
"dev": true,
"requires": {
- "ajv": "5.5.2",
- "ajv-keywords": "2.1.1",
- "chalk": "2.4.1",
- "lodash": "4.17.4",
- "slice-ansi": "1.0.0",
- "string-width": "2.1.1"
+ "has-flag": "^2.0.0",
+ "supports-color": "^5.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
- }
- },
"has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "is-fullwidth-code-point": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- },
"supports-color": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
- "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ }
}
}
}
},
+ "sver-compat": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
+ "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "^2.0.1",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "table": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz",
+ "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.9.1",
+ "lodash": "^4.17.11",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
"tabletop": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/tabletop/-/tabletop-1.5.2.tgz",
"integrity": "sha1-ZU1ITK5ODmWh8gd6e+xg2nt0ZPM=",
"dev": true,
"requires": {
- "nsp": "2.8.1",
- "request": "2.83.0"
+ "nsp": "^2.6.2",
+ "request": "^2.51.0"
}
},
"term-size": {
@@ -6458,24 +8812,7 @@
"integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
"dev": true,
"requires": {
- "execa": "0.7.0"
- },
- "dependencies": {
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
- }
- }
+ "execa": "^0.7.0"
}
},
"text-table": {
@@ -6485,9 +8822,9 @@
"dev": true
},
"textextensions": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz",
- "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.4.0.tgz",
+ "integrity": "sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==",
"dev": true
},
"throat": {
@@ -6508,8 +8845,8 @@
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
"dev": true,
"requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
},
"dependencies": {
"isarray": {
@@ -6524,13 +8861,13 @@
"integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.0.3",
+ "util-deprecate": "~1.0.1"
}
},
"string_decoder": {
@@ -6539,26 +8876,27 @@
"integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "~5.1.0"
}
}
}
},
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "dev": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
"ticky": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz",
"integrity": "sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0=",
"dev": true
},
- "tildify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
- "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2"
- }
- },
"time-stamp": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
@@ -6566,9 +8904,9 @@
"dev": true
},
"timed-out": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
- "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
"dev": true
},
"tmp": {
@@ -6577,7 +8915,17 @@
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": {
- "os-tmpdir": "1.0.2"
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "dev": true,
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
}
},
"to-fast-properties": {
@@ -6586,12 +8934,60 @@
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
"dev": true
},
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "to-through": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
+ "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
+ "dev": true,
+ "requires": {
+ "through2": "^2.0.3"
+ }
+ },
"tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"requires": {
- "punycode": "1.4.1"
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
}
},
"trim-newlines": {
@@ -6600,19 +8996,24 @@
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"dev": true
},
+ "tslib": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
+ "dev": true
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "optional": true
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"type-check": {
"version": "0.3.2",
@@ -6620,7 +9021,7 @@
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
"requires": {
- "prelude-ls": "1.1.2"
+ "prelude-ls": "~1.1.2"
}
},
"typedarray": {
@@ -6630,19 +9031,19 @@
"dev": true
},
"uglify-js": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.7.tgz",
- "integrity": "sha512-esJIpNQIC44EFSrbeFPhiXHy2HJ+dTcnn0Zdkn+5meuLsvoV0mFJffKlyezNIIHNfhF0NpgbifygCfEyAogIhQ==",
+ "version": "3.5.10",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.10.tgz",
+ "integrity": "sha512-/GTF0nosyPLbdJBd+AwYiZ+Hu5z8KXWnO0WCGt1BQ/u9Iamhejykqmz5o1OHJ53+VAk6xVxychonnApDjuqGsw==",
"dev": true,
"requires": {
- "commander": "2.13.0",
- "source-map": "0.6.1"
+ "commander": "~2.20.0",
+ "source-map": "~0.6.1"
},
"dependencies": {
"commander": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
- "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
"source-map": {
@@ -6653,19 +9054,6 @@
}
}
},
- "uglify-save-license": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz",
- "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=",
- "dev": true
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true,
- "optional": true
- },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -6678,19 +9066,127 @@
"integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=",
"dev": true
},
- "unique-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
- "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
+ "undertaker": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz",
+ "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1",
+ "arr-map": "^2.0.0",
+ "bach": "^1.0.0",
+ "collection-map": "^1.0.0",
+ "es6-weak-map": "^2.0.1",
+ "last-run": "^1.1.0",
+ "object.defaults": "^1.0.0",
+ "object.reduce": "^1.0.0",
+ "undertaker-registry": "^1.0.0"
+ }
+ },
+ "undertaker-registry": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
+ "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
"dev": true
},
+ "union-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^0.4.3"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.1",
+ "to-object-path": "^0.3.0"
+ }
+ }
+ }
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "dev": true,
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
"unique-string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
"integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
"dev": true,
"requires": {
- "crypto-random-string": "1.0.0"
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
}
},
"unzip-response": {
@@ -6699,84 +9195,94 @@
"integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
"dev": true
},
+ "upath": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+ "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
+ "dev": true
+ },
"update-notifier": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.2.tgz",
- "integrity": "sha1-5ps6eEtOaGoqzZj15mlEWRmW4Yc=",
- "dev": true,
- "requires": {
- "chalk": "0.5.1",
- "configstore": "0.3.2",
- "is-npm": "1.0.0",
- "latest-version": "1.0.1",
- "semver-diff": "2.1.0",
- "string-length": "1.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
- "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
- "dev": true
- },
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
+ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
+ "dev": true,
+ "requires": {
+ "boxen": "^1.2.1",
+ "chalk": "^2.0.1",
+ "configstore": "^3.0.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^1.0.10",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^3.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "dependencies": {
"ansi-styles": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
- "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
- "dev": true
- },
- "chalk": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
- "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "ansi-styles": "1.1.0",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "0.1.0",
- "strip-ansi": "0.3.0",
- "supports-color": "0.2.0"
+ "color-convert": "^1.9.0"
}
},
- "has-ansi": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
- "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "ansi-regex": "0.2.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "strip-ansi": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
- "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "ansi-regex": "0.2.1"
+ "has-flag": "^3.0.0"
}
- },
- "supports-color": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
- "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
- "dev": true
}
}
},
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
"url-parse-lax": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dev": true,
"requires": {
- "prepend-http": "1.0.4"
+ "prepend-http": "^1.0.1"
}
},
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
"util-deprecate": {
@@ -6786,36 +9292,43 @@
"dev": true
},
"uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
},
"v8flags": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz",
+ "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==",
"dev": true,
"requires": {
- "user-home": "1.1.1"
+ "homedir-polyfill": "^1.0.1"
}
},
"validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
"requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
}
},
+ "value-or-function": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
+ "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
+ "dev": true
+ },
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
- "assert-plus": "1.0.0",
+ "assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
+ "extsprintf": "^1.2.0"
}
},
"vinyl": {
@@ -6824,82 +9337,151 @@
"integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
"dev": true,
"requires": {
- "clone": "1.0.2",
- "clone-stats": "0.0.1",
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
"replace-ext": "0.0.1"
}
},
"vinyl-fs": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
- "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
- "dev": true,
- "requires": {
- "defaults": "1.0.3",
- "glob-stream": "3.1.18",
- "glob-watcher": "0.0.6",
- "graceful-fs": "3.0.11",
- "mkdirp": "0.5.1",
- "strip-bom": "1.0.0",
- "through2": "0.6.5",
- "vinyl": "0.4.6"
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
+ "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
+ "dev": true,
+ "requires": {
+ "fs-mkdirp-stream": "^1.0.0",
+ "glob-stream": "^6.1.0",
+ "graceful-fs": "^4.0.0",
+ "is-valid-glob": "^1.0.0",
+ "lazystream": "^1.0.0",
+ "lead": "^1.0.0",
+ "object.assign": "^4.0.4",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.3.3",
+ "remove-bom-buffer": "^3.0.0",
+ "remove-bom-stream": "^1.2.0",
+ "resolve-options": "^1.1.0",
+ "through2": "^2.0.0",
+ "to-through": "^2.0.0",
+ "value-or-function": "^3.0.0",
+ "vinyl": "^2.0.0",
+ "vinyl-sourcemap": "^1.1.0"
},
"dependencies": {
"clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
- "graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
- "dev": true,
- "requires": {
- "natives": "1.1.0"
- }
+ "clone-stats": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
+ "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
},
"readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "strip-bom": {
+ "replace-ext": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
- "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "first-chunk-stream": "1.0.0",
- "is-utf8": "0.2.1"
+ "safe-buffer": "~5.1.0"
}
},
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "vinyl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
+ "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
"dev": true,
"requires": {
- "readable-stream": "1.0.34",
- "xtend": "4.0.1"
+ "clone": "^2.1.1",
+ "clone-buffer": "^1.0.0",
+ "clone-stats": "^1.0.0",
+ "cloneable-readable": "^1.0.0",
+ "remove-trailing-separator": "^1.0.1",
+ "replace-ext": "^1.0.0"
}
+ }
+ }
+ },
+ "vinyl-sourcemap": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
+ "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
+ "dev": true,
+ "requires": {
+ "append-buffer": "^1.0.2",
+ "convert-source-map": "^1.5.0",
+ "graceful-fs": "^4.1.6",
+ "normalize-path": "^2.1.1",
+ "now-and-later": "^2.0.0",
+ "remove-bom-buffer": "^3.0.0",
+ "vinyl": "^2.0.0"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+ "dev": true
+ },
+ "clone-stats": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
+ "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
+ "dev": true
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
},
"vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
+ "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
"dev": true,
"requires": {
- "clone": "0.2.0",
- "clone-stats": "0.0.1"
+ "clone": "^2.1.1",
+ "clone-buffer": "^1.0.0",
+ "clone-stats": "^1.0.0",
+ "cloneable-readable": "^1.0.0",
+ "remove-trailing-separator": "^1.0.1",
+ "replace-ext": "^1.0.0"
}
}
}
@@ -6910,7 +9492,7 @@
"integrity": "sha1-xfy9Q+LyOEI8LcmL3db3m3K8NFs=",
"dev": true,
"requires": {
- "source-map": "0.1.43"
+ "source-map": "^0.1.39"
},
"dependencies": {
"source-map": {
@@ -6919,7 +9501,7 @@
"integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"dev": true,
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
}
}
@@ -6934,23 +9516,32 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=",
- "dev": true,
"requires": {
- "isexe": "2.0.0"
+ "isexe": "^2.0.0"
}
},
"which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "widest-line": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz",
- "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "which-pm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-1.1.0.tgz",
+ "integrity": "sha512-7GHHJQpALk7BWMD8I+xSILSbHyngvBlfSXlwGpdRFY2voFwVCx+eJAybXTzTnUYmt7zio6B9SEdI81T0fBjxNA==",
"dev": true,
"requires": {
- "string-width": "2.1.1"
+ "load-yaml-file": "^0.1.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
},
"dependencies": {
"ansi-regex": {
@@ -6959,10 +9550,40 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "widest-line": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
+ "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"string-width": {
@@ -6971,8 +9592,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
}
},
"strip-ansi": {
@@ -6981,20 +9602,15 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
},
- "window-size": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
- },
"wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
},
"wrap-ansi": {
@@ -7002,127 +9618,73 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
- "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"requires": {
- "mkdirp": "0.5.1"
+ "mkdirp": "^0.5.1"
}
},
"write-file-atomic": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
- "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz",
+ "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
}
},
"xdg-basedir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz",
- "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=",
- "dev": true,
- "requires": {
- "user-home": "1.1.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+ "dev": true
},
"xlsx": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.13.2.tgz",
- "integrity": "sha512-COExny0yVgLZq7ObWQkEXGzsGGtzHGT3j07nhH+jdh1mfOg5WvEqw19r350j9nOSN4Vsy2co89WlDRk5eZ9CZg==",
- "requires": {
- "adler-32": "1.2.0",
- "cfb": "1.0.8",
- "codepage": "1.14.0",
- "commander": "2.15.1",
- "crc-32": "1.2.0",
- "exit-on-epipe": "1.0.1",
- "ssf": "0.10.2"
- },
- "dependencies": {
- "adler-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
- "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
- "requires": {
- "exit-on-epipe": "1.0.1",
- "printj": "1.1.0"
- }
- },
- "cfb": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz",
- "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=",
- "requires": {
- "commander": "2.15.1",
- "printj": "1.1.2"
- },
- "dependencies": {
- "printj": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
- "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
- }
- }
- },
- "codepage": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz",
- "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=",
- "requires": {
- "commander": "2.14.1",
- "exit-on-epipe": "1.0.1"
- },
- "dependencies": {
- "commander": {
- "version": "2.14.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
- "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
- }
- }
- },
- "commander": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
- "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
- },
- "crc-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
- "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
- "requires": {
- "exit-on-epipe": "1.0.1",
- "printj": "1.1.0"
- }
- },
- "frac": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
- "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
- },
- "ssf": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz",
- "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==",
- "requires": {
- "frac": "1.1.2"
- }
- }
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.3.tgz",
+ "integrity": "sha512-wgt9zGKeFp4WIQdPx+j2sNNbDYRbJ+M+uuFcS16pf2yLo/aKcG3RaD4xmS/LHT5rznc6V27NRwIXNWmxLj6eZw==",
+ "requires": {
+ "adler-32": "~1.2.0",
+ "cfb": "^1.1.0",
+ "codepage": "~1.14.0",
+ "commander": "~2.17.1",
+ "crc-32": "~1.2.0",
+ "exit-on-epipe": "~1.0.1",
+ "ssf": "~0.10.2"
}
},
"xtend": {
@@ -7132,9 +9694,9 @@
"dev": true
},
"y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
},
"yallist": {
"version": "2.1.2",
@@ -7143,33 +9705,110 @@
"dev": true
},
"yargs": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz",
- "integrity": "sha1-M1UUSXfQV1fbuG1uOOwFYSOzpm4=",
- "requires": {
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "lodash.assign": "4.2.0",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "window-size": "0.2.0",
- "y18n": "3.2.1",
- "yargs-parser": "3.2.0"
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
+ "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
+ "requires": {
+ "cliui": "^4.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.0.0"
}
},
"yargs-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-3.2.0.tgz",
- "integrity": "sha1-UIE1XRnZ0MjF2BrakIy05tGGZk8=",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
+ "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
+ "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
+ "dev": true,
"requires": {
- "camelcase": "3.0.0",
- "lodash.assign": "4.2.0"
+ "flat": "^4.1.0",
+ "lodash": "^4.17.11",
+ "yargs": "^12.0.5"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "yargs": {
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
}
}
}
diff --git a/package.json b/package.json
index 34d92122c1..bb81787a9c 100644
--- a/package.json
+++ b/package.json
@@ -29,42 +29,42 @@
"format:test": "prettier test/*.js --write"
},
"dependencies": {
- "dom-storage": "^2.0.1",
- "es6-promise": "^4.2.2",
- "lodash": "^4.17.4",
- "request": "^2.83.0",
- "xlsx": "^0.13.2",
- "yargs": "^5.0.0"
+ "dom-storage": "^2.1.0",
+ "es6-promise": "^4.2.6",
+ "lodash": "^4.17.11",
+ "request": "^2.88.0",
+ "xlsx": "^0.14.3",
+ "yargs": "^13.2.2"
},
"devDependencies": {
"blueimp-md5": "^2.10.0",
- "eslint": "^4.19.1",
- "eslint-config-airbnb-base": "^12.1.0",
- "eslint-config-standard": "^11.0.0",
- "eslint-plugin-import": "^2.12.0",
- "eslint-plugin-node": "^6.0.1",
- "eslint-plugin-promise": "^3.8.0",
- "eslint-plugin-standard": "^3.1.0",
- "gulp": "^3.9.1",
+ "eslint": "^5.16.0",
+ "eslint-config-airbnb-base": "^13.1.0",
+ "eslint-config-standard": "^12.0.0",
+ "eslint-plugin-import": "^2.17.2",
+ "eslint-plugin-node": "^8.0.1",
+ "eslint-plugin-promise": "^4.1.1",
+ "eslint-plugin-standard": "^4.0.0",
+ "gulp": "^4.0.1",
"gulp-concat": "^2.6.1",
"gulp-dereserve": "^0.2.1",
- "gulp-exec": "^2.1.3",
+ "gulp-exec": "^3.0.2",
"gulp-jison": "^1.2.0",
- "gulp-rename": "^1.2.2",
- "gulp-replace": "^0.6.1",
- "gulp-shell": "^0.6.3",
- "gulp-uglify": "^2.1.2",
+ "gulp-rename": "^1.4.0",
+ "gulp-replace": "^1.0.0",
+ "gulp-shell": "^0.7.0",
+ "gulp-uglify": "^3.0.2",
"istanbul": "^0.4.5",
"jison": "^0.4.18",
- "mocha": "^3.5.3",
- "mocha.parallel": "^0.15.3",
- "mversion": "^1.10.1",
- "npm-check": "^5.5.2",
- "open": "0.0.5",
- "prettier": "^1.10.2",
+ "mocha": "^6.1.4",
+ "mocha.parallel": "^0.15.6",
+ "mversion": "^1.13.0",
+ "npm-check": "^5.9.0",
+ "open": "6.2.0",
+ "prettier": "^1.17.0",
"strftime": "^0.10.0",
"tabletop": "^1.5.2",
- "uglify-js": "^3.3.7"
+ "uglify-js": "^3.5.10"
},
"engines": {
"node": "*"
diff --git a/src/15utility.js b/src/15utility.js
index 64878e6c4b..1e39d0a1dd 100755
--- a/src/15utility.js
+++ b/src/15utility.js
@@ -1125,13 +1125,13 @@ if (!Array.isArray) {
*/
var xlsnc = (utils.xlsnc = function(i) {
- var addr = String.fromCharCode(65 + i % 26);
+ var addr = String.fromCharCode(65 + (i % 26));
if (i >= 26) {
i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
if (i > 26) {
i = ((i / 26) | 0) - 1;
- addr = String.fromCharCode(65 + i % 26) + addr;
+ addr = String.fromCharCode(65 + (i % 26)) + addr;
}
}
return addr;
diff --git a/src/18promise.js b/src/18promise.js
index a19d626534..9cd12be415 100755
--- a/src/18promise.js
+++ b/src/18promise.js
@@ -142,24 +142,28 @@ if (!utils.global.Promise) {
e._state === it
? S(t, e._result)
: e._state === st
- ? j(t, e._result)
- : E(
- e,
- void 0,
- function(e) {
- g(t, e);
- },
- function(e) {
- j(t, e);
- }
- );
+ ? j(t, e._result)
+ : E(
+ e,
+ void 0,
+ function(e) {
+ g(t, e);
+ },
+ function(e) {
+ j(t, e);
+ }
+ );
}
function w(t, n, r) {
n.constructor === t.constructor && r === et && constructor.resolve === nt
? b(t, n)
: r === ut
- ? j(t, ut.error)
- : void 0 === r ? S(t, n) : e(r) ? m(t, n, r) : S(t, n);
+ ? j(t, ut.error)
+ : void 0 === r
+ ? S(t, n)
+ : e(r)
+ ? m(t, n, r)
+ : S(t, n);
}
function g(e, n) {
e === n ? j(e, _()) : t(n) ? w(e, n, v(n)) : S(e, n);
@@ -249,10 +253,10 @@ if (!utils.global.Promise) {
? function(n, r) {
for (var o = t.length, i = 0; o > i; i++)
e.resolve(t[i]).then(n, r);
- }
+ }
: function(t, e) {
e(new TypeError('You must pass an array to race.'));
- }
+ }
);
}
function F(t) {
@@ -283,14 +287,14 @@ if (!utils.global.Promise) {
this.promise[rt] || k(this.promise),
Array.isArray(e)
? ((this._input = e),
- (this.length = e.length),
- (this._remaining = e.length),
- (this._result = new Array(this.length)),
- 0 === this.length
+ (this.length = e.length),
+ (this._remaining = e.length),
+ (this._result = new Array(this.length)),
+ 0 === this.length
? S(this.promise, this._result)
: ((this.length = this.length || 0),
- this._enumerate(),
- 0 === this._remaining && S(this.promise, this._result)))
+ this._enumerate(),
+ 0 === this._remaining && S(this.promise, this._result)))
: j(this.promise, U());
}
function U() {
@@ -319,7 +323,7 @@ if (!utils.global.Promise) {
? Array.isArray
: function(t) {
return '[object Array]' === Object.prototype.toString.call(t);
- };
+ };
var B,
G,
H,
@@ -342,7 +346,13 @@ if (!utils.global.Promise) {
tt = new Array(1e3);
H = Z
? o()
- : X ? s() : $ ? u() : void 0 === R && 'function' == typeof require ? f() : c();
+ : X
+ ? s()
+ : $
+ ? u()
+ : void 0 === R && 'function' == typeof require
+ ? f()
+ : c();
var et = l,
nt = h,
rt = Math.random()
@@ -420,10 +430,10 @@ if (!utils.global.Promise) {
'function' == typeof define && define.amd
? define(function() {
return vt;
- })
+ })
: 'undefined' != typeof module && module.exports
- ? (module.exports = vt)
- : 'undefined' != typeof this && (this.ES6Promise = vt),
+ ? (module.exports = vt)
+ : 'undefined' != typeof this && (this.ES6Promise = vt),
dt();
}.call(this));
diff --git a/src/38query.js b/src/38query.js
index d3e9d5ab15..7e480f3855 100755
--- a/src/38query.js
+++ b/src/38query.js
@@ -421,7 +421,7 @@ function doLimit(query) {
}
var limit;
if (query.percent) {
- limit = ((query.data.length * query.limit / 100) | 0) + offset;
+ limit = (((query.data.length * query.limit) / 100) | 0) + offset;
} else {
limit = (query.limit | 0) + offset;
}
@@ -518,8 +518,7 @@ var preIndex = function(query) {
// Save index to original table
alasql.databases[source.databaseid].tables[source.tableid].indices[
hash(source.onrightfns + '`' + source.srcwherefns)
- ] =
- source.ix;
+ ] = source.ix;
}
}
//console.log(38,274,source.ix);
@@ -570,8 +569,7 @@ var preIndex = function(query) {
if (!alasql.databases[source.databaseid].engineid) {
alasql.databases[source.databaseid].tables[source.tableid].indices[
hash(source.wxleftfns + '`')
- ] =
- source.ix;
+ ] = source.ix;
}
}
// Apply where filter to reduces rows
diff --git a/src/39dojoin.js b/src/39dojoin.js
index b1ee637e4e..a5bacb2e9d 100755
--- a/src/39dojoin.js
+++ b/src/39dojoin.js
@@ -158,50 +158,46 @@ function doJoin(query, scope, h) {
// STEP 2
- if (h + 1 < query.sources.length) {
- if (
- nextsource.joinmode == 'OUTER' ||
- nextsource.joinmode == 'RIGHT' ||
- nextsource.joinmode == 'ANTI'
- ) {
- scope[source.alias] = {};
-
- var j = 0;
- var jlen = nextsource.data.length;
- var dataw;
-
- while (
- (dataw = nextsource.data[j]) ||
- (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
- j < jlen
+ if (h == 0) {
+ for (var nh = h + 1; nh < query.sources.length; nh++) {
+ if (
+ nextsource.joinmode == 'OUTER' ||
+ nextsource.joinmode == 'RIGHT' ||
+ nextsource.joinmode == 'ANTI'
) {
- if (nextsource.getfn && !nextsource.dontcache) {
- nextsource.data[j] = dataw;
- }
+ scope[source.alias] = {};
+
+ var j = 0;
+ var jlen = nextsource.data.length;
+ var dataw;
+
+ while (
+ (dataw = nextsource.data[j]) ||
+ (nextsource.getfn && (dataw = nextsource.getfn(j))) ||
+ j < jlen
+ ) {
+ if (nextsource.getfn && !nextsource.dontcache) {
+ nextsource.data[j] = dataw;
+ }
- // console.log(169,dataw._rightjoin,scope);
- if (dataw._rightjoin) {
- delete dataw._rightjoin;
- } else {
- // delete dataw._rightjoin;
- // console.log(163,h,scope);
- if (h == 0) {
- scope[nextsource.alias] = dataw;
- doJoin(query, scope, h + 2);
+ // console.log(169,dataw._rightjoin,scope);
+ if (dataw._rightjoin) {
+ delete dataw._rightjoin;
} else {
- //scope[nextsource.alias] = dataw;
- //doJoin(query, scope, h+2);
- // console.log(169,scope);
+ // delete dataw._rightjoin;
+ // console.log(163,h,scope);
+ scope[nextsource.alias] = dataw;
+ doJoin(query, scope, nh + 1);
}
+ j++;
}
- j++;
+ // debugger;
+ } else {
+ //console.log(180,scope);
}
- // debugger;
- } else {
- //console.log(180,scope);
+ source = query.sources[nh];
+ nextsource = query.sources[nh + 1];
}
- } else {
- // console.log(179,scope);
}
scope[tableid] = undefined;
@@ -210,7 +206,7 @@ function doJoin(query, scope, h) {
if(h+1 < query.sources.length) {
var nextsource = query.sources[h+1];
- if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT"
+ if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT"
|| nextsource.joinmode == "ANTI") {
@@ -224,7 +220,7 @@ function doJoin(query, scope, h) {
//debugger;
// var source = query.sources[h];
-// var tableid = source.alias || source.tableid;
+// var tableid = source.alias || source.tableid;
// var data = source.data;
// Reduce data for looping if there is optimization hint
@@ -254,7 +250,7 @@ function doJoin(query, scope, h) {
// scope[tableid] = {};
// console.log(scope);
doJoin(query,scope,h+2);
- }
+ }
};
// Additional join for LEFT JOINS
diff --git a/src/423groupby.js b/src/423groupby.js
index 0a75166490..e8883642d9 100755
--- a/src/423groupby.js
+++ b/src/423groupby.js
@@ -135,7 +135,7 @@ if(false) {
}
/*
- */
+ */
// s += self.columns.map(function(col){
//console.log('query.selectGroup',query.selectGroup);
s += query.selectGroup
diff --git a/src/55functions.js b/src/55functions.js
index 8a9b8db51c..d5491e4ea7 100755
--- a/src/55functions.js
+++ b/src/55functions.js
@@ -331,7 +331,7 @@ alasql.aggr.QUART = function(v, s, stage, nth) {
nth = !nth ? 1 : nth;
var r = s.sort();
- var p = nth * (r.length + 1) / 4;
+ var p = (nth * (r.length + 1)) / 4;
if (Number.isInteger(p)) {
return r[p - 1]; //Integer value
}
diff --git a/src/56sprintf.js b/src/56sprintf.js
index d7c9a0f953..b447ab88c1 100755
--- a/src/56sprintf.js
+++ b/src/56sprintf.js
@@ -52,16 +52,16 @@ stdfn.SPRINTF = function() {
var fn;
/*
- * The callback function accepts the following properties
- * x.index contains the substring position found at the origin string
- * x[0] contains the found substring
- * x[1] contains the index specifier (as \d+\$ or \d+#)
- * x[2] contains the alignment specifier ("+" or "-" or empty)
- * x[3] contains the padding specifier (space char, "0" or defined as '.)
- * x[4] contains the width specifier (as \d*)
- * x[5] contains the floating-point precision specifier (as \.\d*)
- * x[6] contains the type specifier (as [bcdfosuxX])
- */
+ * The callback function accepts the following properties
+ * x.index contains the substring position found at the origin string
+ * x[0] contains the found substring
+ * x[1] contains the index specifier (as \d+\$ or \d+#)
+ * x[2] contains the alignment specifier ("+" or "-" or empty)
+ * x[3] contains the padding specifier (space char, "0" or defined as '.)
+ * x[4] contains the width specifier (as \d*)
+ * x[5] contains the floating-point precision specifier (as \.\d*)
+ * x[6] contains the type specifier (as [bcdfosuxX])
+ */
return args[0].replace(stdfn.SPRINTF.re, function() {
if (arguments[0] == '%%') {
return '%';
diff --git a/src/61date.js b/src/61date.js
index 4904e055da..681efd531c 100755
--- a/src/61date.js
+++ b/src/61date.js
@@ -111,7 +111,7 @@ stdfn.YEAR = function(d) {
var PERIODS = {
year: 1000 * 3600 * 24 * 365,
- quarter: 1000 * 3600 * 24 * 365 / 4,
+ quarter: (1000 * 3600 * 24 * 365) / 4,
month: 1000 * 3600 * 24 * 30,
week: 1000 * 3600 * 24 * 7,
day: 1000 * 3600 * 24,
diff --git a/src/69while.js b/src/69while.js
index 7e4b357082..52a5af5026 100755
--- a/src/69while.js
+++ b/src/69while.js
@@ -24,8 +24,7 @@ yy.While.prototype.execute = function(databaseid, params, cb) {
// console.log('cb',!!cb);
if (cb) {
var first = false;
- loop();
- function loop(data) {
+ var loop = function(data) {
if (first) {
res.push(data);
} else {
@@ -38,7 +37,8 @@ yy.While.prototype.execute = function(databaseid, params, cb) {
res = cb(res);
}
}, 0);
- }
+ };
+ loop();
} else {
while (fn(params, alasql)) {
var res1 = self.loopstat.execute(databaseid, params);
diff --git a/src/80console.js b/src/80console.js
index eef2c06d85..82ce77f736 100755
--- a/src/80console.js
+++ b/src/80console.js
@@ -298,7 +298,7 @@ function scrollTo(element, to, duration) {
return;
}
var difference = to - element.scrollTop;
- var perTick = difference / duration * 10;
+ var perTick = (difference / duration) * 10;
setTimeout(function() {
if (element.scrollTop === to) {
diff --git a/src/833xlsx.js b/src/833xlsx.js
index 98cf79c56d..2429169f4a 100755
--- a/src/833xlsx.js
+++ b/src/833xlsx.js
@@ -174,12 +174,12 @@ alasql.into.XLSX = function(filename, opts, data, columns, cb) {
var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
var wbout = XLSX.write(wb, wopts);
- function s2ab(s) {
+ var s2ab = function(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
return buf;
- }
+ };
/* the saveAs call downloads a file on the local machine */
// saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '"'+filename+'"')
diff --git a/src/FileSaver.js b/src/FileSaver.js
index 9ede569b25..d1be862abb 100755
--- a/src/FileSaver.js
+++ b/src/FileSaver.js
@@ -106,7 +106,7 @@ var saveAs =
: reader.result.replace(
/^data:[^;]*;/,
'data:attachment/file;'
- );
+ );
var popup = view.open(url, '_blank');
if (!popup) view.location.href = url;
url = undefined; // release reference before dispatching
diff --git a/src/alasqlparser.js b/src/alasqlparser.js
index 71126b4b2a..ae3bf37242 100755
--- a/src/alasqlparser.js
+++ b/src/alasqlparser.js
@@ -1898,7 +1898,7 @@ _handle_error:
// Return the rule stack depth where the nearest error rule can be found.
// Return FALSE when no error recovery rule was found.
- function locateNearestErrorRecoveryRule(state) {
+ var locateNearestErrorRecoveryRule = function(state) {
var stack_probe = stack.length - 1;
var depth = 0;
@@ -2973,4 +2973,4 @@ exports.main = function commonjsMain(args) {
if (typeof module !== 'undefined' && require.main === module) {
exports.main(process.argv.slice(1));
}
-}
\ No newline at end of file
+}
diff --git a/test/test251.js b/test/test251.js
index 0e6bf381bc..114a70de6d 100644
--- a/test/test251.js
+++ b/test/test251.js
@@ -8,6 +8,8 @@ if (typeof exports === 'object') {
describe('Test 251 Overwrite XLSX file', function() {
if (typeof exports === 'object') {
it('1. Overwrite', function(done) {
+ alasql('SELECT * INTO XLSX("' + __dirname + '/test251.xlsx", {headers:true}) from ?', [{a: 1, b: 2}]);
+
alasql(
'SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW()) \
INTO XLSX("' +
diff --git a/test/test383.js b/test/test383.js
index b8f69e0df8..a6d14e6796 100644
--- a/test/test383.js
+++ b/test/test383.js
@@ -104,7 +104,7 @@ describe('Test 383 - MySQL compatibility issue #452', function() {
alasql('UPDATE org4 SET name="George"');
var res = alasql('SELECT * FROM org4');
- assert(res[0].lastUpdateTime > res[0].createTime);
+ assert(res[0].lastUpdateTime >= res[0].createTime);
done();
});
});
diff --git a/test/test800.js b/test/test800.js
index b48cb52821..7eddf5bff2 100644
--- a/test/test800.js
+++ b/test/test800.js
@@ -6,6 +6,15 @@ if (typeof exports === 'object') {
}
describe('Test 800 - OUTER JOIN missing ids', function() {
+ before(function() {
+ alasql('CREATE DATABASE test800;USE test800');
+ });
+
+ after(function() {
+ alasql.options.modifier = undefined;
+ alasql('DROP DATABASE test800');
+ });
+
it('1. ARRAY()', function(done) {
var t1 = [
{id: '1', a: 'one'},
diff --git a/test/test801.js b/test/test801.js
new file mode 100644
index 0000000000..95eb70de7b
--- /dev/null
+++ b/test/test801.js
@@ -0,0 +1,55 @@
+if (typeof exports === 'object') {
+ var assert = require('assert');
+ var alasql = require('..');
+} else {
+ __dirname = '.';
+}
+
+describe('Test 801 - OUTER JOIN of 4 tables', function() {
+ it('1. ARRAY()', function(done) {
+ var t1 = [
+ {id: '1', a: 'one'},
+ {id: '2', a: 'two'},
+ {id: '3', a: 'three'},
+ {id: '4', a: 'four'}
+ ];
+ var t2 = [
+ {id: '1', b: 'A'},
+ {id: '2', b: 'B'},
+ {id: '5', b: 'E'},
+ {id: '6', b: 'F'}
+ ];
+ var t3 = [
+ {id: '1', c: 'I'},
+ {id: '4', c: 'IV'},
+ {id: '5', c: 'V'},
+ {id: '7', c: 'VII'},
+ {id: '8', c: 'VIII'}
+ ];
+ var t4 = [
+ {id: '1', d: 'a'},
+ {id: '8', d: 'h'},
+ {id: '9', d: 'i'}
+ ];
+
+ var res = alasql('SELECT * FROM ? T1 ' +
+ 'OUTER JOIN ? T2 ON T1.id = T2.id ' +
+ 'OUTER JOIN ? T3 ON T1.id = T3.id OR T2.id = T3.id ' +
+ 'OUTER JOIN ? T4 ON T1.id = T4.id OR T2.id = T4.id OR T3.id = T4.id', [t1, t2, t3, t4]);
+
+ var expected = [
+ {id: '1', a: 'one', b: 'A', c: 'I', d: 'a'},
+ {id: '2', a: 'two', b: 'B'},
+ {id: '3', a: 'three'},
+ {id: '4', a: 'four', c: 'IV'},
+ {id: '5', b: 'E', c: 'V'},
+ {id: '6', b: 'F'},
+ {id: '7', c: 'VII'},
+ {id: '8', c: 'VIII', d: 'h'},
+ {id: '9', d: 'i'}
+ ];
+
+ assert.deepEqual(res, expected);
+ done();
+ });
+});