diff --git a/.eslintrc.yml b/.eslintrc.yml index 68397743e6..e0b7e03c6c 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -1,15 +1,15 @@ env: node: true -extends: 'eslint:recommended' + es6: true rules: accessor-pairs: error array-bracket-newline: error array-bracket-spacing: error array-callback-return: error array-element-newline: 0 - arrow-body-style: error - arrow-parens: error - arrow-spacing: error + arrow-body-style: 0 + arrow-parens: 0 + arrow-spacing: 0 block-scoped-var: 'off' block-spacing: error brace-style: 0 @@ -29,7 +29,7 @@ rules: default-case: error dot-location: 0 dot-notation: error - eol-last: error + eol-last: 0 eqeqeq: error for-direction: error func-call-spacing: error @@ -41,7 +41,7 @@ rules: function-paren-newline: 0 generator-star-spacing: error getter-return: error - global-require: error + global-require: 0 guard-for-in: error handle-callback-err: error id-blacklist: error @@ -52,11 +52,11 @@ rules: indent-legacy: 'off' init-declarations: 'off' jsx-quotes: 'off' - key-spacing: error + key-spacing: 0 keyword-spacing: - - error - - after: true - before: true + - 0 + - after: 0 + - before: 0 line-comment-position: 'off' linebreak-style: 'off' lines-around-comment: 'off' @@ -81,9 +81,9 @@ rules: no-bitwise: 0 no-buffer-constructor: error no-caller: error - no-catch-shadow: error + no-catch-shadow: 0 no-confusing-arrow: error - no-continue: error + no-continue: 0 no-div-regex: error no-duplicate-imports: error no-else-return: 'off' @@ -108,9 +108,9 @@ rules: no-labels: error no-lone-blocks: error no-lonely-if: 'off' - no-loop-func: error + no-loop-func: 0 no-magic-numbers: 'off' - no-mixed-operators: error + no-mixed-operators: 0 no-mixed-requires: error no-multi-assign: 'off' no-multi-spaces: error @@ -146,7 +146,7 @@ rules: no-shadow: 0 no-shadow-restricted-names: error no-spaced-func: error - no-sync: error + no-sync: 0 no-tabs: 'off' no-template-curly-in-string: 'off' no-ternary: 'off' @@ -154,11 +154,11 @@ rules: no-trailing-spaces: 0 no-undef-init: error no-undefined: 'off' - no-underscore-dangle: error + no-underscore-dangle: 0 no-unmodified-loop-condition: error no-unneeded-ternary: error no-unused-expressions: error - no-use-before-define: error + no-use-before-define: 0 no-useless-call: error no-useless-computed-key: error no-useless-concat: 0 @@ -166,13 +166,13 @@ rules: no-useless-rename: error no-useless-return: error no-var: 'off' - no-void: error + no-void: 0 no-warning-comments: 0 no-whitespace-before-property: 0 no-with: error nonblock-statement-body-position: 0 - object-curly-newline: error - object-curly-spacing: error + object-curly-newline: 0 + object-curly-spacing: 0 object-property-newline: 'off' object-shorthand: 0 one-var: 'off' @@ -192,7 +192,7 @@ rules: prefer-template: 'off' quote-props: 'off' quotes: 'off' - radix: error + radix: 0 require-await: error require-jsdoc: 'off' rest-spread-spacing: error @@ -214,7 +214,7 @@ rules: - never switch-colon-spacing: error symbol-description: error - template-curly-spacing: error + template-curly-spacing: 0 template-tag-spacing: error unicode-bom: - error @@ -230,3 +230,6 @@ rules: globals: - alasql: 1 - yy: 1 +parserOptions: + ecmaVersion: 6 + sourceType: "module" diff --git a/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/61d8a9d269a70d9959ae7e4257319275d90697d3 b/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/61d8a9d269a70d9959ae7e4257319275d90697d3 new file mode 100644 index 0000000000..e40de72c5c --- /dev/null +++ b/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/61d8a9d269a70d9959ae7e4257319275d90697d3 @@ -0,0 +1 @@ +{"code":"import options from './17options';\r\nvar yy = {};\r\nvar mem = {};\r\nexport default (alasql = function (sql, params, cb, scope) {\r\n params = params || [];\r\n if (typeof importScripts !== 'function' && mem.webworker) {\r\n var id = mem.lastid++;\r\n mem.buffer[id] = cb;\r\n mem.webworker.postMessage({ id: id, sql: sql, params: params });\r\n return;\r\n }\r\n if (arguments.length === 0) {\r\n // Without arguments - Fluent interface\r\n return new yy.Select({\r\n columns: [new yy.Column({ columnid: '*' })],\r\n from: [new yy.ParamValue({ param: 0 })]\r\n });\r\n }\r\n else if (arguments.length === 1) {\r\n // Access promise notation without using `.promise(...)`\r\n if (sql.constructor === Array) {\r\n return alasql.promise(sql);\r\n }\r\n }\r\n // Avoid setting params if not needed even with callback\r\n if (typeof params === 'function') {\r\n scope = cb;\r\n cb = params;\r\n params = [];\r\n }\r\n if (typeof params !== 'object') {\r\n params = [params];\r\n }\r\n // Standard interface\r\n // alasql('#sql');\r\n if (typeof sql === 'string' && sql[0] === '#' && typeof document === 'object') {\r\n sql = document.querySelector(sql).textContent;\r\n }\r\n else if (typeof sql === 'object' && sql instanceof HTMLElement) {\r\n sql = sql.textContent;\r\n }\r\n else if (typeof sql === 'function') {\r\n // to run multiline functions\r\n sql = sql.toString();\r\n sql = (/\\/\\*([\\S\\s]+)\\*\\//m.exec(sql) || [\r\n '',\r\n 'Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function.',\r\n ])[1];\r\n }\r\n // Run SQL\r\n return alasql.exec(sql, params, cb, scope);\r\n});\r\n/**\r\n Current version of alasql\r\n @constant {string}\r\n*/\r\nalasql.version = 'PACKAGE_VERSION_NUMBER';\r\n/**\r\n Debug flag\r\n @type {boolean}\r\n*/\r\nalasql.debug = undefined; // Initial debug variable\r\noptions(alasql);\r\n/*only-for-browser/*\r\nvar require = function(){return null}; // as alasqlparser.js is generated, we can not \"remove\" referenses to\r\nvar __dirname = '';\r\n//*/\r\n"} diff --git a/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/9ba0babc08f61e7c2d760119b86e7f4bec3d7598 b/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/9ba0babc08f61e7c2d760119b86e7f4bec3d7598 new file mode 100644 index 0000000000..2f8b5f991f --- /dev/null +++ b/.rpt2_cache/107a9a1377508c9b64b3153f5ace926e4b133f64/code/cache/9ba0babc08f61e7c2d760119b86e7f4bec3d7598 @@ -0,0 +1 @@ +{"code":"var hash = function (x) { return x; };\r\nexport default function options(alasql) {\r\n // Initial parameters\r\n var alasqlparser = require('./alasqlparser.js');\r\n alasql.parser = alasqlparser.parser;\r\n /**\r\n Jison parser\r\n */\r\n //alasql.parser = alasqlparser;\r\n /*/* This is not working :-/ * /\r\n alasql.parser.parseError = function(str, hash) {\r\n throw new Error('Have you used a reserved keyword without `escaping` it?\\n' + str);\r\n };/*\r\n\n /**\r\n Jison parser\r\n @param {string} sql SQL statement\r\n @return {object} AST (Abstract Syntax Tree)\r\n\n @todo Create class AST\r\n @todo Add other parsers\r\n\n @example\r\n alasql.parse = function(sql) {\r\n // My own parser here\r\n }\r\n */\r\n alasql.parse = function (sql) {\r\n return alasqlparser.parse(alasql.utils.uncomment(sql));\r\n };\r\n /**\r\n List of engines of external databases\r\n @type {object}\r\n @todo Create collection type\r\n */\r\n alasql.engines = {};\r\n /**\r\n List of databases\r\n @type {object}\r\n */\r\n alasql.databases = {};\r\n /**\r\n Number of databases\r\n @type {number}\r\n*/\r\n alasql.databasenum = 0;\r\n /**\r\n Alasql options object\r\n */\r\n alasql.options = {};\r\n alasql.options.errorlog = false; // Log or throw error\r\n alasql.options.valueof = false; // Use valueof in orderfn\r\n alasql.options.dropifnotexists = false; // DROP database in any case\r\n alasql.options.datetimeformat = 'sql'; // How to handle DATE and DATETIME types\r\n // Another value is 'javascript'\r\n alasql.options.casesensitive = true; // Table and column names are case sensitive and converted to lower-case\r\n alasql.options.logtarget = 'output'; // target for log. Values: 'console', 'output', 'id' of html tag\r\n alasql.options.logprompt = true; // Print SQL at log\r\n alasql.options.progress = false; // Callback for async queries progress\r\n // Default modifier\r\n // values: RECORDSET, VALUE, ROW, COLUMN, MATRIX, TEXTSTRING, INDEX\r\n alasql.options.modifier = undefined;\r\n // How many rows to lookup to define columns\r\n alasql.options.columnlookup = 10;\r\n // Create vertex if not found\r\n alasql.options.autovertex = true;\r\n // Use dbo as current database (for partial T-SQL comaptibility)\r\n alasql.options.usedbo = true;\r\n // AUTOCOMMIT ON | OFF\r\n alasql.options.autocommit = true;\r\n // Use cache\r\n alasql.options.cache = true;\r\n // Compatibility flags\r\n alasql.options.tsql = true;\r\n alasql.options.mysql = true;\r\n alasql.options.postgres = true;\r\n alasql.options.oracle = true;\r\n alasql.options.sqlite = true;\r\n alasql.options.orientdb = true;\r\n // for SET NOCOUNT OFF\r\n alasql.options.nocount = false;\r\n // Check for NaN and convert it to undefined\r\n alasql.options.nan = false;\r\n alasql.options.joinstar = 'overwrite'; // Option for SELECT * FROM a,b\r\n //alasql.options.worker = false;\r\n // Variables\r\n alasql.vars = {};\r\n alasql.declares = {};\r\n alasql.prompthistory = [];\r\n alasql.plugins = {}; // If plugin already loaded\r\n alasql.from = {}; // FROM functions\r\n alasql.into = {}; // INTO functions\r\n alasql.fn = {};\r\n alasql.aggr = {};\r\n alasql.busy = 0;\r\n // Cache\r\n alasql.MAXSQLCACHESIZE = 10000;\r\n alasql.DEFAULTDATABASEID = 'alasql';\r\n /* WebWorker */\r\n alasql.lastid = 0;\r\n alasql.buffer = {};\r\n /**\r\n Select current database\r\n @param {string} databaseid Selected database identificator\r\n */\r\n alasql.use = function (databaseid) {\r\n if (!databaseid) {\r\n databaseid = alasql.DEFAULTDATABASEID;\r\n }\r\n if (alasql.useid === databaseid) {\r\n return;\r\n }\r\n alasql.useid = databaseid;\r\n var db = alasql.databases[alasql.useid];\r\n alasql.tables = db.tables;\r\n //\talasql.fn = db.fn;\r\n db.resetSqlCache();\r\n if (alasql.options.usedbo) {\r\n alasql.databases.dbo = db; // Operator???\r\n }\r\n };\r\n alasql.autoval = function (tablename, colname, getNext, databaseid) {\r\n var db = databaseid ? alasql.databases[databaseid] : alasql.databases[alasql.useid];\r\n if (!db.tables[tablename]) {\r\n throw new Error('Tablename not found: ' + tablename);\r\n }\r\n if (!db.tables[tablename].identities[colname]) {\r\n throw new Error('Colname not found: ' + colname);\r\n }\r\n if (getNext) {\r\n return db.tables[tablename].identities[colname].value || null;\r\n }\r\n return (db.tables[tablename].identities[colname].value -\r\n db.tables[tablename].identities[colname].step || null);\r\n };\r\n /**\r\n Run single SQL statement on current database\r\n */\r\n alasql.exec = function (sql, params, cb, scope) {\r\n // Avoid setting params if not needed even with callback\r\n if (typeof params === 'function') {\r\n scope = cb;\r\n cb = params;\r\n params = {};\r\n }\r\n delete alasql.error;\r\n params = params || {};\r\n if (alasql.options.errorlog) {\r\n try {\r\n return alasql.dexec(alasql.useid, sql, params, cb, scope);\r\n }\r\n catch (err) {\r\n alasql.error = err;\r\n if (cb) {\r\n cb(null, alasql.error);\r\n }\r\n }\r\n }\r\n else {\r\n return alasql.dexec(alasql.useid, sql, params, cb, scope);\r\n }\r\n };\r\n /**\r\n Run SQL statement on specific database\r\n */\r\n alasql.dexec = function (databaseid, sql, params, cb, scope) {\r\n var db = alasql.databases[databaseid];\r\n //\tif(db.databaseid != databaseid) console.trace('got!');\r\n //\tconsole.log(3,db.databaseid,databaseid);\r\n var hh;\r\n // Create hash\r\n if (alasql.options.cache) {\r\n hh = hash(sql);\r\n var statement = db.sqlCache[hh];\r\n // If database structure was not changed since last time return cache\r\n if (statement && db.dbversion === statement.dbversion) {\r\n return statement(params, cb);\r\n }\r\n }\r\n // Create AST\r\n var ast = alasql.parse(sql);\r\n if (!ast.statements) {\r\n return;\r\n }\r\n if (0 === ast.statements.length) {\r\n return 0;\r\n }\r\n else if (1 === ast.statements.length) {\r\n if (ast.statements[0].compile) {\r\n // Compile and Execute\r\n var statement = ast.statements[0].compile(databaseid, params);\r\n if (!statement) {\r\n return;\r\n }\r\n statement.sql = sql;\r\n statement.dbversion = db.dbversion;\r\n if (alasql.options.cache) {\r\n // Secure sqlCache size\r\n if (db.sqlCacheSize > alasql.MAXSQLCACHESIZE) {\r\n db.resetSqlCache();\r\n }\r\n db.sqlCacheSize++;\r\n db.sqlCache[hh] = statement;\r\n }\r\n var res = (alasql.res = statement(params, cb, scope));\r\n return res;\r\n }\r\n else {\r\n //\t\t\tconsole.log(ast.statements[0]);\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));\r\n return res;\r\n }\r\n }\r\n else {\r\n // Multiple statements\r\n if (cb) {\r\n alasql.adrun(databaseid, ast, params, cb, scope);\r\n }\r\n else {\r\n return alasql.drun(databaseid, ast, params, cb, scope);\r\n }\r\n }\r\n };\r\n /**\r\n Run multiple statements and return array of results sync\r\n */\r\n alasql.drun = function (databaseid, ast, params, cb, scope) {\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {\r\n if (ast.statements[i]) {\r\n if (ast.statements[i].compile) {\r\n var statement = ast.statements[i].compile(alasql.useid);\r\n res.push((alasql.res = statement(params, null, scope)));\r\n }\r\n else {\r\n alasql.precompile(ast.statements[i], alasql.useid, params);\r\n res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));\r\n }\r\n }\r\n }\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n if (cb) {\r\n cb(res);\r\n }\r\n alasql.res = res;\r\n return res;\r\n };\r\n /**\r\n Run multiple statements and return array of results async\r\n */\r\n alasql.adrun = function (databaseid, ast, params, cb, scope) {\r\n var idx = 0;\r\n var noqueries = ast.statements.length;\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n //\talasql.busy++;\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n function adrunone(data) {\r\n if (data !== undefined) {\r\n res.push(data);\r\n }\r\n var astatement = ast.statements.shift();\r\n if (!astatement) {\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n cb(res);\r\n //\t\t\talasql.busy--;\r\n //\t\t\tif(alasql.busy<0) alasql.busy = 0;\r\n }\r\n else {\r\n if (astatement.compile) {\r\n var statement = astatement.compile(alasql.useid);\r\n statement(params, adrunone, scope);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n else {\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n astatement.execute(alasql.useid, params, adrunone);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n }\r\n }\r\n adrunone(); /** @todo Check, why data is empty here */\r\n };\r\n /**\r\n Compile statement to JavaScript function\r\n @param {string} sql SQL statement\r\n @param {string} databaseid Database identificator\r\n @return {functions} Compiled statement functions\r\n*/\r\n alasql.compile = function (sql, databaseid) {\r\n databaseid = databaseid || alasql.useid;\r\n var ast = alasql.parse(sql); // Create AST\r\n if (1 === ast.statements.length) {\r\n var statement = ast.statements[0].compile(databaseid);\r\n statement.promise = function (params) {\r\n return (new Promise(function (resolve, reject) {\r\n statement(params, function (data, err) {\r\n if (err) {\r\n reject(err);\r\n }\r\n else {\r\n resolve(data);\r\n }\r\n });\r\n }));\r\n };\r\n return statement;\r\n /*/*\r\n if(kind == 'value') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n var key = Object.keys(res[0])[0];\r\n if(cb) cb(res[0][key]);\r\n return res[0][key];\r\n };\r\n } else if(kind == 'single') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n if(cb) cb(res[0]);\r\n return res[0];\r\n }\r\n } else if(kind == 'row') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var a = [];\r\n for(var key in res[0]) {\r\n a.push(res[0][key]);\r\n };\r\n if(cb) cb(a);\r\n return a;\r\n }\r\n } else if(kind == 'column') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var ar = [];\r\n var key = Object.keys(res)[0];\r\n for(var i=0, ilen=res.length; i alasql.MAXSQLCACHESIZE) {\r\n db.resetSqlCache();\r\n }\r\n db.sqlCacheSize++;\r\n db.sqlCache[hh] = statement;\r\n }\r\n var res = (alasql.res = statement(params, cb, scope));\r\n return res;\r\n }\r\n else {\r\n //\t\t\tconsole.log(ast.statements[0]);\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));\r\n return res;\r\n }\r\n }\r\n else {\r\n // Multiple statements\r\n if (cb) {\r\n alasql.adrun(databaseid, ast, params, cb, scope);\r\n }\r\n else {\r\n return alasql.drun(databaseid, ast, params, cb, scope);\r\n }\r\n }\r\n };\r\n /**\r\n Run multiple statements and return array of results sync\r\n */\r\n alasql.drun = function (databaseid, ast, params, cb, scope) {\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {\r\n if (ast.statements[i]) {\r\n if (ast.statements[i].compile) {\r\n var statement = ast.statements[i].compile(alasql.useid);\r\n res.push((alasql.res = statement(params, null, scope)));\r\n }\r\n else {\r\n alasql.precompile(ast.statements[i], alasql.useid, params);\r\n res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));\r\n }\r\n }\r\n }\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n if (cb) {\r\n cb(res);\r\n }\r\n alasql.res = res;\r\n return res;\r\n };\r\n /**\r\n Run multiple statements and return array of results async\r\n */\r\n alasql.adrun = function (databaseid, ast, params, cb, scope) {\r\n var idx = 0;\r\n var noqueries = ast.statements.length;\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n //\talasql.busy++;\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n var adrunone = function (data) {\r\n if (data !== undefined) {\r\n res.push(data);\r\n }\r\n var astatement = ast.statements.shift();\r\n if (!astatement) {\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n cb(res);\r\n //\t\t\talasql.busy--;\r\n //\t\t\tif(alasql.busy<0) alasql.busy = 0;\r\n }\r\n else {\r\n if (astatement.compile) {\r\n var statement = astatement.compile(alasql.useid);\r\n statement(params, adrunone, scope);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n else {\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n astatement.execute(alasql.useid, params, adrunone);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n }\r\n };\r\n adrunone(); /** @todo Check, why data is empty here */\r\n };\r\n /**\r\n Compile statement to JavaScript function\r\n @param {string} sql SQL statement\r\n @param {string} databaseid Database identificator\r\n @return {functions} Compiled statement functions\r\n*/\r\n alasql.compile = function (sql, databaseid) {\r\n databaseid = databaseid || alasql.useid;\r\n var ast = alasql.parse(sql); // Create AST\r\n if (1 === ast.statements.length) {\r\n var statement = ast.statements[0].compile(databaseid);\r\n statement.promise = function (params) {\r\n return (new Promise(function (resolve, reject) {\r\n statement(params, function (data, err) {\r\n if (err) {\r\n reject(err);\r\n }\r\n else {\r\n resolve(data);\r\n }\r\n });\r\n }));\r\n };\r\n return statement;\r\n /*/*\r\n if(kind == 'value') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n var key = Object.keys(res[0])[0];\r\n if(cb) cb(res[0][key]);\r\n return res[0][key];\r\n };\r\n } else if(kind == 'single') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n if(cb) cb(res[0]);\r\n return res[0];\r\n }\r\n } else if(kind == 'row') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var a = [];\r\n for(var key in res[0]) {\r\n a.push(res[0][key]);\r\n };\r\n if(cb) cb(a);\r\n return a;\r\n }\r\n } else if(kind == 'column') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var ar = [];\r\n var key = Object.keys(res)[0];\r\n for(var i=0, ilen=res.length; i alasql.MAXSQLCACHESIZE) {\r\n db.resetSqlCache();\r\n }\r\n db.sqlCacheSize++;\r\n db.sqlCache[hh] = statement;\r\n }\r\n var res = (alasql.res = statement(params, cb, scope));\r\n return res;\r\n }\r\n else {\r\n //\t\t\tconsole.log(ast.statements[0]);\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));\r\n return res;\r\n }\r\n }\r\n else {\r\n // Multiple statements\r\n if (cb) {\r\n alasql.adrun(databaseid, ast, params, cb, scope);\r\n }\r\n else {\r\n return alasql.drun(databaseid, ast, params, cb, scope);\r\n }\r\n }\r\n };\r\n /**\r\n Run multiple statements and return array of results sync\r\n */\r\n alasql.drun = function (databaseid, ast, params, cb, scope) {\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {\r\n if (ast.statements[i]) {\r\n if (ast.statements[i].compile) {\r\n var statement = ast.statements[i].compile(alasql.useid);\r\n res.push((alasql.res = statement(params, null, scope)));\r\n }\r\n else {\r\n alasql.precompile(ast.statements[i], alasql.useid, params);\r\n res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));\r\n }\r\n }\r\n }\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n if (cb) {\r\n cb(res);\r\n }\r\n alasql.res = res;\r\n return res;\r\n };\r\n /**\r\n Run multiple statements and return array of results async\r\n */\r\n alasql.adrun = function (databaseid, ast, params, cb, scope) {\r\n var idx = 0;\r\n var noqueries = ast.statements.length;\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n //\talasql.busy++;\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n function adrunone(data) {\r\n if (data !== undefined) {\r\n res.push(data);\r\n }\r\n var astatement = ast.statements.shift();\r\n if (!astatement) {\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n cb(res);\r\n //\t\t\talasql.busy--;\r\n //\t\t\tif(alasql.busy<0) alasql.busy = 0;\r\n }\r\n else {\r\n if (astatement.compile) {\r\n var statement = astatement.compile(alasql.useid);\r\n statement(params, adrunone, scope);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n else {\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n astatement.execute(alasql.useid, params, adrunone);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n }\r\n }\r\n adrunone(); /** @todo Check, why data is empty here */\r\n };\r\n /**\r\n Compile statement to JavaScript function\r\n @param {string} sql SQL statement\r\n @param {string} databaseid Database identificator\r\n @return {functions} Compiled statement functions\r\n*/\r\n alasql.compile = function (sql, databaseid) {\r\n databaseid = databaseid || alasql.useid;\r\n var ast = alasql.parse(sql); // Create AST\r\n if (1 === ast.statements.length) {\r\n var statement = ast.statements[0].compile(databaseid);\r\n statement.promise = function (params) {\r\n return (new Promise(function (resolve, reject) {\r\n statement(params, function (data, err) {\r\n if (err) {\r\n reject(err);\r\n }\r\n else {\r\n resolve(data);\r\n }\r\n });\r\n }));\r\n };\r\n return statement;\r\n /*/*\r\n if(kind == 'value') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n var key = Object.keys(res[0])[0];\r\n if(cb) cb(res[0][key]);\r\n return res[0][key];\r\n };\r\n } else if(kind == 'single') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n if(cb) cb(res[0]);\r\n return res[0];\r\n }\r\n } else if(kind == 'row') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var a = [];\r\n for(var key in res[0]) {\r\n a.push(res[0][key]);\r\n };\r\n if(cb) cb(a);\r\n return a;\r\n }\r\n } else if(kind == 'column') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var ar = [];\r\n var key = Object.keys(res)[0];\r\n for(var i=0, ilen=res.length; i alasql.MAXSQLCACHESIZE) {\r\n db.resetSqlCache();\r\n }\r\n db.sqlCacheSize++;\r\n db.sqlCache[hh] = statement;\r\n }\r\n var res = (alasql.res = statement(params, cb, scope));\r\n return res;\r\n }\r\n else {\r\n //\t\t\tconsole.log(ast.statements[0]);\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n var res = (alasql.res = ast.statements[0].execute(databaseid, params, cb, scope));\r\n return res;\r\n }\r\n }\r\n else {\r\n // Multiple statements\r\n if (cb) {\r\n alasql.adrun(databaseid, ast, params, cb, scope);\r\n }\r\n else {\r\n return alasql.drun(databaseid, ast, params, cb, scope);\r\n }\r\n }\r\n };\r\n /**\r\n Run multiple statements and return array of results sync\r\n */\r\n alasql.drun = function (databaseid, ast, params, cb, scope) {\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n for (var i = 0, ilen = ast.statements.length; i < ilen; i++) {\r\n if (ast.statements[i]) {\r\n if (ast.statements[i].compile) {\r\n var statement = ast.statements[i].compile(alasql.useid);\r\n res.push((alasql.res = statement(params, null, scope)));\r\n }\r\n else {\r\n alasql.precompile(ast.statements[i], alasql.useid, params);\r\n res.push((alasql.res = ast.statements[i].execute(alasql.useid, params)));\r\n }\r\n }\r\n }\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n if (cb) {\r\n cb(res);\r\n }\r\n alasql.res = res;\r\n return res;\r\n };\r\n /**\r\n Run multiple statements and return array of results async\r\n */\r\n alasql.adrun = function (databaseid, ast, params, cb, scope) {\r\n var idx = 0;\r\n var noqueries = ast.statements.length;\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n //\talasql.busy++;\r\n var useid = alasql.useid;\r\n if (useid !== databaseid) {\r\n alasql.use(databaseid);\r\n }\r\n var res = [];\r\n function adrunone(data) {\r\n if (data !== undefined) {\r\n res.push(data);\r\n }\r\n var astatement = ast.statements.shift();\r\n if (!astatement) {\r\n if (useid !== databaseid) {\r\n alasql.use(useid);\r\n }\r\n cb(res);\r\n //\t\t\talasql.busy--;\r\n //\t\t\tif(alasql.busy<0) alasql.busy = 0;\r\n }\r\n else {\r\n if (astatement.compile) {\r\n var statement = astatement.compile(alasql.useid);\r\n statement(params, adrunone, scope);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n else {\r\n alasql.precompile(ast.statements[0], alasql.useid, params);\r\n astatement.execute(alasql.useid, params, adrunone);\r\n if (alasql.options.progress !== false) {\r\n alasql.options.progress(noqueries, idx++);\r\n }\r\n }\r\n }\r\n }\r\n adrunone(); /** @todo Check, why data is empty here */\r\n };\r\n /**\r\n Compile statement to JavaScript function\r\n @param {string} sql SQL statement\r\n @param {string} databaseid Database identificator\r\n @return {functions} Compiled statement functions\r\n*/\r\n alasql.compile = function (sql, databaseid) {\r\n databaseid = databaseid || alasql.useid;\r\n var ast = alasql.parse(sql); // Create AST\r\n if (1 === ast.statements.length) {\r\n var statement = ast.statements[0].compile(databaseid);\r\n statement.promise = function (params) {\r\n return (new Promise(function (resolve, reject) {\r\n statement(params, function (data, err) {\r\n if (err) {\r\n reject(err);\r\n }\r\n else {\r\n resolve(data);\r\n }\r\n });\r\n }));\r\n };\r\n return statement;\r\n /*/*\r\n if(kind == 'value') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n var key = Object.keys(res[0])[0];\r\n if(cb) cb(res[0][key]);\r\n return res[0][key];\r\n };\r\n } else if(kind == 'single') {\r\n return function(params,cb) {\r\n var res = statementfn(params);\r\n if(cb) cb(res[0]);\r\n return res[0];\r\n }\r\n } else if(kind == 'row') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var a = [];\r\n for(var key in res[0]) {\r\n a.push(res[0][key]);\r\n };\r\n if(cb) cb(a);\r\n return a;\r\n }\r\n } else if(kind == 'column') {\r\n return function(params,cb) {\r\n var res = statementfn(params,cb);\r\n var ar = [];\r\n var key = Object.keys(res)[0];\r\n for(var i=0, ilen=res.length; i" - ], - "homepage": "alasql.org", - "repository": { - "type": "git", - "url": "https://github.com/agershun/alasql.git" - }, - "dependencies": { - "js-xlsx": "~0.11.5", - "es6-promise": "~3.0" - }, - "devDependencies": { - "gulp": "3.8.11", - "gulp-changed": "1.2.1", - "gulp-concat-sourcemap": "1.3.1", - "gulp-shell": "0.4.1", - "jison": "0.4.15", - "lodash": "3.7.0" - }, - "main": [ - "./dist/alasql.min.js" - ], - "ignore": [ - "src", - "test", - "test-sql", - "node_modules", - "bower.json", - "gruntfile.js", - "package.json", - "README.md", - "bin", - "lib" - ], - "version": "0.4.6" -} diff --git a/build/ES6/alasqlObj.js b/build/ES6/alasqlObj.js new file mode 100644 index 0000000000..6c0e68bec1 --- /dev/null +++ b/build/ES6/alasqlObj.js @@ -0,0 +1,80 @@ +/** + 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(); + */ +export default function logic(mem) { + let yy = mem.grammar.yy; + return function (sql, params, cb, scope) { + params = params || []; + if (typeof importScripts !== 'function' && mem.alasql.webworker) { + var id = mem.alasql.lastid++; + mem.alasql.buffer[id] = cb; + mem.alasql.webworker.postMessage({ id, sql, 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 mem.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'); + /*only-for-browser/* + 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 mem.alasql.exec(sql, params, cb, scope); + }; +} diff --git a/build/ES6/alasqlparser.js b/build/ES6/alasqlparser.js new file mode 100644 index 0000000000..004f81da4a --- /dev/null +++ b/build/ES6/alasqlparser.js @@ -0,0 +1,3449 @@ +/* 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: + this.$ = yy.casesensitive ? $$[$0] : $$[$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.$ = { funcid: $$[$0], as: 'default' }; + break; + case 217: + this.$ = { funcid: $$[$0 - 1], as: $$[$0] }; + break; + case 218: + this.$ = { funcid: $$[$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 (yy.isInAggr($$[$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: + // var expr = $$[$0]; + // if(expr.left && expr.left.op == 'AND') { + // this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'NOT BETWEEN', right:expr.left}), op:'AND', right:expr.right }); + // } else { + 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)); + } +} +export default alasqlparser; diff --git a/build/ES6/dataStruct.js b/build/ES6/dataStruct.js new file mode 100644 index 0000000000..8c1247c7c7 --- /dev/null +++ b/build/ES6/dataStruct.js @@ -0,0 +1,8 @@ +import database from './dataStruct/database'; +import query from './dataStruct/query'; +import table from './dataStruct/table'; +export default mem => { + database(mem); + query(mem); + table(mem); +}; diff --git a/build/ES6/dataStruct/database.js b/build/ES6/dataStruct/database.js new file mode 100644 index 0000000000..41860ef68b --- /dev/null +++ b/build/ES6/dataStruct/database.js @@ -0,0 +1,183 @@ +export default mem => { + mem.alasql.databasenum = 0; + mem.alasql.databases = {}; + class Database { + constructor(databaseid, alasql) { + this.dbversion = 0; + this.counter = 0; + this.tables = {}; + this.views = {}; + this.triggers = {}; + this.indices = {}; + this.objects = {}; + this.sqlCache = {}; + this.sqlCacheSize = 0; + this.alasql = alasql; + this.databaseid = databaseid; + return this; + } + /** + Reset SQL statements cache + */ + resetSqlCache() { + this.sqlCache = {}; // Cache for compiled SQL statements + this.sqlCacheSize = 0; + } + // Main SQL function + /** + Run SQL statement on database + @param sql — SQL statement + @param object — params Parameters + @param cb — callback + */ + exec(sql, params, cb) { + return this.alasql.dexec(this.databaseid, sql, params, cb); + } + autoval(tablename, colname, getNext) { + return this.alasql.autoval(tablename, colname, getNext, this.databaseid); + } + } + mem.alasql.newDatabase = (dbName, useNewDatabase = true) => { + if (!dbName) { + dbName = 'db' + mem.alasql.databasenum++; // Unique name + } + let db = new Database(dbName, mem.alasql); + mem.alasql.databases[db.databaseid] = db; + if (useNewDatabase) { + mem.alasql.use('alasql'); + } + }; + //mem.alasql.Database = Database; +}; +// // Main Database class +// /** +// @class Database +// */ +// const Database = (databaseid) => { +// var self = this; +// // self = function(a){console.log('OK',a);} +// // 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++; // Unique 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); +// }; +// /*/* +// // // Compile +// // var statement = this.compile(sql); +// // // Run +// // if(statement) { +// // var data = statement(params, cb); +// // return data; +// // } +// // return; +// // }; +// // // Async version of exec +// // Database.prototype.aexec = function(sql, params) { +// // var self = this; +// // return new Promise(function(resolve, reject){ +// // alasql.dexec(this.databaseid,sql,params,resolve); +// // }); +// // }; +// */ +// // Aliases like MS SQL +// /*/* +// Database.prototype.query = Database.prototype.exec; +// Database.prototype.run = Database.prototype.exec; +// Database.prototype.queryArray = function(sql, params, cb) { +// return flatArray(this.exec(sql, params, cb)); +// } +// Database.prototype.queryArrayOfArrays = function(sql, params, cb) { +// return arrayOfArrays(this.exec(sql, params, cb)); +// } +// Database.prototype.querySingle = function(sql, params, cb) { +// return this.exec(sql, params, cb)[0]; +// } +// Database.prototype.queryValue = function(sql, params, cb) { +// var res = this.querySingle(sql, params, cb); +// return res[Object.keys(res)[0]]; +// } +// Database.prototype.value = Database.prototype.queryValue; +// Database.prototype.row = Database.prototype.querySingle; +// Database.prototype.array = Database.prototype.queryArray; +// Database.prototype.matrix = Database.prototype.queryArrayOfArrays; +// // Compile statements +// Database.prototype.compile = function(sql, kind) { +// return alasql.compile(sql, kind, databaseid); +// }; +// */ +// /*/* +// // var self = this; +// // var hh = hash(sql); +// // // Check cache with hash of SQL statement +// // var statement = this.sqlcache[hh]; +// // if(!statement) { +// // // If not fount, then compile it +// // var ast = alasql.parse(sql); +// // // Save to cache +// // statement = this.sqlcache[hh]= ast.compile(self); +// // // Memory leak prevention +// // this.sqlcachesize++; +// // if(this.sqlcachesize > alasql.MAXSQLCACHESIZE) { +// // this.resetSqlCache(); +// // } +// // }; +// // return statement; +// // } +// // SQL.js compatibility method +// //Database.prototype.prepare = Database.prototype.compile; +// // Added for compatibility with WebSQL +// */ diff --git a/build/ES6/dataStruct/query.js b/build/ES6/dataStruct/query.js new file mode 100644 index 0000000000..71e36f2fc3 --- /dev/null +++ b/build/ES6/dataStruct/query.js @@ -0,0 +1,45 @@ +import utils from '../utils'; +/** + @class Query Main query class + */ +class Query { + constructor(params) { + //this.alasql = alasql; + // console.log(12,alasql); + // Columns + this.columns = []; + this.xcolumns = {}; + this.selectGroup = []; + this.groupColumns = {}; + utils.extend(this, params); + return this; + } +} +; +/** + * DataArray + * @class Recordset data object + */ +class Recordset { + constructor(params) { + utils.extend(this, params); + } +} +; +/*/* +// View = function(){ +// this.data = []; +// this.columns = []; +// this.ixcolumns = {}; +// this.ixdefs = {}; +// this.indices = {}; +// }; + +// alasql.View = View; +*/ +export default mem => { + mem.alasql.Query = Query; + mem.alasql.QueRecordsetry = Recordset; +}; +export { Recordset }; +export { Query }; diff --git a/build/ES6/dataStruct/table.js b/build/ES6/dataStruct/table.js new file mode 100644 index 0000000000..3109bfbf9c --- /dev/null +++ b/build/ES6/dataStruct/table.js @@ -0,0 +1,56 @@ +import utils from '../utils'; +export default mem => { + class Table { + constructor(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 = {}; + utils.extend(this, params); + return this; + } + indexColumns() { + this.xcolumns = {}; + this.columns.forEach(function (col) { + this.xcolumns[col.columnid] = col; + }); + } + } + mem.alasql.newTable = (params = []) => { + return new Table(params); + }; +}; +/*/* +// View = function(){ +// this.data = []; +// this.columns = []; +// this.ixcolumns = {}; +// this.ixdefs = {}; +// this.indices = {}; +// }; + +// alasql.View = View; +*/ diff --git a/build/ES6/grammar.js b/build/ES6/grammar.js new file mode 100644 index 0000000000..d565e9cde6 --- /dev/null +++ b/build/ES6/grammar.js @@ -0,0 +1,30 @@ +import grammar from './alasqlparser'; +import base from './grammar/base'; +import statements from './grammar/statements'; +import select from './grammar/select'; +import expression from './grammar/expression'; +import exists from './grammar/exists'; +import defcols from './grammar/defcols'; +import from_ from './grammar/from'; +import compile from './grammar/compile'; +import where from './grammar/where'; +import useDatabase from './grammar/useDatabase'; +import functions from './grammar/functions'; +import createtable from './grammar/createtable'; +import insert from './grammar/insert'; +export default mem => { + mem.alasql.parser = grammar; + base(mem); + statements(mem); + select(mem); + expression(mem); + exists(mem); + defcols(mem); + from_(mem); + compile(mem); + where(mem); + useDatabase(mem); + functions(mem); + createtable(mem); + insert(mem); +}; diff --git a/build/ES6/grammar/base.js b/build/ES6/grammar/base.js new file mode 100644 index 0000000000..93b4891099 --- /dev/null +++ b/build/ES6/grammar/base.js @@ -0,0 +1,22 @@ +import utils from '../utils'; +export default mem => { + const yy = mem.grammar.yy; + yy.extend = utils.extend; + // Option for case sensitive + yy.casesensitive = mem.alasql.options.casesensitive; + yy.isInAggr = val => !!mem.alasql.aggr[val]; + // Base class for all yy classes + yy.Base = function (params) { + return yy.extend(this, params); + }; + yy.Base.prototype.toString = function () { }; + yy.Base.prototype.toType = function () { }; + yy.Base.prototype.toJS = function () { }; + // var BaseClause = yy,BaseClause = function (params) { return yy.extend(this, params); }; + yy.Base.prototype.compile = utils.returnUndefined; + yy.Base.prototype.exec = function () { }; + // var BaseStatement = yy,BaseStatement = function (params) { return yy.extend(this, params); }; + yy.Base.prototype.compile = utils.returnUndefined; + yy.Base.prototype.exec = function () { }; + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/compile.js b/build/ES6/grammar/compile.js new file mode 100644 index 0000000000..3139aa97cc --- /dev/null +++ b/build/ES6/grammar/compile.js @@ -0,0 +1,513 @@ +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +// yy.Select.prototype.compileSources = function(query) { +// return sources; +// }; +import utils from '../utils'; +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + const escapeq = utils.escapeq; + function compileSelectStar(query, alias, joinstar) { + // console.log(query.aliases[alias]); + // console.log(query,alias); + // console.log(query.aliases[alias].tableid); + // console.log(42,631,alias); + // console.log(query.aliases); + var sp = '', ss = []; + // 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 { + ss.push("'" + tcol.columnid + "':p['" + alias + "']['" + tcol.columnid + "']"); + } + query.selectColumns[escapeq(tcol.columnid)] = true; + // console.log('ok',tcol); + 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; + }); + //console.log(999,columns); + } + else { + // console.log(60,alias,columns); + // if column not exists, then copy all + sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + //console.log(777, sp); + query.dirtyColumns = true; + } + // } + //console.log(87,{s:ss.join(','),sp:sp}); + 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 = []; + //console.log(42,87,this.columns); + this.columns.forEach(function (col) { + //console.log(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 { + // console.log('aliases', query.aliases); + for (var alias in query.aliases) { + var ret = compileSelectStar(query, alias, 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; + // console.log(query.sources); + 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) { + // console.log(1); + var tcol = xcolumns[col.columnid]; + if (undefined === tcol) { + throw new Error('Column does not exists: ' + col.columnid); + } + var coldef = { + columnid: col.as || col.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbpecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + else { + var coldef = { + columnid: col.as || col.columnid, + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + query.dirtyColumns = true; + } + } + else { + var coldef = { + columnid: col.as || col.columnid, + }; + // console.log(2); + 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("'" + + utils.escapeq(col.as) + + "':" + + utils.n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))); + } + else if (col.aggregatorid === 'COUNT') { + ss.push("'" + utils.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(), + }; + // console.log(2); + 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 { + // console.log(203,col.as,col.columnid,col.toString()); + ss.push("'" + + utils.escapeq(col.as || col.columnid || col.toString()) + + "':" + + utils.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(), + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + }); + s += ss.join(',') + '};' + sp; + return s; + //console.log(42,753,query.xcolumns, query.selectColumns); + }; + 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); + }); + } + // console.log(285,s); + 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 = utils.escapeq(col.columnid); + } + else { + colas = utils.escapeq(col.toString(true)); + // console.log(273,colas); + } + 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); + } + // console.log("colas:",colas); + // } + } + 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) { + // console.log(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 ''; + // console.log(query); + } + 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(typeof colas == 'undefined') { + if(col instanceof yy.Column) { + colas = col.columnid; + } else { + colas = col.toString(); + for(var i=0;i 0) { + this.orderColumns.forEach(function (v, idx) { + // console.log(411,v); + var key = '$$$' + idx; + // console.log(427,v,query.groupColumns,query.xgroupColumns); + 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); + }); + } + //console.log(425,s); + // console.log('selectg:',s); + 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; + })); + //console.log(query.removeKeys,this.removecolumns); + 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; + }); + } + }; + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/createtable.js b/build/ES6/grammar/createtable.js new file mode 100644 index 0000000000..07191153d8 --- /dev/null +++ b/build/ES6/grammar/createtable.js @@ -0,0 +1,641 @@ +/* +// +// CREATE TABLE for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +import utils from '../utils'; +const cloneDeep = utils.cloneDeep; +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + 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 || []; + // console.log(this); + // 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] = alasql.newTable()); // 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, + dbprecision: col.dbprecision, + 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) { + // console.log(138,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'); + } + } + // console.log(fktable.pk); + 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); + // console.log(r, rr, addr); + // console.log(fktable.uniqs[fktable.pk.hh][addr]); + 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 }); + /*/* var uk = {}; + if(typeof table.uk == 'undefined') table.uk = []; + table.uk.push(uk); + uk.columns = [col.columnid]; + uk.onrightfns = 'r[\''+col.columnid+'\']'; + uk.onrightfn = new Function("r",'return '+uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + */ + } + 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) { + //console.log(con, con.columns); + 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') { + // console.log(con.expression.toJS('r','')); + checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); + } + else if (con.type === 'UNIQUE') { + // console.log(con); + 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') { + // console.log(con); + 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]; + } + // console.log(fktable.pk); + 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); + // console.log(r, rr, addr); + // console.log(fktable.uniqs[fktable.pk.hh][addr]); + if (!fktable.uniqs[fktable.pk.hh][addr]) { + //console.log(228,table,col,fk); + 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; + // console.log(this.select.toString()); + // console.log('this.table.databaseid',this.table.databaseid); + // console.log(this.select.compile(this.table.databaseid||databaseid)); + table.select = this.select.compile(this.table.databaseid || databaseid); + } + if (db.engineid) { + // console.log(101,db.engineid); + return alasql.engines[db.engineid].createTable(this.table.databaseid || databaseid, tableid, this.ifnotexists, cb); + // console.log('createtable',res1); + // 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; + //console.log(262,r); + //console.log(263,table.identities) + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + // console.log(ident); + r[columnid] = ident.value; + // console.log(ident); + } + //console.log(270,r); + 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') { + //console.log(pk,addr,pk.onrightfn({ono:1})); + //console.log(r, pk.onrightfn(r), pk.onrightfns); + 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!!! + // console.log(); + 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]; + // console.log(ident); + ident.value += ident.step; + // console.log(ident); + } + 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); + } + } + } + }; + // console.log(databaseid); + // console.log(db.databaseid,db.tables); + // console.log(table); + var res; + if (!alasql.options.nocount) { + res = 1; + } + if (cb) + res = cb(res); + return res; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/defcols.js b/build/ES6/grammar/defcols.js new file mode 100644 index 0000000000..399967dbc6 --- /dev/null +++ b/build/ES6/grammar/defcols.js @@ -0,0 +1,103 @@ +/* +// +// Select run-time part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +export default mem => { + const yy = mem.grammar.yy; + yy.Select.prototype.compileDefCols = function (query, databaseid) { + // console.log('defcols'); + 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; + // console.log(alasql.databases[fr.databaseid || databaseid]); + // console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); + //console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); + //console.log(alasql.databases); + var table = mem.alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + //console.log(table); + if (undefined === table) { + throw new Error('Table does not exists: ' + 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 { + // console.log(fr); + throw new Error('Unknown type of FROM clause'); + } + }); + } + if (this.joins) { + this.joins.forEach(function (jn) { + defcols['.'][jn.as || jn.table.tableid] = true; + // console.log(jn); + if (jn.table) { + var alias = jn.table.tableid; + if (jn.as) + alias = jn.as; + var alias = jn.as || jn.table.tableid; + var table = mem.alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; + // console.log(jn.table.tableid, jn.table.databaseid); + 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) { + throw new Error('Select not implemented yet'); + } + else if (jn.param) { + throw new Error('param not implemented yet'); + } + else if (jn.func) { + throw new Error('func not implemented yet'); + } + else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + // for(var k in defcols) { + // if(defcols[k] == '-') defcols[k] = undefined; + // } + // console.log(89,defcols); + return defcols; + }; + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/exists.js b/build/ES6/grammar/exists.js new file mode 100644 index 0000000000..9748246b86 --- /dev/null +++ b/build/ES6/grammar/exists.js @@ -0,0 +1,79 @@ +/* +// +// EXISTS and other subqueries functions functions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +export default mem => { + const yy = mem.grammar.yy; + 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 'ww=this.existsfn['+this.existsidx+'](params,null,p),console.log(ww),ww.length'; + 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); + // console.log(nq); + // 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); + // console.log(nq); + // if(!nq.query) nq.query = {}; + nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + }); + }; + // + // Prepare subqueries and exists + // + // Todo: move this function away from grammar + mem.alasql.precompile = function (statement, databaseid, params) { + // console.log(statement); + if (!statement) + return; + statement.params = params; + if (statement.queries) { + //console.log(52,statement.queries[0]); + statement.queriesfn = statement.queries.map(function (q) { + var nq = q.compile(databaseid || statement.database.databaseid); + // console.log(nq); + // nq.query.modifier = undefined; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (statement.exists) { + //console.log(62,statement.exists); + statement.existsfn = statement.exists.map(function (ex) { + var nq = ex.compile(databaseid || statement.database.databaseid); + // console.log(nq.query.modifier); + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'ARRAY'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + }; + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/expression.js b/build/ES6/grammar/expression.js new file mode 100644 index 0000000000..a0c75f249e --- /dev/null +++ b/build/ES6/grammar/expression.js @@ -0,0 +1,1065 @@ +import utils from '../utils'; +/* +// +// Expressions for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + /** + * 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) { + // console.log(this.expression.toJS('','', null)); + // console.log(this.expression.toJS('','', null)); + // console.log(this.expression.toJS('({})','', null)); + 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) { + // console.log('Expression',this); + 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) { + // console.log('Expression',this); + if (this.reduced) { + return utils.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*/) { + // console.log('Expression',this); + 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; + }; + // yy.Join.prototype.toJS = function(context, tableid) { + // return 'JOIN'+this.table.toString(); + // } + /** + 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; + // console.log(this.right); + 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) { + // console.log(this.toString()); + 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) { + // console.log(this); + 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)) { + 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') { + 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.right instanceof yy.Op && this.right.op == 'AND') { + + return ref('(('+this.right.left)+'<='+leftJS()+')&&'+ + ref('('+leftJS()+'<='+this.right.right)+'))'; + + } else { + throw new Error('Wrong BETWEEN operator without AND part'); + } +*/ + } + 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)'; + //console.log(s); + } + else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; + //console.log('expression',350,s); + // } 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 + // console.log(this); + 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 () { + // console.log("'"+doubleqq(this.value)+"'"); + // return "'"+doubleqq(this.value)+"'"; + return "'" + utils.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) { + // console.log("'"+doubleqq(this.value)+"'"); + // 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) { + // console.log("'"+doubleqq(this.value)+"'"); + // 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.Star = function (params) { return yy.extend(this, params); } +// yy.Star.prototype.toString = function() { +// var s = this.fieldid; +// if(this.tableid) { +// s = this.tableid+'.'+s; +// if(this.databaseid) { +// s = this.databaseid+'.'+s; +// } +// } +// if(this.alias) s += ' AS '+this.alias; +// return s; +// } +*/ + 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 = this.value; +// var s = this.columnid; +// if(this.tableid) { +// s = this.tableid+'.'+s; +// // if(this.databaseid) { +// // s = this.databaseid+'.'+s; +// // } +// } else { +// s = tableid+'.'+s; +// } +*/ + //console.log('yy.Column',this, tableid); + // console.log(392,this.columnid); + //console.log(506,this); + //console.log(523, this, tableid); + 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 + "']"; + } + // console.log(836,tbid,s); + } + else { + if (this.columnid !== '_') { + // if(defcols['.'][this.tableid]) { + // console.log(847,tableid); + // console.log(context+'[\''+tableid + '\'][\''+this.tableid + '\']','[\''+this.columnid+'\']'); + // 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.log(context,s); + // console.trace(new Error()); + //console.log(874,s); + 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(); + } + // console.log(this.over); + if (this.alias && !dontas) + s += ' AS ' + this.alias; + // if(this.alias) s += ' AS '+this.alias; + return s; + }; + yy.AggrValue.prototype.findAggregator = function (query) { + // console.log('aggregator found',this.toString()); + // var colas = this.as || this.toString(); + var colas = utils.escapeq(this.toString()) + ':' + query.selectGroup.length; + // console.log('findAgg',this); + /*/* var found = false; + for(var i=0;i -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 s = 'alasql.functions.'+this.funcid+'('; +// if(this.expression) s += this.expression.toJS(context, tableid); +// s += ')'; +// if(this.alias) s += ' AS '+this.alias; +// return s; +// var s = ''; +//if(this.as) console.log(499,this.as); +// var colas = this.as; +*/ + 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; + /*/* //Duplicated code + +function() { + var s = this.expression.toString(); + if(this.order) s += ' '+this.order.toString(); + if(this.nocase) s += ' '+'COLLATE'+' '+'NOCASE'; + return s; +}*/ + yy.GroupExpression = function (params) { + return yy.extend(this, params); + }; + yy.GroupExpression.prototype.toString = function () { + return this.type + '(' + this.group.toString() + ')'; + }; + /*/* //Duplicated code +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; +}*/ + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/from.js b/build/ES6/grammar/from.js new file mode 100644 index 0000000000..06534560b7 --- /dev/null +++ b/build/ES6/grammar/from.js @@ -0,0 +1,294 @@ +/* +// +// Select compiler part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +import utils from '../utils'; +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + yy.Select.prototype.compileFrom = function (query) { + // console.log(1); + var self = this; + query.sources = []; + // var tableid = this.from[0].tableid; + // var as = ''; + // if(self.from[0].as) as = this.from[0].as; + //console.log(this); + query.aliases = {}; + if (!self.from) + return; + //console.log(self.from); + self.from.forEach(function (tq) { + //console.log(tq); + //console.log(tq,tq.toJS()); + var ps = ''; + var alias = tq.as || tq.tableid; + // console.log(alias); + if (tq instanceof yy.Table) { + // console.log(tq, tq.databaseid, query); + 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: utils.returnTrue, + srcwherefns: '', + srcwherefn: utils.returnTrue, + }; + if (tq instanceof yy.Table) { + // Get columns from table + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + // console.log('test',alasql.options.autocommit); + // console.log(997,alasql.databases[source.databaseid].engineid); + // console.log(0,source.databaseid); + // console.log(1,alasql.databases[source.databaseid]); + // console.log(2,alasql.databases[source.databaseid].tables[source.tableid].view); + if (alasql.options.autocommit && + alasql.databases[source.databaseid].engineid && + !alasql.databases[source.databaseid].tables[source.tableid].view) { + // console.log(997,alasql.databases[source.databaseid].engineid); + // 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 { + // console.log('here'); + // console.log(420,72,alasql.databases[source.databaseid].tables[source.tableid]); + source.datafn = function (query, params, cb, idx, alasql) { + /* + // if(!query) console.log('query'); + // if(!query.database) console.log('query'); + // if(!query.database.tables) console.log('query'); + // if(!source.tableid) console.log('query'); + // if(!query.database.tables[source.tableid]) console.log(query); + // if(!query.database.tables[source.tableid].data) console.log('query'); + */ + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + // console.log(500,res); + if (cb) + res = cb(res, idx, query); + // console.log(600,res); + 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; + // console.log(101,source.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; + }); + // console.log(515,res); + return res; + }; + } + else if (tq instanceof yy.Search) { + source.subsearch = tq; + source.columns = []; + /*/* + //.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; + // console.log(101,source.columns); + // tq.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; + }); + // console.log(515,res); + return res; + }; + } + else if (tq instanceof yy.ParamValue) { + ps = "var res = alasql.prepareFromData(params['" + tq.param + "']"; + // console.log(tq); + 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(); + // console.log(tq); + 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 + "']"; + // console.log(tq); + 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) { + // s += tq.args.map(function(arg){ + // return arg.toJS(); + // }).concat('cb,idx,query').join(','); + // } + // if(tq.args && tq.args.length>0) { + // s += tq.args.map(function(arg){ + // return arg.toJS(); + // }).concat().join(','); + // } + */ + 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'; + // console.log(s); + 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; + //console.log(query.defaultTableid); + }; + alasql.prepareFromData = function (data, array) { + //console.log(177,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]]); + } + // console.log(res); + } + 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]]); + } + } + // console.log(res); + } + // console.log(typeof data); + return res; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/functions.js b/build/ES6/grammar/functions.js new file mode 100644 index 0000000000..84023a8068 --- /dev/null +++ b/build/ES6/grammar/functions.js @@ -0,0 +1,123 @@ +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + 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 + // console.log(34,this.toJS('','',null)); + 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.compile = function(context, tableid, defcols){ + // console.log('Expression',this); + // if(this.reduced) return returnTrue(); + // return new Function('p','var y;return '+this.toJS(context, tableid, defcols)); + //}; + + + // yy.FuncValue.prototype.compile = function(context, tableid, defcols){ + // // console.log('Expression',this); + // if(this.reduced) return returnTrue(); + // return new Function('p','var y;return '+this.toJS(context, tableid, defcols)); + // }; + + */ + 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 += ')'; + } + //console.log('userfn:',s,this); + // if(this.alias) s += ' AS '+this.alias; + return s; + }; + /*/* + // // Functions compiler + // nodes.FunctionValue.prototype.toJS = function (context, tableid) { + // var s = ''; + // s += fns[this.name.toUpperCase()].apply(null,this.arguments.map(function(arg){ + // if(arg) return arg.toJS(context, tableid); + // else return ''; + // })); + // return s; + // }; + */ + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/insert.js b/build/ES6/grammar/insert.js new file mode 100644 index 0000000000..6310e72224 --- /dev/null +++ b/build/ES6/grammar/insert.js @@ -0,0 +1,306 @@ +/* +// +// INSERT for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.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) { + // console.log('Expression',this); + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + // console.log('Select.toJS', 81, this.queriesidx); + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + // s = '(console.log(this.queriesfn[0]),'+s+')'; + // console.log(this,s); + return s; + }; + yy.Insert.prototype.compile = function (databaseid) { + var self = this; + databaseid = self.into.databaseid || databaseid; + var db = alasql.databases[databaseid]; + // console.log(self); + 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; + }); + } + // console.log(1); + self.values.forEach(function (values) { + var ss = []; + // s += 'db.tables[\''+tableid+'\'].data.push({'; + // s += ''; + if (self.columns) { + self.columns.forEach(function (col, idx) { + //console.log(db.tables, tableid, table); + // ss.push(col.columnid +':'+ self.values[idx].value.toString()); + // console.log(rec[f.name.value]); + // 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]; + // console.log('table1', db, self); + //console.log(111, table.columns); + //console.log(74,table); + 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(); + } + /*/* + // if(table.xcolumns && table.xcolumns[col.columnid] && + // (table.xcolumns[col.columnid].dbtypeid == "DATE" || + // table.xcolumns[col.columnid].dbtypeid == "DATETIME" + // )) { + // val = "(new Date("+val+"))"; + // } + // || table.xcolumns[col.columnid].dbtypeid == "FLOAT" + // || table.xcolumns[col.columnid].dbtypeid == "NUMBER" + // || table.xcolumns[col.columnid].dbtypeid == "MONEY" + // )) q += '+'; + // console.log(self.values[idx].toString()); + //console.log(self); + // q += val; + + // if(table.xcolumns && table.xcolumns[col.columnid] && table.xcolumns[col.columnid].dbtypeid == "INT") q += '|0'; + */ + ss.push(q); + /*/* + // console.log(fld); + // TODO: type checking and conversions + // rec[fld.fldid] = eval(self.insertExpression[idx].toJS('','')); + // console.log(rec[fld.fldid]); + // if(rec[fld.fldid] == "NULL") rec[fld.fldid] = undefined; + + // if(table.xflds[fld.fldid].dbtypeid == "INT") rec[fld.fldid] = +rec[fld.fldid]|0; + // else if(table.xflds[fld.fldid].dbtypeid == "FLOAT" || table.xflds[fld.fldid].dbtypeid == "MONEY" ) + // rec[fld.fldid] = +rec[fld.fldid]; + */ + }); + } + else { + // console.log(222,values); + // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; + sw = JSONtoJS(values); + } + } + //console.log(ss); + 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; + } + //console.log(186,s3+s); + 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 { + // console.log(224,table.defaultfns); + 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'); + } + // console.log(1,s); + // console.log(s33); + 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); + // console.log(s33); + 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) { + //console.log(databaseid); + 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') + }; + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/select.js b/build/ES6/grammar/select.js new file mode 100644 index 0000000000..08bcfc9cd9 --- /dev/null +++ b/build/ES6/grammar/select.js @@ -0,0 +1,396 @@ +/* +// +// Select run-time part for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +// +// Main part of SELECT procedure +// +import { queryfn } from '../processing/query'; +import utils from '../utils'; +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + 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) { + // console.log('Expression',this); + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + // console.log('Select.toJS', 81, this.queriesidx); + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + var s = 'alasql.utils.flatArray(this.queriesfn[' + + (this.queriesidx - 1) + + '](this.params,null,' + + context + + '))[0]'; + // var s = '(ee=alasql.utils.flatArray(this.queriesfn['+(this.queriesidx-1)+'](this.params,null,'+context+')),console.log(999,ee),ee[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 mem.alasql.Query(); + // Array with columns to be removed + query.removeKeys = []; + query.aggrKeys = []; + query.explain = this.explain; // Explain + query.explaination = []; + query.explid = 1; + //console.log(this.modifier); + 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)'; + //console.log('999'); + } + 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 + // console.log(234234, query.intofns); + query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); + } + else if (query.intoallfns) { + // Create intoallfn function + // console.log(23423234, query.intoallfns); + query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); + } + } + let statement = function (params, cb, oldscope) { + query.params = params; + var res1 = queryfn(alasql, query, oldscope, (res) => { + //console.log(res[0].schoolid); + //console.log(184,res); + 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 = utils.modify(alasql, query, res); + if (cb) { + cb(res2); + } + //console.log(8888,res2); + return res2; + }); + //console.log(9999,res1); + // if(typeof res1 != 'undefined') res1 = modify(query,res1); + return res1; + }; + // statement.dbversion = ; + // console.log(statement.query); + //console.log(202,statement); + statement.query = query; + return statement; + }; + // yy.Select.prototype.exec = function(databaseid) { + // throw new Error('Select statement should be precompiled'); + // }; + yy.Select.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') + }; + mem.grammar.yy = yy; + mem.alasql = alasql; +}; diff --git a/build/ES6/grammar/statements.js b/build/ES6/grammar/statements.js new file mode 100644 index 0000000000..aecb56d2f0 --- /dev/null +++ b/build/ES6/grammar/statements.js @@ -0,0 +1,42 @@ +/* +// +// Statements class for Alasql.js +// Date: 03.11.2014 +// (c) 2014, Andrey Gershun +// +*/ +export default mem => { + const yy = mem.grammar.yy; + // 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; + }; + } + }; + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/useDatabase.js b/build/ES6/grammar/useDatabase.js new file mode 100644 index 0000000000..20343cd8d3 --- /dev/null +++ b/build/ES6/grammar/useDatabase.js @@ -0,0 +1,191 @@ +export default mem => { + const yy = mem.grammar.yy; + const alasql = mem.alasql; + 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) { + // console.log(346235, arg.toJS()); + 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 = alasql.newDatabase(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; + }; + mem.grammar.yy = yy; +}; diff --git a/build/ES6/grammar/where.js b/build/ES6/grammar/where.js new file mode 100644 index 0000000000..61562ac332 --- /dev/null +++ b/build/ES6/grammar/where.js @@ -0,0 +1,107 @@ +export default mem => { + const yy = mem.grammar.yy; + 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; + // console.log(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 + //console.log(query); + 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); + } + // console.log(source.alias, source.wherefns) + // console.log(source); + }); + }; + 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); + } + }); + //console.log(fsrc.length); + // if(fsrc.length < query.sources.length) return; + // console.log(ast); + // console.log(s); + // console.log(fsrc.length); + if (fsrc.length == 0) { + // console.log('no optimization, can remove this part of ast'); + 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); + } + } + } + mem.grammar.yy = yy; +}; diff --git a/build/ES6/logic.js b/build/ES6/logic.js new file mode 100644 index 0000000000..4229bb44e0 --- /dev/null +++ b/build/ES6/logic.js @@ -0,0 +1,8 @@ +import stdlib from './logic/stdlib'; +import stdfn from './logic/stdfn'; +import aggr from './logic/aggr'; +export default mem => { + stdlib(mem); + stdfn(mem); + aggr(mem); +}; diff --git a/build/ES6/logic/aggr.js b/build/ES6/logic/aggr.js new file mode 100644 index 0000000000..6878ad283e --- /dev/null +++ b/build/ES6/logic/aggr.js @@ -0,0 +1,173 @@ +export default mem => { + const alasql = mem.alasql; + //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){ + // if(typeof acc.arr == 'undefined') { + // acc.arr = [v]; + // acc.sum = v; + // } else { + // acc.arr.push(v); + // acc.sum += v; + // } + // var N = acc.arr.length; + // var avg = acc.sum / N; + // var std = 0; + // for(var i=0;i { + const stdfn = {}; + stdfn.CONCAT = function (...args) { + return Array.prototype.slice.call(args).join(''); + }; + stdfn.REGEXP_LIKE = function (a, b, c) { + // console.log(a,b,c); + return (a || '').search(RegExp(b, c)) > -1; + }; + // Concatination of strings + stdfn.CONCAT_WS = function (...args) { + return args.slice(1, args.length).join(args[0]); + }; + // String functions + stdfn.REPLACE = function (target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); + }; + stdfn.CHAR = String.fromCharCode.bind(String); + stdfn.ASCII = function (a) { + return a.charCodeAt(0); + }; + // 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]); + }; + mem.alasql.stdfn = stdfn; +}; diff --git a/build/ES6/logic/stdlib.js b/build/ES6/logic/stdlib.js new file mode 100644 index 0000000000..810fbaba8c --- /dev/null +++ b/build/ES6/logic/stdlib.js @@ -0,0 +1,104 @@ +import utils from '../utils'; +const und = utils.und; +export default mem => { + const stdlib = {}; + stdlib.ABS = function (a) { + return 'Math.abs(' + a + ')'; + }; + stdlib.CLONEDEEP = function (a) { + return 'alasql.utils.cloneDeep(' + a + ')'; + }; + 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 + ')'); + }; + // 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()'); + }; + mem.alasql.stdlib = stdlib; +}; diff --git a/src/05copyright.js b/build/ES6/main.js similarity index 53% rename from src/05copyright.js rename to build/ES6/main.js index 66c254a77d..22fc54e642 100644 --- a/src/05copyright.js +++ b/build/ES6/main.js @@ -1,10 +1,10 @@ -//! AlaSQL vPACKAGE_VERSION_NUMBER | © 2014-2016 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* +//! AlaSQL vPACKAGE_VERSION_NUMBER | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT +/** @module alasql @version PACKAGE_VERSION_NUMBER AlaSQL - JavaScript SQL database -© 2014-2016 Andrey Gershun & Mathias Rangel Wulff +© 2014-2018 Andrey Gershun & Mathias Rangel Wulff @license The MIT License (MIT) @@ -29,3 +29,33 @@ 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. */ +import addOptions from './options'; +import utils from './utils'; +import grammar from './alasqlparser'; +import expandGrammar from './grammar'; +import alasqlObj from './alasqlObj'; +import addDataStruct from './dataStruct'; +import addlogic from './logic'; +const alasql = () => { }; +const mem = { grammar, alasql }; +mem.alasql = alasqlObj(mem); +mem.alasql.version = 'PACKAGE_VERSION_NUMBER'; +mem.alasql.debug = false; +addOptions(mem); +expandGrammar(mem); +addDataStruct(mem); +addlogic(mem); +if (0) + mem.alasql.path = utils.findAlaSQLPath(); +/*only-for-browser/* +//!var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to +//!var __dirname = ''; +//*/ +/*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.') +} +//*/ +// Create and set default database +mem.alasql.newDatabase('alasql'); +export default mem.alasql; diff --git a/build/ES6/options.js b/build/ES6/options.js new file mode 100644 index 0000000000..2edba93d41 --- /dev/null +++ b/build/ES6/options.js @@ -0,0 +1,488 @@ +/** + Database class for Alasql.js +*/ +//var alasqlparser = require('./alasqlparser').parse; +import utils from './utils'; +var hash = x => x; +export default mem => { + // Initial parameters + const alasql = mem.alasql; + /** + Jison parser + */ + //alasql.parser = alasqlparser; + /*/* This is not working :-/ * / + 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 mem.grammar.parse(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 = {}; + /** + 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!'); + // console.log(3, databaseid, alasql.databases); + 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 + 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 { + // console.log(ast.statements[0]); + alasql.precompile(ast.statements[0], alasql.useid, params); + 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 = []; + const adrunone = function (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; + /*/* + if(kind == 'value') { + return function(params,cb) { + var res = statementfn(params); + var key = Object.keys(res[0])[0]; + if(cb) cb(res[0][key]); + return res[0][key]; + }; + } else if(kind == 'single') { + return function(params,cb) { + var res = statementfn(params); + if(cb) cb(res[0]); + return res[0]; + } + } else if(kind == 'row') { + return function(params,cb) { + var res = statementfn(params,cb); + var a = []; + for(var key in res[0]) { + a.push(res[0][key]); + }; + if(cb) cb(a); + return a; + } + } else if(kind == 'column') { + return function(params,cb) { + var res = statementfn(params,cb); + var ar = []; + var key = Object.keys(res)[0]; + for(var i=0, ilen=res.length; i= query.sources.length) { + // Todo: check if this runs once too many + //console.log(query.wherefns); + // Then apply where and select + // console.log(query); + if (query.wherefn(scope, query.params, alasql)) { + // console.log("scope",scope.schools); + // var res = query.selectfn(scope, query.params, alasql); + // console.log("last",res); + // If there is a GROUP BY then pipe to groupping function + if (query.groupfn) { + query.groupfn(scope, query.params, alasql); + } + else { + // query.qwerty = 999; + //console.log(query.qwerty, query.queriesfn && query.queriesfn.length,2); + query.data.push(query.selectfn(scope, query.params, alasql)); + } + } + } + else if (query.sources[h].applyselect) { + // console.log('APPLY',scope); + // console.log('scope1',scope); + // console.log(scope); + var source = query.sources[h]; + source.applyselect(query.params, function (data) { + if (data.length > 0) { + // console.log('APPLY CB'); + 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); + // console.log(data); + } + 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") { + /*/* + // if(nextsource && nextsource.joinmode == "RIGHT") { + // if(!nextsource.rightdata) { + // console.log("ok"); + // nextsource.rightdata = new Array(nextsource.data.length); + // console.log(nextsource.data.length, nextsource.rightdata); + // } + // } +*/ + 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; + // console.log(source.onleftfns); + // console.log(source.ix); + // console.log(source.onleftfn(scope, query.params, alasql)); + // console.log(opt, data, data.length); + } + } + // Main cycle + var i = 0; + if (typeof data === 'undefined') { + throw new Error('Data source number ' + h + ' in undefined'); + } + var ilen = data.length; + var dataw; + // console.log(h,opt,source.data,i,source.dontcache); + while ((dataw = data[i]) || + (!opt && (source.getfn && (dataw = source.getfn(i)))) || + i < ilen) { + if (!opt && source.getfn && !source.dontcache) + data[i] = dataw; + //console.log(h, 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') { + // console.log(scope); + 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; + } + // 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); + } + else { + //scope[nextsource.alias] = dataw; + //doJoin(query, scope, h+2); + // console.log(169,scope); + } + } + j++; + } + // debugger; + } + else { + //console.log(180,scope); + } + } + else { + // console.log(179,scope); + } + scope[tableid] = undefined; + /*/* + if(h+1 < query.sources.length) { + var nextsource = query.sources[h+1]; + + if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT" + || nextsource.joinmode == "ANTI") { + + + // console.log(h,query.sources.length); + // Swap + + +// swapSources(query,h); + +// console.log(query.sources); + //debugger; +// var source = query.sources[h]; + +// var tableid = source.alias || source.tableid; +// var data = source.data; + + // Reduce data for looping if there is optimization hint +// if(source.optimization == 'ix') { +// data = source.ix[ source.onleftfn(scope, query.params, alasql) ] || []; +// } + + // Main cycle + var pass = false; +// console.log(tableid, data.length); + for(var i=0, ilen=nextsource.data.length; i= 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 + // console.log("queriesdata",data, flatArray(data)); + query.queriesdata[-idx - 1] = flatArray(data); + // console.log(98,query.queriesdata); + // console.log(79,query.queriesdata); + } + query.sourceslen--; + if (query.sourceslen > 0) + return; + return queryfn3(alasql, query); +} +function queryfn3(alasql, query) { + var scope = query.scope, jlen; + // Preindexation of data sources + // if(!oldscope) { + preIndex(query); + // } + // query.sources.forEach(function(source) { + // console.log(source.data); + // }); + // Prepare variables + query.data = []; + query.xgroups = {}; + query.groups = []; + // Level of Joins + var h = 0; + // Start walking over data + //console.log(142,'1111'); + doJoin(alasql, query, scope, h); + //console.log(144,'2222',query.modifier); + //console.log(85,query.data[0]); + // If groupping, then filter groups with HAVING function + // console.log(query.havingfns); + if (query.groupfn) { + query.data = []; + if (0 === query.groups.length) { + var g = {}; + if (query.selectGroup.length > 0) { + // console.log(query.selectGroup); + query.selectGroup.forEach(function (sg) { + if (sg.aggregatorid === 'COUNT' || sg.aggregatorid === 'SUM') { + g[sg.nick] = 0; + } + else { + g[sg.nick] = undefined; + } + }); + } + query.groups = [g]; + // console.log(); + } + // ****** + 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+'\];'; + }); + // console.log(175, gfns); + var gfn = new Function('g,params,alasql', 'var y;' + gfns); + } + // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' + // +'\'__REDUCE__'+colas+'\':acc,'; + // ******* + // console.log('EMPTY',query.groups); + // debugger; + // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) { + // console.log('EMPTY',query.groups); + // } else { + for (var i = 0, ilen = query.groups.length; i < ilen; i++) { + var g = query.groups[i]; + if (gfn) + gfn(g, query.params, alasql); + // console.log(query.groups[i]); + if (!query.havingfn || query.havingfn(g, query.params, alasql)) { + // console.log(g); + 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 + // console.log('removeKeys:',query.removeKeys); + // 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(); + // console.log(query.intoallfns); + /*/* + // if(query.explain) { + // if(query.cb) query.cb(query.explaination,query.A, query.B); + // return query.explaination; + // } else +*/ + //console.log(190,query.intofns); + if (query.intoallfn) { + // console.log(161); + // 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); + // console.log(1163,res); + // if(query.cb) res = query.cb(res,query.A, query.B); + // console.log(1165,res); + // 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); + } + // console.log(query.intofn); + if (query.cb) + query.cb(query.data.length, query.A, query.B); + return query.data.length; + } + else { + // console.log(111,query.cb,query.data); + res = query.data; + if (query.cb) + res = query.cb(query.data, query.A, query.B); + return res; + } +} +// Limiting +function doLimit(query) { + // console.log(query.limit, query.offset) + 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 (let ind in uniq) { + query.data.push(uniq[ind]); + } + } +} +// Optimization: preliminary indexation of joins +var preIndex = function (query) { + // console.log(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 + //console.log('preIndex', source); + //console.log(source); + 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 { + var len = container.childNodes.length; + while (len--) { + container.removeChild(container.lastChild); + } + } }; diff --git a/build/ES6/utils/enviroment.js b/build/ES6/utils/enviroment.js new file mode 100644 index 0000000000..9a1cbc11fd --- /dev/null +++ b/build/ES6/utils/enviroment.js @@ -0,0 +1,152 @@ +import gen from './general'; +// Todo: prepend .gen in the code +const global = gen.global; +const isNativeFunction = gen.isNativeFunction; +// const utils : {[key: string]: any} = {}; +const utils = {}; +/** +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 = (() => { + try { + var importScripts = global.importScripts; + return 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 = (() => { + try { + return isNativeFunction(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 = (() => { + try { + return isNativeFunction(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 = (() => { + 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 = (() => { + 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 = (() => { + 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.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 = 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 = typeof cordova === 'object'; +utils.isReactNative = (() => { + var isReact = false; + //*not-for-browser/* + try { + if (typeof require('react-native') === 'object') { + isReact = true; + } + } + catch (e) { + void 0; + } + //*/ + return isReact; +})(); +utils.hasIndexedDB = !!global.indexedDB; +/** +@function Is this IE9 +@return {boolean} True for IE9 and false for other browsers + +For IE9 compatibility issues +*/ +utils.isIE = (() => { + /*only-for-browser/* + var myNav = navigator.userAgent.toLowerCase(); + return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false; +//*/ + return false; +})(); +/** +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 ''; +}; +export default utils; diff --git a/build/ES6/utils/excelTools.js b/build/ES6/utils/excelTools.js new file mode 100644 index 0000000000..d2c37f333c --- /dev/null +++ b/build/ES6/utils/excelTools.js @@ -0,0 +1,52 @@ +import env from './enviroment'; +const utils = {}; +utils.getXLSX = () => { + var XLSX = null; + /* If require() shuold be supported else take from global scope */ + if (env.isNode || env.isBrowserify || env.isMeteorServer) { + //*not-for-browser/* + XLSX = require('xlsx') || null; + //*/ + } + else { + XLSX = global.XLSX || null; + } + if (null === XLSX) { + throw new Error('Please include the xlsx.js library'); + } + return XLSX; +}; +/** +Excel:convert number to Excel column, like 1 => 'A' +@param {integer} i Column number, starting with 0 +@return {string} Column name, starting with 'A' +*/ +utils.xlsnc = 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 +*/ +utils.xlscn = s => { + var n = s.charCodeAt(0) - 65; + if (s.length > 1) { + n = (n + 1) * 26 + s.charCodeAt(1) - 65; + // console.log(n, s.charCodeAt(0)-65, s.charCodeAt(1)-65); + if (s.length > 2) { + n = (n + 1) * 26 + s.charCodeAt(2) - 65; + } + } + return n; +}; +export default utils; diff --git a/build/ES6/utils/files.js b/build/ES6/utils/files.js new file mode 100644 index 0000000000..afd8f9861c --- /dev/null +++ b/build/ES6/utils/files.js @@ -0,0 +1,530 @@ +import env from './enviroment'; +import trans from './transformation'; +const cutbom = trans.cutbom; +const utils = {}; +/** +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. +*/ +utils.loadFile = function (path, asy, success, error) { + var data, fs; + if (env.isNode || env.isMeteorServer) { + //*not-for-browser/* + if (utils.isMeteor) { + fs = Npm.require('fs'); + } + else { + 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) { + throw err; + } + success(cutbom(body.toString())); + }); + } + else { + //If async callthen call async + if (asy) { + fs.readFile(path, function (err, data) { + if (err) { + throw err; + } + success(cutbom(data.toString())); + }); + } + else { + // Call sync version + data = fs.readFileSync(path); + 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) { + throw err; + }); + //*/ + } + 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 */ + /*/* + + var paths = path.split('/'); + var filename = paths[paths.length-1]; + var dirpath = path.substr(0,path.length-filename.length); +// console.log('CORDOVA',filename,dirpath); +//return success('[{"a":"'+filename+'"}]'); + + window.resolveLocalFileSystemURL(dirpath, function(dir) { + dir.getFile(filename, null, function(file) { + file.file(function(file) { + var reader = new FileReader(); +// console.log('READ FILE 2'); + reader.onloadend = function(e) { +// console.log('READ FILE 3',this.result); + success(this.result); + }; + reader.readAsText(file); + }); + }); + }); +*/ + } + 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) { + 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 +*/ +utils.loadBinaryFile = function (path, asy, success, error) { + var fs; + if (utils.isNode || utils.isMeteorServer) { + //*not-for-browser/* + if (utils.isMeteorServer) { + fs = Npm.require('fs'); // For Meteor + } + else { + 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) { + // console.log("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); + if (cb) + cb(); // jshint ignore:line + }, function () { + if (cb) + cb(); // jshint ignore:line + }); + }); + } + else if (utils.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function () { + if (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 +utils.deleteFile = (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 () { + if (cb) + cb(); + }) + .catch(function (err) { + throw err; + }); + } + //*/ +}; +utils.autoExtFilename = (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; +}; +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) { + if (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 +*/ +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((typeof cordova == 'object') && cordova.file) { +// console.log('saveFile 1'); + // Cordova + var paths = path.split('/'); + var filename = paths[paths.length-1]; + var dirpath = path.substr(0,path.length-filename.length); + // console.log('CORDOVA',filename,dirpath); + //return success('[{"a":"'+filename+'"}]'); + + window.resolveLocalFileSystemURL(dirpath, function(dir) { +// console.log('saveFile 2'); + + dir.getFile(filename, {create:true}, function(file) { +// console.log('saveFile 3'); + +// file.file(function(file) { +// console.log('saveFile 4'); + + file.createWriter(function(fileWriter) { + +// fileWriter.seek(fileWriter.length); + + var blob = new Blob([data], {type:'text/plain'}); + fileWriter.write(blob); + fileWriter.onwriteend = function(){ + if(cb) cb(); + }; +// console.log("ok, in theory i worked"); + }); +*/ + /*/* + // Corodva + function writeFinish() { + // ... your done code here... + return cb() + }; + var written = 0; + var BLOCK_SIZE = 1*1024*1024; // write 1M every time of write + function writeNext(cbFinish) { + var sz = Math.min(BLOCK_SIZE, data.length - written); + var sub = data.slice(written, written+sz); + writer.write(sub); + written += sz; + writer.onwrite = function(evt) { + if (written < data.length) + writeNext(cbFinish); + else + cbFinish(); + }; + } + writeNext(writeFinish); + } +*/ + // }); + // }); + // }); + } + else { + if (utils.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, + }; + utils.extend(opt, opts); + var blob = new Blob([data], { type: 'text/plain;charset=utf-8' }); + utils.saveAs(blob, path, opt.disableAutoBom); + if (cb) { + res = cb(res); + } + } + } + } + return res; +}; +// For LOAD +// var saveBinaryFile = utils.saveFile = function(path, data, cb) { +// if(utils.isNode) { +// // For Node.js +// var fs = require('fs'); +// var data = fs.writeFileSync(path,data); +// } else { +// var blob = new Blob([data], {type: "text/plain;charset=utf-8"}); +// saveAs(blob, path); +// } +// }; +export default utils; diff --git a/build/ES6/utils/general.js b/build/ES6/utils/general.js new file mode 100644 index 0000000000..78c7f43b3e --- /dev/null +++ b/build/ES6/utils/general.js @@ -0,0 +1,101 @@ +const 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 + +*/ +utils.n2u = function (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 + +*/ +utils.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 +*/ +utils.returnTrue = () => { + return true; +}; +/** + Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() + @function + @return {undefined} Always undefined +*/ +utils.returnUndefined = function () { }; +/** + Escape string + @function + @param {string} s Source string + @return {string} Escaped string + @example + + Pit\er's => Pit\\er\'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 + */ +utils.isNativeFunction = fn => { + return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]'); +}; +utils.isArray = function (obj) { + return '[object Array]' === Object.prototype.toString.call(obj); +}; +/** + * Extend object a with properties of b + * @function + * @param {object} a + * @param {object} b + * @return {object} +*/ +utils.extend = (a, b) => { + a = a || {}; + for (var key in b) { + if (b.hasOwnProperty(key)) { + a[key] = b[key]; + } + } + return a; +}; +export default utils; diff --git a/build/ES6/utils/sqlTools.js b/build/ES6/utils/sqlTools.js new file mode 100644 index 0000000000..590f80be1c --- /dev/null +++ b/build/ES6/utils/sqlTools.js @@ -0,0 +1,167 @@ +const utils = {}; +/** +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 +*/ +utils.like = (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; + //console.log(s,value,(value||'').search(RegExp(s))>-1); + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; +}; +/** +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 +*/ +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++) { + // console.log(i,str[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 (regularExpression) { + // Make sure '/'' inside character classes is not considered the end + // of the regular expression. + // if (str[i] === '[' && unescaped) { + // characterClass = true; + // } else if (str[i] === ']' && unescaped && characterClass) { + // characterClass = false; + // } else if (str[i] === '/' && unescaped && !characterClass) { + // regularExpression = 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; + // console.log('block'); + /*/* // } else if (str[i + 1] === '/') { + // str[i] = ''; + // lineComment = true; + // } else { + // We need to make sure we don't count normal divisions as + // regular expresions. Matching this properly is difficult, + // but if we assume that normal division always have a space + // after /, a simple check for white space or '='' (for /=) + // is enough to distinguish divisions from regexps. + // TODO: Develop a proper check for regexps. + // if (!/[\s=]/.test(str[i + 1])) { + // regularExpression = true; + // } + // } +*/ + } + } + } + // Remove padding again. + str = str.join('').slice(2, -2); + /*/* +// Strip empty lines that contain only white space and line breaks, as they +// are left-overs from comment removal. +str = str.replace(/^[ \t]+(\r\n|\n|\r)/gm, function(all) { + return ''; +}); +// Replace a sequence of more than two line breaks with only two. +str = str.replace(/(\r\n|\n|\r)(\r\n|\n|\r)+/g, function(all, lineBreak) { + return lineBreak + lineBreak; +}); +*/ + return str; +}; +export default utils; diff --git a/build/ES6/utils/transformation.js b/build/ES6/utils/transformation.js new file mode 100644 index 0000000000..3c3f76c9cb --- /dev/null +++ b/build/ES6/utils/transformation.js @@ -0,0 +1,249 @@ +const utils = {}; +/** + Cut BOM first character for UTF-8 files (for merging two files) + @param {string} s Source string + @return {string} Replaced string +*/ +utils.cutbom = s => { + if (s[0] === String.fromCharCode(65279)) { + s = s.substr(1); + } + return s; +}; +// based on joliss/js-string-escape +utils.escapeq = s => { + // console.log(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'; + default: + } + }); +}; +/** + Double quotes for SQL statements + @param {string} s Source string + @return {string} Escaped string + + @example + + Piter's => Piter''s + + */ +utils.undoubleq = 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 + + */ +utils.doubleq = 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 + +*/ +utils.doubleqq = s => { + return s.replace(/\'/g, "'"); +}; +/** +@function Hash a string to signed integer +@param {string} source string +@return {integer} hash number +*/ +// FNV-1a inspired hashing +utils.hash = 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; +}; +utils.glob = (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; +}; +/** + Modify res according modifier + @function + @param {object} query Query object + @param res {object|number|string|boolean} res Data to be converted +*/ +utils.modify = (alasql, query, res) => { + // jshint ignore:line + // console.log(arguments); + /* 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 (let key in res[i]) { + allcol[key] = true; + } + } + columns = Object.keys(allcol).map(function (columnid) { + return { columnid: columnid }; + }); + } + else { + // Cannot recognize columns + columns = []; + } + } + // console.log(columns); + let key; + if (modifier === 'VALUE') { + // console.log(222,res); + if (res.length > 0) { + 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 a = []; + for (var ind in res[0]) { + a.push(res[0][ind]); + } + res = a; + } + else { + res = undefined; + } + } + else if (modifier === 'COLUMN') { + var ar = []; + if (res.length > 0) { + 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') { + let ar = {}; + let 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') { + 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; +}; +export default utils; 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-worker.js b/dist/alasql-worker.js deleted file mode 100755 index c6c6aa8664..0000000000 --- a/dist/alasql-worker.js +++ /dev/null @@ -1,245 +0,0 @@ -//! AlaSQL v0.4.6 | © 2014-2016 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.6 - -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 deleted file mode 100755 index 4c5aa11fb5..0000000000 --- a/dist/alasql-worker.min.js +++ /dev/null @@ -1,2 +0,0 @@ -//! AlaSQL v0.4.6 | © 2014-2016 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 diff --git a/dist/alasql.d.ts b/dist/alasql.d.ts deleted file mode 100644 index c6cf8ef3c3..0000000000 --- a/dist/alasql.d.ts +++ /dev/null @@ -1,81 +0,0 @@ -// Project: https://github.com/agershun/alasql - -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:{}; - } -} - -declare var alasql: alaSQLSpace.AlaSQL; -declare module 'alasql' { - export = alasql; -} diff --git a/dist/alasql.fs.js b/dist/alasql.fs.js old mode 100755 new mode 100644 index a808547d22..8549fffcd8 --- a/dist/alasql.fs.js +++ b/dist/alasql.fs.js @@ -1,19744 +1,8411 @@ -//! AlaSQL v0.4.6 | © 2014-2016 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.6 - -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.6'; - -/** - 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: +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.alasql = factory()); +}(this, (function () { 'use strict'; + + var utils = {}; + utils.n2u = function (s) { + return '(y=' + s + ',y===y?y:undefined)'; + }; + utils.und = function (s, r) { + return '(y=' + s + ',typeof y=="undefined"?undefined:' + r + ')'; + }; + utils.returnTrue = function () { + return true; + }; + utils.returnUndefined = function () { }; + 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')(); + }()); + utils.isNativeFunction = function (fn) { + return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]'); + }; + utils.isArray = function (obj) { + return '[object Array]' === Object.prototype.toString.call(obj); + }; + utils.extend = function (a, b) { + a = a || {}; + for (var key in b) { + if (b.hasOwnProperty(key)) { + a[key] = b[key]; + } + } + return a; + }; + + var global$1 = utils.global; + var isNativeFunction = utils.isNativeFunction; + var utils$1 = {}; + utils$1.isWebWorker = (function () { + try { + var importScripts = global$1.importScripts; + return isNativeFunction(importScripts); + } + catch (e) { + return false; + } + })(); + utils$1.isNode = (function () { + try { + return isNativeFunction(global$1.process.reallyExit); + } + catch (e) { + return false; + } + })(); + utils$1.isBrowser = (function () { + try { + return isNativeFunction(global$1.location.reload); + } + catch (e) { + return false; + } + })(); + utils$1.isBrowserify = (function () { + return utils$1.isBrowser && typeof process !== 'undefined' && process.browser; + })(); + utils$1.isRequireJS = (function () { + return (utils$1.isBrowser && + typeof require === 'function' && + typeof require.specified === 'function'); + })(); + utils$1.isMeteor = (function () { + return typeof Meteor !== 'undefined' && Meteor.release; + })(); + utils$1.isMeteorClient = utils$1.isMeteor && Meteor.isClient; + utils$1.isMeteorServer = utils$1.isMeteor && Meteor.isServer; + utils$1.isCordova = typeof cordova === 'object'; + utils$1.isReactNative = (function () { + var isReact = false; + try { + if (typeof require('react-native') === 'object') { + isReact = true; + } + } + catch (e) { + } + return isReact; + })(); + utils$1.hasIndexedDB = !!global$1.indexedDB; + utils$1.isIE = (function () { + return false; + })(); + utils$1.findAlaSQLPath = function () { + if (utils$1.isWebWorker) { + return ''; + } + else if (utils$1.isMeteorClient) { + return '/packages/dist/'; + } + else if (utils$1.isMeteorServer) { + return 'assets/packages/dist/'; + } + else if (utils$1.isNode) { + return __dirname; + } + else if (utils$1.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 ''; + }; - Parser: { - yy: {} + var utils$2 = {}; + utils$2.cutbom = function (s) { + if (s[0] === String.fromCharCode(65279)) { + s = s.substr(1); + } + return s; + }; + utils$2.escapeq = function (s) { + return ('' + s).replace(/["'\\\n\r\u2028\u2029]/g, function (character) { + switch (character) { + case '"': + case "'": + case '\\': + return '\\' + character; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\u2028': + return '\\u2028'; + case '\u2029': + return '\\u2029'; + default: + } + }); + }; + utils$2.undoubleq = function (s) { + return s.replace(/(\')/g, "''"); + }; + utils$2.doubleq = function (s) { + return s.replace(/(\'\')/g, "\\'"); + }; + utils$2.doubleqq = function (s) { + return s.replace(/\'/g, "'"); + }; + utils$2.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; + }; + utils$2.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; + }; + utils$2.modify = function (alasql, query, res) { + 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) { + if (res.length > 0) { + var allcol = {}; + for (var i = Math.min(res.length, alasql.options.columnlookup || 10) - 1; 0 <= i; i--) { + for (var key$1 in res[i]) { + allcol[key$1] = true; + } + } + columns = Object.keys(allcol).map(function (columnid) { + return { columnid: columnid }; + }); + } + else { + columns = []; + } + } + var key; + if (modifier === 'VALUE') { + if (res.length > 0) { + 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 a = []; + for (var ind in res[0]) { + a.push(res[0][ind]); + } + res = a; + } + else { + res = undefined; + } + } + else if (modifier === 'COLUMN') { + var ar = []; + if (res.length > 0) { + 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') { + 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$1 = {}; + var 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$1[res[i][key]] = res[i][val]; + } + res = ar$1; + } + else if (modifier === 'RECORDSET') { + res = new alasql.Recordset({ columns: columns, data: res }); + } + else if (modifier === 'TEXTSTRING') { + 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'); + } + return res; + }; + + var utils$3 = {}; + utils$3.like = function (pattern, value, escape) { + 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 += '$'; + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; + }; + utils$3.uncomment = function (str) { + str = ('__' + str + '__').split(''); + var quote = false, quoteSign, + blockComment = false, lineComment = false; + for (var i = 0, l = str.length; i < l; i++) { + var unescaped = str[i - 1] !== '\\' || str[i - 2] === '\\'; + if (quote) { + if (str[i] === quoteSign && unescaped) { + quote = false; + } + } + else if (blockComment) { + if (str[i] === '*' && str[i + 1] === '/') { + str[i] = str[i + 1] = ''; + blockComment = false; + i++; + } + else { + str[i] = ''; + } + } + else if (lineComment) { + 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] = ''; + blockComment = true; + } + } + } + str = str.join('').slice(2, -2); + return str; + }; + + var cutbom = utils$2.cutbom; + var utils$4 = {}; + utils$4.loadFile = function (path, asy, success, error) { + var data, fs; + if (utils$1.isNode || utils$1.isMeteorServer) { + if (utils$4.isMeteor) { + fs = Npm.require('fs'); + } + else { + fs = require('fs'); + } + 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) { + throw err; + } + success(cutbom(body.toString())); + }); + } + else { + if (asy) { + fs.readFile(path, function (err, data) { + if (err) { + throw err; + } + success(cutbom(data.toString())); + }); + } + else { + data = fs.readFileSync(path); + success(cutbom(data.toString())); + } + } + } + } + else if (utils$4.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.readFile(path, 'utf8') + .then(function (contents) { + success(cutbom(contents)); + }) + .catch(function (err) { + throw err; + }); + } + else if (utils$4.isCordova) { + utils$4.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); + }); + }); + }); + } + else { + if (typeof path === 'string') { + if (path.substr(0, 1) === '#' && typeof document !== 'undefined') { + data = document.querySelector(path).textContent; + success(data); + } + else { + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + if (success) { + success(cutbom(xhr.responseText)); + } + } + else if (error) { + error(xhr); + } + } + }; + xhr.open('GET', path, asy); + xhr.responseType = 'text'; + 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(cutbom(data)); + }; + reader.readAsText(files[0]); + } + } + }; + utils$4.loadBinaryFile = function (path, asy, success, error) { + var fs; + if (utils$4.isNode || utils$4.isMeteorServer) { + if (utils$4.isMeteorServer) { + fs = Npm.require('fs'); + } + else { + 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$4.isReactNative) { + var RNFetchBlob = require('react-native-fetch-blob').default; + var dirs = RNFetchBlob.fs.dirs; + RNFetchBlob.fs.readFile(path, 'base64').then(function (data) { + success(data); + }); + } + else { + if (typeof path === 'string') { + var xhr = new XMLHttpRequest(); + xhr.open('GET', path, asy); + 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.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$4.removeFile = function (path, cb) { + if (utils$4.isNode) { + var fs = require('fs'); + fs.remove(path, cb); + } + else if (utils$4.isCordova) { + utils$4.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile(path, { create: false }, function (fileEntry) { + fileEntry.remove(cb); + if (cb) + { cb(); } + }, function () { + if (cb) + { cb(); } + }); + }); + } + else if (utils$4.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function () { + if (cb) + { cb(); } + }) + .catch(function (err) { + throw err; + }); + } + else { + throw new Error('You can remove files only in Node.js and Apache Cordova'); + } + }); + utils$4.deleteFile = function (path, cb) { + if (utils$4.isNode) { + var fs = require('fs'); + fs.unlink(path, cb); + } + else if (utils$4.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function () { + if (cb) + { cb(); } + }) + .catch(function (err) { + throw err; + }); + } + }; + utils$4.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; + }; + utils$4.fileExists = function (path, cb) { + if (utils$4.isNode) { + var fs = require('fs'); + fs.exists(path, cb); + } + else if (utils$4.isCordova) { + utils$4.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile(path, { create: false }, function (fileEntry) { + cb(true); + }, function () { + cb(false); + }); + }); + } + else if (utils$4.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.exists(path) + .then(function (yes) { + if (cb) + { cb(yes); } + }) + .catch(function (err) { + throw err; + }); + } + else { + throw new Error('You can use exists() only in Node.js or Apach Cordova'); + } + }; + utils$4.saveFile = function (path, data, cb, opts) { + var res = 1; + if (path === undefined) { + res = data; + if (cb) { + res = cb(res); + } + } + else { + if (utils$4.isNode) { + var fs = require('fs'); + data = fs.writeFileSync(path, data); + if (cb) { + res = cb(res); + } + } + else if (utils$4.isReactNative) { + var RNFS = require('react-native-fs'); + RNFS.writeFile(path, data) + .then(function (success) { + if (cb) + { res = cb(res); } + }) + .catch(function (err) { + console.error(err.message); + }); + } + else if (utils$4.isCordova) { + utils$4.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + 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 (utils$4.isIE() === 9) { + var ndata = data.replace(/\r\n/g, '&#A;&#D;'); + ndata = ndata.replace(/\n/g, '&#D;'); + ndata = ndata.replace(/\t/g, ' '); + var testlink = utils$4.global.open('about:blank', '_blank'); + testlink.document.write(ndata); + testlink.document.close(); + testlink.document.execCommand('SaveAs', false, path); + testlink.close(); + } + else { + var opt = { + disableAutoBom: false, + }; + utils$4.extend(opt, opts); + var blob = new Blob([data], { type: 'text/plain;charset=utf-8' }); + utils$4.saveAs(blob, path, opt.disableAutoBom); + if (cb) { + res = cb(res); + } + } + } + } + return res; + }; + + var domTools = { domEmptyChildren: function (container) { + var len = container.childNodes.length; + while (len--) { + container.removeChild(container.lastChild); + } + } }; + + var utils$5 = {}; + utils$5.getXLSX = function () { + var XLSX = null; + if (utils$1.isNode || utils$1.isBrowserify || utils$1.isMeteorServer) { + XLSX = require('xlsx') || null; + } + else { + XLSX = global.XLSX || null; + } + if (null === XLSX) { + throw new Error('Please include the xlsx.js library'); + } + return XLSX; + }; + utils$5.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; + }; + utils$5.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 utils$6 = Object.assign({}, utils, utils$1, utils$2, utils$3, utils$4, domTools, utils$3, utils$5); + + var hash$1 = function (x) { return x; }; + function addOptions (mem) { + var alasql = mem.alasql; + alasql.parse = function (sql) { + return mem.grammar.parse(utils$6.uncomment(sql)); + }; + alasql.engines = {}; + alasql.databases = {}; + alasql.databasenum = 0; + alasql.options = {}; + alasql.options.errorlog = false; + alasql.options.valueof = false; + alasql.options.dropifnotexists = false; + alasql.options.datetimeformat = 'sql'; + alasql.options.casesensitive = true; + alasql.options.logtarget = 'output'; + alasql.options.logprompt = true; + alasql.options.progress = false; + alasql.options.modifier = undefined; + alasql.options.columnlookup = 10; + alasql.options.autovertex = true; + alasql.options.usedbo = true; + alasql.options.autocommit = true; + alasql.options.cache = true; + alasql.options.tsql = true; + alasql.options.mysql = true; + alasql.options.postgres = true; + alasql.options.oracle = true; + alasql.options.sqlite = true; + alasql.options.orientdb = true; + alasql.options.nocount = false; + alasql.options.nan = false; + alasql.options.joinstar = 'overwrite'; + alasql.vars = {}; + alasql.declares = {}; + alasql.prompthistory = []; + alasql.plugins = {}; + alasql.from = {}; + alasql.into = {}; + alasql.fn = {}; + alasql.aggr = {}; + alasql.busy = 0; + alasql.MAXSQLCACHESIZE = 10000; + alasql.DEFAULTDATABASEID = 'alasql'; + alasql.lastid = 0; + alasql.buffer = {}; + 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; + db.resetSqlCache(); + if (alasql.options.usedbo) { + alasql.databases.dbo = db; + } + }; + 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); + }; + alasql.exec = function (sql, params, cb, scope) { + 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); + } + }; + alasql.dexec = function (databaseid, sql, params, cb, scope) { + var db = alasql.databases[databaseid]; + var hh; + if (alasql.options.cache) { + hh = hash$1(sql); + var statement = db.sqlCache[hh]; + if (statement && db.dbversion === statement.dbversion) { + return statement(params, cb); + } + } + 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) { + statement = ast.statements[0].compile(databaseid, params); + if (!statement) { + return; + } + statement.sql = sql; + statement.dbversion = db.dbversion; + if (alasql.options.cache) { + 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); + res = alasql.res = ast.statements[0].execute(databaseid, params, cb, scope); + return res; + } + } + else { + if (cb) { + alasql.adrun(databaseid, ast, params, cb, scope); + } + else { + return alasql.drun(databaseid, ast, params, cb, scope); + } + } + }; + 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; + }; + 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++); + } + var useid = alasql.useid; + if (useid !== databaseid) { + alasql.use(databaseid); + } + var res = []; + var adrunone = function (data) { + if (data !== undefined) { + res.push(data); + } + var astatement = ast.statements.shift(); + if (!astatement) { + if (useid !== databaseid) { + alasql.use(useid); + } + cb(res); + } + 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(); + }; + alasql.compile = function (sql, databaseid) { + databaseid = databaseid || alasql.useid; + var ast = alasql.parse(sql); + 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'); + } + }; + mem.alasql = alasql; } - 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), + 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 , $$ , _$ ) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + this.$ = yy.casesensitive ? $$[$0] : $$[$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]; + 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]; + 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.$ = { funcid: $$[$0], as: 'default' }; + break; + case 217: + this.$ = { funcid: $$[$0 - 1], as: $$[$0] }; + break; + case 218: + this.$ = { funcid: $$[$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 (yy.isInAggr($$[$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: + 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 this$1 = this; + var self = this, stack = [0], vstack = [null], + lstack = [], + table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this$1.yy) { + if (Object.prototype.hasOwnProperty.call(this$1.yy, k)) { + sharedState.yy[k] = this$1.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } + else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + _token_stack: var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; + var symbol, preErrorSymbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this$1.defaultActions[state]) { + action = this$1.defaultActions[state]; + } + else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + _handle_error: + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + var locateNearestErrorRecoveryRule = function (state) { + var stack_probe = stack.length - 1; + var depth = 0; + for (;;) { + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; + } + stack_probe -= 2; + state = stack[stack_probe]; + ++depth; + } + }; + if (!recovering) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + expected = []; + for (p in table[state]) { + if (this$1.terminals_[p] && p > TERROR) { + expected.push("'" + this$1.terminals_[p] + "'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ":\n" + lexer.showPosition() + "\nExpecting " + expected.join(', ') + ", got '" + (this$1.terminals_[symbol] || symbol) + "'"; + } + else { + errStr = 'Parse error on line ' + (yylineno + 1) + ": Unexpected " + + (symbol == EOF ? "end of input" : + ("'" + (this$1.terminals_[symbol] || symbol) + "'")); + } + this$1.parseError(errStr, { + text: lexer.match, + token: this$1.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } + else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + 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); + symbol = TERROR; + state = stack[stack.length - 1]; + action = table[state] && table[state][TERROR]; + recovering = 3; + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } + else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this$1.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this$1.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this$1.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } }; + 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); + }; + 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); + } + }, + 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; + }, + 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; + }, + 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.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; + }, + more: function () { + this._more = true; + return this; + }, + 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; + }, + less: function (n) { + this.unput(this.match.slice(n)); + }, + pastInput: function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); + }, + 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, ""); + }, + showPosition: function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + test_match: function (match, indexed_rule) { + var this$1 = this; + var token, lines, backup; + if (this.options.backtrack_lexer) { + 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) { + for (var k in backup) { + this$1[k] = backup[k]; + } + return false; + } + return false; + }, + next: function () { + var this$1 = this; + 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$1._input.match(this$1.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this$1.options.backtrack_lexer) { + token = this$1.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } + else if (this$1._backtrack) { + match = false; + continue; + } + else { + return false; + } + } + else if (!this$1.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + 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 + }); + } + }, + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } + else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } + else { + return this.conditionStack[0]; + } + }, + _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; + } + }, + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } + else { + return "INITIAL"; + } + }, + pushState: function pushState(condition) { + this.begin(condition); + }, + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, 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; + break; + case 11: + 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; + 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)); + } + } - 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) - }, + function base (mem) { + var yy = mem.grammar.yy; + yy.extend = utils$6.extend; + yy.casesensitive = mem.alasql.options.casesensitive; + yy.isInAggr = function (val) { return !!mem.alasql.aggr[val]; }; + yy.Base = function (params) { + return yy.extend(this, params); + }; + yy.Base.prototype.toString = function () { }; + yy.Base.prototype.toType = function () { }; + yy.Base.prototype.toJS = function () { }; + yy.Base.prototype.compile = utils$6.returnUndefined; + yy.Base.prototype.exec = function () { }; + yy.Base.prototype.compile = utils$6.returnUndefined; + yy.Base.prototype.exec = function () { }; + mem.grammar.yy = yy; + } - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } + function statements (mem) { + var yy = mem.grammar.yy; + yy.Statements = function (params) { + return yy.extend(this, params); + }; + yy.Statements.prototype.toString = function () { + return this.statements + .map(function (st) { + return st.toString(); + }) + .join('; '); + }; + 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; + }; + } + }; + mem.grammar.yy = yy; } - 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) + function doJoin(alasql, query, scope, h) { + if (h >= query.sources.length) { + if (query.wherefn(scope, query.params, alasql)) { + if (query.groupfn) { + query.groupfn(scope, query.params, alasql); + } + else { + 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 { + var source = query.sources[h]; + var nextsource = query.sources[h + 1]; + { + var tableid = source.alias || source.tableid; + var pass = false; + var data = source.data; + var opt = false; + 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; + } + } + 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; + if (!source.onleftfn || + source.onleftfn(scope, query.params, alasql) == + source.onrightfn(scope, query.params, alasql)) { + if (source.onmiddlefn(scope, query.params, alasql)) { + if (source.joinmode != 'SEMI' && source.joinmode != 'ANTI') { + doJoin(query, scope, h + 1); + } + if (source.joinmode != 'LEFT' && source.joinmode != 'INNER') { + dataw._rightjoin = true; + } + pass = true; + } + } + i++; + } + if ((source.joinmode == 'LEFT' || + source.joinmode == 'OUTER' || + source.joinmode == 'SEMI') && + !pass) { + scope[tableid] = {}; + doJoin(query, scope, h + 1); + } + } + 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 { + if (h == 0) { + scope[nextsource.alias] = dataw; + doJoin(query, scope, h + 2); + } + } + j++; + } + } + } + scope[tableid] = undefined; + } } - 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) + function queryfn(alasql, query, oldscope, cb, A, B) { + var aaa = query.sources.length; + query.sourceslen = query.sources.length; + var slen = query.sourceslen; + query.query = query; + query.A = A; + query.B = B; + query.cb = cb; + query.oldscope = oldscope; + if (query.queriesfn) { + query.sourceslen += query.queriesfn.length; + slen += query.queriesfn.length; + query.queriesdata = []; + query.queriesfn.forEach(function (q, idx) { + q.query.params = query.params; + queryfn2(alasql, [], -idx - 1, query); + }); + } + var scope; + if (!oldscope) + { scope = {}; } + else + { scope = cloneDeep(oldscope); } + query.scope = scope; + var result; + query.sources.forEach(function (source, idx) { + source.query = query; + var rs = source.datafn(query, query.params, queryfn2, idx, alasql); + if (typeof rs !== 'undefined') { + if ((query.intofn || query.intoallfn) && Array.isArray(rs)) + { rs = rs.length; } + result = rs; + } + source.queriesdata = query.queriesdata; + }); + if (query.sources.length === 0 || 0 === slen) + { result = queryfn3(alasql, query); } + return result; } - 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) + function queryfn2(alasql, data, idx, query) { + 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; + if (source.joinmode === 'OUTER' || + source.joinmode === 'RIGHT' || + source.joinmode === 'ANTI') { + source.dontcache = false; + } + source.data = {}; + } + } + else { + query.queriesdata[-idx - 1] = flatArray(data); + } + query.sourceslen--; + if (query.sourceslen > 0) + { return; } + return queryfn3(alasql, query); } -*/ -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.$ = {funcid:$$[$0], as:'default'}; -break; -case 217: - this.$ = {funcid:$$[$0-1], as: $$[$0]}; -break; -case 218: - this.$ = {funcid:$$[$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]; + function queryfn3(alasql, query) { + var scope = query.scope, jlen; + preIndex(query); + query.data = []; + query.xgroups = {}; + query.groups = []; + var h = 0; + doJoin(alasql, query, scope, h); + 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);"; + }); + var gfn = new Function('g,params,alasql', 'var y;' + gfns); + } + 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); + } + } } - } - - 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; - } - - } + doDistinct(query); + if (query.unionallfn) { + 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); + } + 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, + }); + } + } + doLimit(query); + if (typeof angular !== 'undefined') { + query.removeKeys.push('$$hashKey'); + } + if (query.removeKeys.length > 0) { + var removeKeys = query.removeKeys; + 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]]; + } + } + } + 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; + 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)) { + delete r[k]; + } + } + } + } + if (query.columns.length > 0) { + query.columns = query.columns.filter(function (column) { + var found = false; + removeLikeKeys.forEach(function (key) { + 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.params, query.alasql); + 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; + } + } + 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); + } + } + function doDistinct(query) { + if (query.distinct) { + var uniq = {}; + 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 ind in uniq) { + query.data.push(uniq[ind]); + } + } + } + var preIndex = function (query) { + for (var k = 0, klen = query.sources.length; k < klen; k++) { + var source = query.sources[k]; + delete source.ix; + if (k > 0 && source.optimization === 'ix' && source.onleftfn && source.onrightfn) { + 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 = {}; } + 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 = {}; + var scope = {}; + var i = 0; + var ilen = source.data.length; + var dataw; + while ((dataw = source.data[i]) || + (source.getfn && (dataw = source.getfn(i))) || + i < ilen) { + if (source.getfn && !source.dontcache) + { source.data[i] = dataw; } + scope[source.alias || source.tableid] = dataw; + if (source.srcwherefn(scope, query.params, alasql)) { + var addr = source.onrightfn(scope, query.params, alasql); + var group = source.ix[addr]; + if (!group) { + group = source.ix[addr] = []; + } + group.push(dataw); + } + i++; + } + if (source.databaseid && + alasql.databases[source.databaseid].tables[source.tableid]) { + alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.onrightfns + '`' + source.srcwherefns)] = + source.ix; + } + } + } + else if (source.wxleftfn) { + if (!alasql.databases[source.databaseid].engineid) { + ixx = + alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.wxleftfns + '`')]; + } + if (!alasql.databases[source.databaseid].tables[source.tableid].dirty && ixx) { + source.ix = ixx; + source.data = source.ix[source.wxrightfn(null, query.params, alasql)]; + } + else { + source.ix = {}; + scope = {}; + i = 0; + ilen = source.data.length; + while ((dataw = source.data[i]) || + (source.getfn && (dataw = source.getfn(i))) || + i < ilen) { + if (source.getfn && !source.dontcache) + { source.data[i] = dataw; } + scope[source.alias || source.tableid] = source.data[i]; + addr = source.wxleftfn(scope, query.params, alasql); + group = source.ix[addr]; + if (!group) { + group = source.ix[addr] = []; + } + group.push(source.data[i]); + i++; + } + if (!alasql.databases[source.databaseid].engineid) { + alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.wxleftfns + '`')] = + source.ix; + } + } + if (source.srcwherefns) { + if (source.data) { + scope = {}; + source.data = source.data.filter(function (r) { + scope[source.alias] = r; + return source.srcwherefn(scope, query.params, alasql); + }); + } + else { + source.data = []; + } + } + } + else if (source.srcwherefns && !source.dontcache) { + if (source.data) { + var scope = {}; + source.data = source.data.filter(function (r) { + scope[source.alias] = r; + return source.srcwherefn(scope, query.params, alasql); + }); + scope = {}; + i = 0; + ilen = source.data.length; + var res = []; + while ((dataw = source.data[i]) || + (source.getfn && (dataw = source.getfn(i))) || + i < ilen) { + if (source.getfn && !source.dontcache) + { source.data[i] = dataw; } + scope[source.alias] = dataw; + if (source.srcwherefn(scope, query.params, alasql)) + { res.push(dataw); } + i++; + } + source.data = res; + } + else { + source.data = []; + } + } + if (source.databaseid && alasql.databases[source.databaseid].tables[source.tableid]) ; + } + }; + + function select (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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; + }; + yy.Select.prototype.toJS = function (context) { + var s = 'alasql.utils.flatArray(this.queriesfn[' + + (this.queriesidx - 1) + + '](this.params,null,' + + context + + '))[0]'; + return s; + }; + yy.Select.prototype.compile = function (databaseid, params) { + var db = alasql.databases[databaseid]; + var query = new mem.alasql.Query(); + query.removeKeys = []; + query.aggrKeys = []; + query.explain = this.explain; + query.explaination = []; + query.explid = 1; + query.modifier = this.modifier; + query.database = db; + this.compileWhereExists(query); + this.compileQueries(query); + query.defcols = this.compileDefCols(query, databaseid); + query.fromfn = this.compileFrom(query); + if (this.joins) { + this.compileJoins(query); + } + query.rownums = []; + this.compileSelectGroup0(query); + if (this.group || query.selectGroup.length > 0) { + query.selectgfns = this.compileSelectGroup1(query); + } + else { + query.selectfns = this.compileSelect1(query, params); + } + this.compileRemoveColumns(query); + if (this.where) { + this.compileWhereJoins(query); + } + query.wherefn = this.compileWhere(query); + if (this.group || query.selectGroup.length > 0) { + query.groupfn = this.compileGroup(query); + } + if (this.having) { + query.havingfn = this.compileHaving(query); + } + 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); + } + query.distinct = this.distinct; + if (this.pivot) + { query.pivotfn = this.compilePivot(query); } + if (this.unpivot) + { query.pivotfn = this.compileUnpivot(query); } + 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; + query.corresponding = this.corresponding; + 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; + } + } + if (this.into) { + if (this.into instanceof yy.Table) { + if (alasql.options.autocommit && + alasql.databases[this.into.databaseid || databaseid].engineid) { + 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 { + query.intofns = + "alasql.databases['" + + (this.into.databaseid || databaseid) + + "'].tables" + + "['" + + this.into.tableid + + "'].data.push(r);"; + } + } + else if (this.into instanceof yy.VarValue) { + 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) { + 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) { + query.intofns = "params['" + this.into.param + "'].push(r)"; + } + if (query.intofns) { + query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); + } + else if (query.intoallfns) { + query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); + } + } + var statement = function (params, cb, oldscope) { + query.params = params; + var res1 = queryfn(alasql, query, oldscope, function (res) { + 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 = utils$6.modify(alasql, query, res); + if (cb) { + cb(res2); + } + return res2; + }); + return res1; + }; + statement.query = query; + return statement; + }; + yy.Select.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - return true; -}}; + function expression (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + yy.ExpressionStatement = function (params) { + return yy.extend(this, params); + }; + yy.ExpressionStatement.prototype.toString = function () { + return this.expression.toString(); + }; + yy.ExpressionStatement.prototype.execute = function (databaseid, params, cb) { + if (this.expression) { + alasql.precompile(this, databaseid, params); + 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.Expression = function (params) { + return yy.extend(this, params); + }; + 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.Expression.prototype.findAggregator = function (query) { + if (this.expression.findAggregator) { + this.expression.findAggregator(query); + } + }; + yy.Expression.prototype.toJS = function (context, tableid, defcols) { + if (this.expression.reduced) { + return 'true'; + } + return this.expression.toJS(context, tableid, defcols); + }; + yy.Expression.prototype.compile = function (context, tableid, defcols) { + if (this.reduced) { + return utils$6.returnTrue(); + } + return new Function('p', 'var y;return ' + this.toJS(context, tableid, defcols)); + }; + 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 ( ) { + 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.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; } + return s; + }; + 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; + }; + yy.Table = function (params) { + return yy.extend(this, params); + }; + yy.Table.prototype.toString = function () { + var s = this.tableid; + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; + }; + yy.View = function (params) { + return yy.extend(this, params); + }; + yy.View.prototype.toString = function () { + var s = this.viewid; + if (this.databaseid) { + s = this.databaseid + '.' + s; + } + return s; + }; + 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); + } + 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 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 === '->') { + 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)) { + 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 + + '"]'; + } + } + if (this.op === 'IS') { + s = + '' + + '(' + + '(' + + leftJS() + + '==null)' + + ' === ' + + '(' + + rightJS() + + '==null)' + + ')'; + } + 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') { + 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 += + 'alasql.utils.flatArray(this.queriesfn[' + + this.queriesidx + + '](params,null,' + + context + + '))'; + s += '.indexOf('; + s += leftJS() + ')>-1)'; + } + else if (Array.isArray(this.right)) { + s = '([' + this.right.map(ref).join(',') + '].indexOf(' + leftJS() + ')>-1)'; + } + else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; + } + } + if (this.op === 'NOT IN') { + if (this.right instanceof yy.Select) { + s = '('; + s += + 'alasql.utils.flatArray(this.queriesfn[' + + this.queriesidx + + '](params,null,p))'; + s += '.indexOf('; + s += leftJS() + ')<0)'; + } + else if (Array.isArray(this.right)) { + s = '([' + this.right.map(ref).join(',') + '].indexOf('; + s += leftJS() + ')<0)'; + } + else { + s = '(' + rightJS() + '.indexOf('; + s += leftJS() + ')==-1)'; + } + } + if (this.allsome === 'ALL') { + var s; + if (this.right instanceof yy.Select) { + 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) { + 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.op === 'AND') { + if (this.left.reduced) { + if (this.right.reduced) { + return 'true'; + } + else { + s = rightJS(); + } + } + else if (this.right.reduced) { + s = leftJS(); + } + op = '&&'; + } + 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 "'" + utils$6.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 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 ('[(' + + 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'; + }; + 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'; + } + }; + 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) + + '])'); + } + } + if (this.op == null) { + return '(' + this.right.toJS(context, tableid, defcols) + ')'; + } + }; + yy.Column = function (params) { + return yy.extend(this, params); + }; + yy.Column.prototype.toString = function (dontas) { + var s; + if (this.columnid == +this.columnid) { + 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') { + s = "g['" + this.nick + "']"; + } + else if (this.tableid) { + if (this.columnid !== '_') { + 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 !== '_') { + s = + context + + "['" + + (this.tableid || tableid) + + "']['" + + this.columnid + + "']"; + } + else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } + else if (tableid === -1) { + s = context + "['" + this.columnid + "']"; + } + else { + if (this.columnid !== '_') { + s = context + "['" + (this.tableid || tableid) + "']['" + this.columnid + "']"; + } + else { + s = context + "['" + (this.tableid || tableid) + "']"; + } + } + } + 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; } + return s; + }; + yy.AggrValue.prototype.findAggregator = function (query) { + var colas = utils$6.escapeq(this.toString()) + ':' + query.selectGroup.length; + 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); + } + 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(); + } + }; + yy.AggrValue.prototype.toJS = function ( ) { + 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() + ')'; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } -// 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)) + function exists (mem) { + var yy = mem.grammar.yy; + 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); + 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); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + }; + mem.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 = 'RECORDSET'; + return nq; + }); + } + if (statement.exists) { + statement.existsfn = statement.exists.map(function (ex) { + var nq = ex.compile(databaseid || statement.database.databaseid); + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + }; + mem.grammar.yy = yy; + } -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"] + function defcols (mem) { + var yy = mem.grammar.yy; + 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 = mem.alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + if (undefined === table) { + throw new Error('Table does not exists: ' + fr.tableid); + } + if (table.columns) { + table.columns.forEach(function (col) { + if (defcols[col.columnid]) { + defcols[col.columnid] = '-'; + } + 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 = mem.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] = '-'; + } + else { + defcols[col.columnid] = alias; + } + }); + } + } + else if (jn.select) { + throw new Error('Select not implemented yet'); + } + else if (jn.param) { + throw new Error('param not implemented yet'); + } + else if (jn.func) { + throw new Error('func not implemented yet'); + } + else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + return defcols; + }; + mem.grammar.yy = yy; + } -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 = ({ + function from_ (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + yy.Select.prototype.compileFrom = function (query) { + var self = this; + query.sources = []; + 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: utils$6.returnTrue, + srcwherefns: '', + srcwherefn: utils$6.returnTrue, + }; + if (tq instanceof yy.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) { + 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; + }; + } + } + 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'; + } + source.columns = source.subquery.query.columns; + source.datafn = function (query, params, cb, idx, alasql) { + var res; + source.subquery(query.params, function (data) { + res = data.data; + if (cb) + { res = cb(res, idx, query); } + return res; + }); + return res; + }; + } + else if (tq instanceof yy.Search) { + source.subsearch = tq; + source.columns = []; + source.datafn = function (query, params, cb, idx, alasql) { + var res; + source.subsearch.execute(query.database.databaseid, query.params, function (data) { + res = data; + if (cb) + { res = cb(res, idx, query); } + return res; + }); + 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'); + } + query.sources.push(source); + }); + 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)) { + 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; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } -EOF:1, + function compile (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + var escapeq = utils$6.escapeq; + function compileSelectStar(query, alias, joinstar) { + var sp = '', ss = []; + query.ixsources = {}; + query.sources.forEach(function (source) { + query.ixsources[source.alias] = source; + }); + var columns; + if (query.ixsources[alias]) { + var columns = query.ixsources[alias].columns; + } + 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') { + sp += + "r['" + + alias + + "']['" + + tcol.columnid + + "']=p['" + + alias + + "']['" + + tcol.columnid + + "'];"; + } + else { + ss.push("'" + tcol.columnid + "':p['" + alias + "']['" + tcol.columnid + "']"); + } + 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 { + 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) { + var ret = compileSelectStar(query, col.tableid, false); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + } + else { + for (var alias in query.aliases) { + var ret = compileSelectStar(query, alias, true); + if (ret.s) { + ss = ss.concat(ret.s); + } + sp += ret.sp; + } + } + } + else { + 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 !== '_') { + { + 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 exists: ' + 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, + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + query.dirtyColumns = true; + } + } + else { + var coldef = { + columnid: col.as || col.columnid, + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + } + } + else if (col instanceof yy.AggrValue) { + if (!self.group) { + 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("'" + + utils$6.escapeq(col.as) + + "':" + + utils$6.n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))); + } + else if (col.aggregatorid === 'COUNT') { + ss.push("'" + utils$6.escapeq(col.as) + "':1"); + } + var coldef = { + columnid: col.as || col.columnid || col.toString(), + }; + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + else { + ss.push("'" + + utils$6.escapeq(col.as || col.columnid || col.toString()) + + "':" + + utils$6.n2u(col.toJS('p', query.defaultTableid, query.defcols))); + query.selectColumns[escapeq(col.as || col.columnid || col.toString())] = true; + var coldef = { + columnid: col.as || col.columnid || col.toString(), + }; + 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; + if (col instanceof yy.Column) { + colas = utils$6.escapeq(col.columnid); + } + else { + colas = utils$6.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]};'; + return ''; + } + else { + 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; + s += "r['" + colas + "']="; + s += utils$6.n2u(col.toJS('g', '')) + ';'; + for (var i = 0; i < query.removeKeys.length; i++) { + if (query.removeKeys[i] === colas) { + query.removeKeys.splice(i, 1); + break; + } + } + } + }); + 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'); + }; + yy.Select.prototype.compileRemoveColumns = function (query) { + 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 column.like.value; + }); + } + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, + function where (mem) { + var yy = mem.grammar.yy; + 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; + optimizeWhereJoin(query, this.where.expression); + 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) { + if (source.tableid) { + if (s.indexOf("p['" + source.alias + "']") > -1) + { fsrc.push(source); } + } + }); + 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; + } + var src = fsrc[0]; + 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; + return; + } + else { + if ((ast.op = 'AND')) { + optimizeWhereJoin(query, ast.left); + optimizeWhereJoin(query, ast.right); + } + } + } + mem.grammar.yy = yy; + } -// 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; - }, + function useDatabase (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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.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 = alasql.newDatabase(dbid); + var res = 1; + if (cb) + { return cb(res); } + return res; + } + }; + 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; + 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.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; + }; + yy.DetachDatabase = function (params) { + return yy.extend(this, params); + }; + yy.DetachDatabase.prototype.toString = function () { + var s = 'DETACH'; + s += ' DATABASE' + ' ' + this.databaseid; + return s; + }; + 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; + }; + yy.UseDatabase = function (params) { + return yy.extend(this, params); + }; + yy.UseDatabase.prototype.toString = function () { + return 'USE' + ' ' + 'DATABASE' + ' ' + this.databaseid; + }; + 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; + }; + 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.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; + }; + mem.grammar.yy = yy; + } -// 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]++; - } + function functions (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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(); } + return s; + }; + yy.FuncValue.prototype.execute = function (databaseid, params, cb) { + var res = 1; + alasql.precompile(this, databaseid, params); + 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 (!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 && this.args.length > 0) { + s += this.args + .map(function (arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } + else { + if (this.newid) + { s += 'new '; } + s += 'alasql.fn.' + this.funcid + '('; + if (this.args && this.args.length > 0) { + s += this.args + .map(function (arg) { + return arg.toJS(context, tableid, defcols); + }) + .join(','); + } + s += ')'; + } + return s; + }; + mem.grammar.yy = yy; + } - this._input = this._input.slice(1); - return ch; - }, + var cloneDeep$1 = utils$6.cloneDeep; + function createtable (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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; + }; + yy.CreateTable.prototype.execute = function (databaseid, params, cb) { + var db = alasql.databases[this.table.databaseid || databaseid]; + var tableid = this.table.tableid; + if (!tableid) { + throw new Error('Table name is not defined'); + } + var columns = this.columns; + var constraints = this.constraints || []; + 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] = alasql.newTable()); + if (this.class) { + table.isclass = true; + } + var ss = []; + var uss = []; + if (columns) { + columns.forEach(function (col) { + var dbtypeid = col.dbtypeid; + if (!alasql.fn[dbtypeid]) { + dbtypeid = dbtypeid.toUpperCase(); + } + if (['SERIAL', 'SMALLSERIAL', 'BIGSERIAL'].indexOf(dbtypeid) > -1) { + col.identity = { value: 1, step: 1 }; + } + var newcol = { + columnid: col.columnid, + dbtypeid: dbtypeid, + dbsize: col.dbsize, + dbprecision: col.dbprecision, + notnull: col.notnull, + identity: col.identity, + }; + if (col.identity) { + table.identities[col.columnid] = { + value: +col.identity.value, + step: +col.identity.step, + }; + } + 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', '')); + } + 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] = {}; + } + 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] = {}; + } + 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(';'); + 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; + }); + } + 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); + } + table.insert = function (r, orreplace) { + var oldinserted = alasql.inserted; + alasql.inserted = [r]; + var table = this; + var toreplace = false; + 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; } + 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)) { + 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'); } + } + } + 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'); } + } + }); + } + if (toreplace) { + table.update(function (t) { + for (var f in r) + { t[f] = r[f]; } + }, table.data.indexOf(toreplace), params); + } + else { + table.data.push(r); + 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; + }); + } + } + 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]; + 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; } + 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) { + 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) { + var this$1 = this; + var r = cloneDeep$1(this.data[i]); + var pk; + 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); + 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$1.data[i], r) === false) + { prevent = prevent || true; } + } + else if (trigger.statement) { + if (trigger.statement.execute(databaseid) === false) + { prevent = prevent || true; } + } + } + } + if (prevent) + { return false; } + 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$1.data[i], r); + } + else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + if (escape) + { return; } + 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'); + } + }); + } + 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; + for (var tr in table.afterupdate) { + var trigger = table.afterupdate[tr]; + if (trigger) { + if (trigger.funcid) { + alasql.fn[trigger.funcid](this$1.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; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); + function insert (mem) { + var yy = mem.grammar.yy; + var alasql = mem.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) { + 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"; + } + var s = ''; + var sw = ''; + var s = "db.tables['" + tableid + "'].dirty=true;"; + var s3 = 'var a,aa=[],x;'; + var s33; + 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 = []; + if (self.columns) { + self.columns.forEach(function (col, idx) { + var q = "'" + col.columnid + "':"; + if (table.xcolumns && table.xcolumns[col.columnid]) { + if (['INT', 'FLOAT', 'NUMBER', 'MONEY'].indexOf(table.xcolumns[col.columnid].dbtypeid) >= 0) { + 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 { + if (Array.isArray(values) && table.columns && table.columns.length > 0) { + table.columns.forEach(function (col, idx) { + var q = "'" + col.columnid + "':"; + 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 = JSONtoJS(values); + } + } + if (db.tables[tableid].defaultfns) { + ss.unshift(db.tables[tableid].defaultfns); + } + if (sw) { + s += 'a=' + sw + ';'; + } + else { + s += 'a={' + ss.join(',') + '};'; + } + 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;'; + } + 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) ; + 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); + } + 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) { + 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); + 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); + } + 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); + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - 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); + function expandGrammar (mem) { + mem.alasql.parser = alasqlparser; + base(mem); + statements(mem); + select(mem); + expression(mem); + exists(mem); + defcols(mem); + from_(mem); + compile(mem); + where(mem); + useDatabase(mem); + functions(mem); + createtable(mem); + insert(mem); + } - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; + function logic(mem) { + var yy = mem.grammar.yy; + return function (sql, params, cb, scope) { + params = params || []; + if (typeof importScripts !== 'function' && mem.alasql.webworker) { + var id = mem.alasql.lastid++; + mem.alasql.buffer[id] = cb; + mem.alasql.webworker.postMessage({ id: id, sql: sql, params: params }); + return; + } + if (arguments.length === 0) { + return new yy.Select({ + columns: [new yy.Column({ columnid: '*' })], + from: [new yy.ParamValue({ param: 0 })], + }); + } + else if (arguments.length === 1) { + if (sql.constructor === Array) { + return mem.alasql.promise(sql); + } + } + if (typeof params === 'function') { + scope = cb; + cb = params; + params = []; + } + if (typeof params !== 'object') { + params = [params]; + } + if (typeof sql === 'function') { + 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]; + } + return mem.alasql.exec(sql, params, cb, scope); + }; + } - 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 - }; + function database (mem) { + mem.alasql.databasenum = 0; + mem.alasql.databases = {}; + var Database = function Database(databaseid, alasql) { + this.dbversion = 0; + this.counter = 0; + this.tables = {}; + this.views = {}; + this.triggers = {}; + this.indices = {}; + this.objects = {}; + this.sqlCache = {}; + this.sqlCacheSize = 0; + this.alasql = alasql; + this.databaseid = databaseid; + return this; + }; + Database.prototype.resetSqlCache = function resetSqlCache () { + this.sqlCache = {}; + this.sqlCacheSize = 0; + }; + Database.prototype.exec = function exec (sql, params, cb) { + return this.alasql.dexec(this.databaseid, sql, params, cb); + }; + Database.prototype.autoval = function autoval (tablename, colname, getNext) { + return this.alasql.autoval(tablename, colname, getNext, this.databaseid); + }; + mem.alasql.newDatabase = function (dbName, useNewDatabase) { + if ( useNewDatabase === void 0 ) useNewDatabase = true; + if (!dbName) { + dbName = 'db' + mem.alasql.databasenum++; + } + var db = new Database(dbName, mem.alasql); + mem.alasql.databases[db.databaseid] = db; + if (useNewDatabase) { + mem.alasql.use('alasql'); + } + }; + } - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, + var Query = function Query(params) { + this.columns = []; + this.xcolumns = {}; + this.selectGroup = []; + this.groupColumns = {}; + utils$6.extend(this, params); + return this; + }; + var Recordset = function Recordset(params) { + utils$6.extend(this, params); + }; + function query (mem) { + mem.alasql.Query = Query; + mem.alasql.QueRecordsetry = Recordset; + } -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, + function table (mem) { + var Table = function Table(params) { + this.data = []; + this.columns = []; + this.xcolumns = {}; + this.inddefs = {}; + this.indices = {}; + this.uniqs = {}; + this.uniqdefs = {}; + this.identities = {}; + this.checks = []; + this.checkfns = []; + this.beforeinsert = {}; + this.afterinsert = {}; + this.insteadofinsert = {}; + this.beforedelete = {}; + this.afterdelete = {}; + this.insteadofdelete = {}; + this.beforeupdate = {}; + this.afterupdate = {}; + this.insteadofupdate = {}; + utils$6.extend(this, params); + return this; + }; + Table.prototype.indexColumns = function indexColumns () { + this.xcolumns = {}; + this.columns.forEach(function (col) { + this.xcolumns[col.columnid] = col; + }); + }; + mem.alasql.newTable = function (params) { + if ( params === void 0 ) params = []; + return new Table(params); + }; + } -// 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 - }); + function addDataStruct (mem) { + database(mem); + query(mem); + table(mem); + } - } - return this; - }, + var und = utils$6.und; + function stdlib (mem) { + var stdlib = {}; + stdlib.ABS = function (a) { + return 'Math.abs(' + a + ')'; + }; + stdlib.CLONEDEEP = function (a) { + return 'alasql.utils.cloneDeep(' + a + ')'; + }; + 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 und(s, 'y.length'); + }; + stdlib.LOWER = stdlib.LCASE = function (s) { + return und(s, 'String(y).toLowerCase()'); + }; + stdlib.LTRIM = function (s) { + return und(s, 'y.replace(/^[ ]+/,"")'); + }; + 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 + ')'); } + }; + 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()'); + }; + mem.alasql.stdlib = stdlib; + } -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, + function stdfn (mem) { + var stdfn = {}; + stdfn.CONCAT = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + return Array.prototype.slice.call(args).join(''); + }; + stdfn.REGEXP_LIKE = function (a, b, c) { + return (a || '').search(RegExp(b, c)) > -1; + }; + stdfn.CONCAT_WS = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + return args.slice(1, args.length).join(args[0]); + }; + stdfn.REPLACE = function (target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); + }; + stdfn.CHAR = String.fromCharCode.bind(String); + stdfn.ASCII = function (a) { + return a.charCodeAt(0); + }; + 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]); + }; + mem.alasql.stdfn = stdfn; + } -// 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, ""); - }, + function aggr (mem) { + var alasql = mem.alasql; + 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) { + 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]; + } + return r[Math.floor(p)]; + } + }; + alasql.aggr.QUART2 = function (v, s, stage) { + return alasql.aggr.QUART(v, s, stage, 2); + }; + alasql.aggr.QUART3 = function (v, s, stage) { + return alasql.aggr.QUART(v, s, stage, 3); + }; + 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)); + } + }; + 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); + } + return std / N; + } + }; + 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); + }; + }); + mem.alasql = alasql; + } -// 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 blobal scope - Inspired by System.global - @return {object} The global scope -*/ -utils.global = (function() { - try { - return Function('return this')(); - } catch (e) { - //If Content Security Policy - var global = self || window || global; - - if (global) { - return global; - } else { - throw new Error('Unable to locate global object'); - } - } -})(); - -/** - 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/* - if (utils.isMeteor) { - fs = Npm.require('fs'); - } else { - 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) { - throw err; - } - success(cutbom(body.toString())); - }); - } else { - //If async callthen call async - if (asy) { - fs.readFile(path, function(err, data) { - if (err) { - throw err; - } - success(cutbom(data.toString())); - }); - } else { - // Call sync version - data = fs.readFileSync(path); - 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) { - throw err; - }); - //*/ - } 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) { - 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/* - if (utils.isMeteorServer) { - fs = Npm.require('fs'); // For Meteor - } else { - 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 = 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 = null; - /* If require() shuold be supported else take from global scope */ - 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 = {}; - -/** - 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; - var res1 = queryfn(query, oldscope, function(res) { - - 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.funcid) { - 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.funcid.toUpperCase() + "']("; - - if (jn.args && jn.args.length > 0) { - if (jn.args[0]) { - s += jn.args[0].toJS('query.oldscope') + ','; - } else { - s += 'null,'; - } - if (jn.args[1]) { - s += jn.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, alias, joinstar) { - - var sp = '', - ss = []; - // 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 { - ss.push("'" + tcol.columnid + "':p['" + alias + "']['" + tcol.columnid + "']"); - } - - 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 exists, 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 { - - for (var alias in query.aliases) { - var ret = compileSelectStar(query, alias, 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 exists: ' + 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 exists: ' + 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 += ',' + 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 + - ',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'].indexOf(udbtypeid) > -1) { - if (typeof args.dbprecision != 'undefined') { - var m = +val; - var fxd = Math.pow(10, args.dbprecision); - return (m | 0) + ((m * fxd) % fxd) / fxd; - } else { - return +val; - } - } else if (['DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { - var m = +val; - var fxd = Math.pow(10, args.dbprecision); - return (m | 0) + ((m * fxd) % fxd) / fxd; - } 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 += ' 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 += ' 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 += ' \ - \ - \ - \ - \ - \ - \ - \ - 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; - } - - for (var sheetid in sheets) { - var sheet = sheets[sheetid]; - - // 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 && 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[idx]; - }); - - // 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 += ' 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 += '' - - // 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 += ''; - - // 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); - } - 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 { - 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); - 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; -})); + function addlogic (mem) { + stdlib(mem); + stdfn(mem); + aggr(mem); + } + /** + @module alasql + @version 0.5.0-modular-typescript + AlaSQL - JavaScript SQL database + © 2014-2018 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. + */ + var alasql$1 = function () { }; + var mem = { grammar: alasqlparser, alasql: alasql$1 }; + mem.alasql = logic(mem); + mem.alasql.version = '0.5.0-modular-typescript'; + mem.alasql.debug = false; + addOptions(mem); + expandGrammar(mem); + addDataStruct(mem); + addlogic(mem); + mem.alasql.newDatabase('alasql'); + var main = mem.alasql; + + return main; + +}))); diff --git a/dist/alasql.js b/dist/alasql.js old mode 100755 new mode 100644 index 319c7a8bc3..3bf2098b79 --- a/dist/alasql.js +++ b/dist/alasql.js @@ -1,19739 +1,10616 @@ -//! AlaSQL v0.4.6 | © 2014-2016 Andrey Gershun & Mathias Rangel Wulff | License: MIT -/* -@module alasql -@version 0.4.6 - -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 */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.alasql = factory()); +}(this, (function () { 'use strict'; + + var 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 + + */ + utils.n2u = function (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 + + */ + utils.und = function (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 + */ + utils.returnTrue = function () { + return true; + }; + /** + Return undefined. Stub for non-ecisting WHERE clause, because is faster then if(whenrfn) whenfn() + @function + @return {undefined} Always undefined + */ + utils.returnUndefined = function () { }; + /** + Escape string + @function + @param {string} s Source string + @return {string} Escaped string + @example + + Pit\er's => Pit\\er\'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 + */ + utils.isNativeFunction = function (fn) { + return typeof fn === 'function' && !!~fn.toString().indexOf('[native code]'); + }; + utils.isArray = function (obj) { + return '[object Array]' === Object.prototype.toString.call(obj); + }; + /** + * Extend object a with properties of b + * @function + * @param {object} a + * @param {object} b + * @return {object} + */ + utils.extend = function (a, b) { + a = a || {}; + for (var key in b) { + if (b.hasOwnProperty(key)) { + a[key] = b[key]; + } + } + return a; + }; + + // Todo: prepend .gen in the code + var global$1 = utils.global; + var isNativeFunction = utils.isNativeFunction; + // const utils : {[key: string]: any} = {}; + var utils$1 = {}; + /** + Find out if code is running in a web worker enviroment + @return {boolean} True if code is running in a web worker enviroment + */ + utils$1.isWebWorker = (function () { + try { + var importScripts = global$1.importScripts; + return 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$1.isNode = (function () { + try { + return isNativeFunction(global$1.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$1.isBrowser = (function () { + try { + return isNativeFunction(global$1.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$1.isBrowserify = (function () { + return utils$1.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$1.isRequireJS = (function () { + return (utils$1.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$1.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$1.isMeteorClient = utils$1.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$1.isMeteorServer = utils$1.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$1.isCordova = typeof cordova === 'object'; + utils$1.isReactNative = (function () { + var isReact = false; + //*not-for-browser/* + try { + if (typeof require('react-native') === 'object') { + isReact = true; + } + } + catch (e) { + } + //*/ + return isReact; + })(); + utils$1.hasIndexedDB = !!global$1.indexedDB; + /** + @function Is this IE9 + @return {boolean} True for IE9 and false for other browsers + + For IE9 compatibility issues + */ + utils$1.isIE = (function () { + /*only-for-browser/* + var myNav = navigator.userAgent.toLowerCase(); + return myNav.indexOf('msie') !== -1 ? parseInt(myNav.split('msie')[1]) : false; + //*/ + return false; + })(); + /** + Get path of alasql.js + @todo Rewrite and simplify the code. Review, is this function is required separately + */ + utils$1.findAlaSQLPath = function () { + /** type {string} Path to alasql library and plugins */ + if (utils$1.isWebWorker) { + return ''; + /** @todo Check how to get path in worker */ + } + else if (utils$1.isMeteorClient) { + return '/packages/dist/'; + } + else if (utils$1.isMeteorServer) { + return 'assets/packages/dist/'; + } + else if (utils$1.isNode) { + return __dirname; + } + else if (utils$1.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 utils$2 = {}; + /** + Cut BOM first character for UTF-8 files (for merging two files) + @param {string} s Source string + @return {string} Replaced string + */ + utils$2.cutbom = function (s) { + if (s[0] === String.fromCharCode(65279)) { + s = s.substr(1); + } + return s; + }; + // based on joliss/js-string-escape + utils$2.escapeq = function (s) { + // console.log(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'; + default: + } + }); + }; + /** + Double quotes for SQL statements + @param {string} s Source string + @return {string} Escaped string + + @example + + Piter's => Piter''s + + */ + utils$2.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 + + */ + utils$2.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 + + */ + utils$2.doubleqq = function (s) { + return s.replace(/\'/g, "'"); + }; + /** + @function Hash a string to signed integer + @param {string} source string + @return {integer} hash number + */ + // FNV-1a inspired hashing + utils$2.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; + }; + utils$2.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; + }; + /** + Modify res according modifier + @function + @param {object} query Query object + @param res {object|number|string|boolean} res Data to be converted + */ + utils$2.modify = function (alasql, query, res) { + // jshint ignore:line + // console.log(arguments); + /* 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$1 in res[i]) { + allcol[key$1] = true; + } + } + columns = Object.keys(allcol).map(function (columnid) { + return { columnid: columnid }; + }); + } + else { + // Cannot recognize columns + columns = []; + } + } + // console.log(columns); + var key; + if (modifier === 'VALUE') { + // console.log(222,res); + if (res.length > 0) { + 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 a = []; + for (var ind in res[0]) { + a.push(res[0][ind]); + } + res = a; + } + else { + res = undefined; + } + } + else if (modifier === 'COLUMN') { + var ar = []; + if (res.length > 0) { + 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$1 = {}; + var 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$1[res[i][key]] = res[i][val]; + } + res = ar$1; + // res = arrayOfArrays(res); + } + else if (modifier === 'RECORDSET') { + res = new alasql.Recordset({ columns: columns, data: res }); + // res = arrayOfArrays(res); + } + else if (modifier === 'TEXTSTRING') { + 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; + }; + + var utils$3 = {}; + /** + 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 + */ + utils$3.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; + //console.log(s,value,(value||'').search(RegExp(s))>-1); + return ('' + (value || '')).toUpperCase().search(RegExp(s.toUpperCase())) > -1; + }; + /** + 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 + */ + utils$3.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++) { + // console.log(i,str[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 (regularExpression) { + // Make sure '/'' inside character classes is not considered the end + // of the regular expression. + // if (str[i] === '[' && unescaped) { + // characterClass = true; + // } else if (str[i] === ']' && unescaped && characterClass) { + // characterClass = false; + // } else if (str[i] === '/' && unescaped && !characterClass) { + // regularExpression = 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; + // console.log('block'); + /*/* // } else if (str[i + 1] === '/') { + // str[i] = ''; + // lineComment = true; + // } else { + // We need to make sure we don't count normal divisions as + // regular expresions. Matching this properly is difficult, + // but if we assume that normal division always have a space + // after /, a simple check for white space or '='' (for /=) + // is enough to distinguish divisions from regexps. + // TODO: Develop a proper check for regexps. + // if (!/[\s=]/.test(str[i + 1])) { + // regularExpression = true; + // } + // } + */ + } + } + } + // Remove padding again. + str = str.join('').slice(2, -2); + /*/* + // Strip empty lines that contain only white space and line breaks, as they + // are left-overs from comment removal. + str = str.replace(/^[ \t]+(\r\n|\n|\r)/gm, function(all) { + return ''; + }); + // Replace a sequence of more than two line breaks with only two. + str = str.replace(/(\r\n|\n|\r)(\r\n|\n|\r)+/g, function(all, lineBreak) { + return lineBreak + lineBreak; + }); + */ + return str; + }; + + var cutbom = utils$2.cutbom; + var utils$4 = {}; + /** + 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. + */ + utils$4.loadFile = function (path, asy, success, error) { + var data, fs; + if (utils$1.isNode || utils$1.isMeteorServer) { + //*not-for-browser/* + if (utils$4.isMeteor) { + fs = Npm.require('fs'); + } + else { + 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) { + throw err; + } + success(cutbom(body.toString())); + }); + } + else { + //If async callthen call async + if (asy) { + fs.readFile(path, function (err, data) { + if (err) { + throw err; + } + success(cutbom(data.toString())); + }); + } + else { + // Call sync version + data = fs.readFileSync(path); + success(cutbom(data.toString())); + } + } + } + } + else if (utils$4.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.readFile(path, 'utf8') + .then(function (contents) { + success(cutbom(contents)); + }) + .catch(function (err) { + throw err; + }); + //*/ + } + else if (utils$4.isCordova) { + /* If Cordova */ + utils$4.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 */ + /*/* + + var paths = path.split('/'); + var filename = paths[paths.length-1]; + var dirpath = path.substr(0,path.length-filename.length); + // console.log('CORDOVA',filename,dirpath); + //return success('[{"a":"'+filename+'"}]'); + + window.resolveLocalFileSystemURL(dirpath, function(dir) { + dir.getFile(filename, null, function(file) { + file.file(function(file) { + var reader = new FileReader(); + // console.log('READ FILE 2'); + reader.onloadend = function(e) { + // console.log('READ FILE 3',this.result); + success(this.result); + }; + reader.readAsText(file); + }); + }); + }); + */ + } + 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) { + 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 -"use strict"; + @todo merge functionality from loadFile and LoadBinaryFile + */ + utils$4.loadBinaryFile = function (path, asy, success, error) { + var fs; + if (utils$4.isNode || utils$4.isMeteorServer) { + //*not-for-browser/* + if (utils$4.isMeteorServer) { + fs = Npm.require('fs'); // For Meteor + } + else { + 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$4.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) { + // console.log("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$4.removeFile = function (path, cb) { + if (utils$4.isNode) { + //*not-for-browser/* + var fs = require('fs'); + fs.remove(path, cb); + } + else if (utils$4.isCordova) { + utils$4.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile(path, { create: false }, function (fileEntry) { + fileEntry.remove(cb); + if (cb) + { cb(); } // jshint ignore:line + }, function () { + if (cb) + { cb(); } // jshint ignore:line + }); + }); + } + else if (utils$4.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function () { + if (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 + utils$4.deleteFile = function (path, cb) { + //*not-for-browser/* + if (utils$4.isNode) { + var fs = require('fs'); + fs.unlink(path, cb); + } + else if (utils$4.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.unlink(path) + .then(function () { + if (cb) + { cb(); } + }) + .catch(function (err) { + throw err; + }); + } + //*/ + }; + utils$4.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; + }; + utils$4.fileExists = function (path, cb) { + if (utils$4.isNode) { + //*not-for-browser/* + var fs = require('fs'); + fs.exists(path, cb); + } + else if (utils$4.isCordova) { + utils$4.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { + fileSystem.root.getFile(path, { create: false }, function (fileEntry) { + cb(true); + }, function () { + cb(false); + }); + }); + } + else if (utils$4.isReactNative) { + // If ReactNative + var RNFS = require('react-native-fs'); + RNFS.exists(path) + .then(function (yes) { + if (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 + */ + utils$4.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$4.isNode) { + //*not-for-browser/* + var fs = require('fs'); + data = fs.writeFileSync(path, data); + if (cb) { + res = cb(res); + } + } + else if (utils$4.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$4.isCordova) { + utils$4.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((typeof cordova == 'object') && cordova.file) { + // console.log('saveFile 1'); + // Cordova + var paths = path.split('/'); + var filename = paths[paths.length-1]; + var dirpath = path.substr(0,path.length-filename.length); + // console.log('CORDOVA',filename,dirpath); + //return success('[{"a":"'+filename+'"}]'); + + window.resolveLocalFileSystemURL(dirpath, function(dir) { + // console.log('saveFile 2'); + + dir.getFile(filename, {create:true}, function(file) { + // console.log('saveFile 3'); + + // file.file(function(file) { + // console.log('saveFile 4'); + + file.createWriter(function(fileWriter) { + + // fileWriter.seek(fileWriter.length); + + var blob = new Blob([data], {type:'text/plain'}); + fileWriter.write(blob); + fileWriter.onwriteend = function(){ + if(cb) cb(); + }; + // console.log("ok, in theory i worked"); + }); + */ + /*/* + // Corodva + function writeFinish() { + // ... your done code here... + return cb() + }; + var written = 0; + var BLOCK_SIZE = 1*1024*1024; // write 1M every time of write + function writeNext(cbFinish) { + var sz = Math.min(BLOCK_SIZE, data.length - written); + var sub = data.slice(written, written+sz); + writer.write(sub); + written += sz; + writer.onwrite = function(evt) { + if (written < data.length) + writeNext(cbFinish); + else + cbFinish(); + }; + } + writeNext(writeFinish); + } + */ + // }); + // }); + // }); + } + else { + if (utils$4.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$4.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, + }; + utils$4.extend(opt, opts); + var blob = new Blob([data], { type: 'text/plain;charset=utf-8' }); + utils$4.saveAs(blob, path, opt.disableAutoBom); + if (cb) { + res = cb(res); + } + } + } + } + return res; + }; + + var domTools = { domEmptyChildren: function (container) { + var len = container.childNodes.length; + while (len--) { + container.removeChild(container.lastChild); + } + } }; + + var utils$5 = {}; + utils$5.getXLSX = function () { + var XLSX = null; + /* If require() shuold be supported else take from global scope */ + if (utils$1.isNode || utils$1.isBrowserify || utils$1.isMeteorServer) { + //*not-for-browser/* + XLSX = require('xlsx') || null; + //*/ + } + else { + XLSX = global.XLSX || null; + } + if (null === XLSX) { + throw new Error('Please include the xlsx.js library'); + } + return XLSX; + }; + /** + Excel:convert number to Excel column, like 1 => 'A' + @param {integer} i Column number, starting with 0 + @return {string} Column name, starting with 'A' + */ + utils$5.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 + */ + utils$5.xlscn = function (s) { + var n = s.charCodeAt(0) - 65; + if (s.length > 1) { + n = (n + 1) * 26 + s.charCodeAt(1) - 65; + // console.log(n, s.charCodeAt(0)-65, s.charCodeAt(1)-65); + if (s.length > 2) { + n = (n + 1) * 26 + s.charCodeAt(2) - 65; + } + } + return n; + }; + + var utils$6 = Object.assign({}, utils, utils$1, utils$2, utils$3, utils$4, domTools, utils$3, utils$5); + + /** + Database class for Alasql.js + */ + var hash$1 = function (x) { return x; }; + function addOptions (mem) { + // Initial parameters + var alasql = mem.alasql; + /** + Jison parser + */ + //alasql.parser = alasqlparser; + /*/* This is not working :-/ * / + 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 mem.grammar.parse(utils$6.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 = {}; + /** + 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!'); + // console.log(3, databaseid, alasql.databases); + var hh; + // Create hash + if (alasql.options.cache) { + hh = hash$1(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 + 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 { + // console.log(ast.statements[0]); + alasql.precompile(ast.statements[0], alasql.useid, params); + 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 = []; + var adrunone = function (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; + /*/* + if(kind == 'value') { + return function(params,cb) { + var res = statementfn(params); + var key = Object.keys(res[0])[0]; + if(cb) cb(res[0][key]); + return res[0][key]; + }; + } else if(kind == 'single') { + return function(params,cb) { + var res = statementfn(params); + if(cb) cb(res[0]); + return res[0]; + } + } else if(kind == 'row') { + return function(params,cb) { + var res = statementfn(params,cb); + var a = []; + for(var key in res[0]) { + a.push(res[0][key]); + }; + if(cb) cb(a); + return a; + } + } else if(kind == 'column') { + return function(params,cb) { + var res = statementfn(params,cb); + var ar = []; + var key = Object.keys(res)[0]; + for(var i=0, ilen=res.length; i 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}, + } + } -/** - 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 = ''; -//*/ + 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) + } -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - Parser: { - yy: {} + 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: + this.$ = yy.casesensitive ? $$[$0] : $$[$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.$ = { funcid: $$[$0], as: 'default' }; + break; + case 217: + this.$ = { funcid: $$[$0 - 1], as: $$[$0] }; + break; + case 218: + this.$ = { funcid: $$[$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 (yy.isInAggr($$[$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: + // var expr = $$[$0]; + // if(expr.left && expr.left.op == 'AND') { + // this.$ = new yy.Op({left:new yy.Op({left:$$[$0-2], op:'NOT BETWEEN', right:expr.left}), op:'AND', right:expr.right }); + // } else { + 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 this$1 = this; + + var self = this, stack = [0], 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$1.yy) { + if (Object.prototype.hasOwnProperty.call(this$1.yy, k)) { + sharedState.yy[k] = this$1.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, 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$1.defaultActions[state]) { + action = this$1.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$1.terminals_[p] && p > TERROR) { + expected.push("'" + this$1.terminals_[p] + "'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ":\n" + lexer.showPosition() + "\nExpecting " + expected.join(', ') + ", got '" + (this$1.terminals_[symbol] || symbol) + "'"; + } + else { + errStr = 'Parse error on line ' + (yylineno + 1) + ": Unexpected " + + (symbol == EOF ? "end of input" : + ("'" + (this$1.terminals_[symbol] || symbol) + "'")); + } + this$1.parseError(errStr, { + text: lexer.match, + token: this$1.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$1.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$1.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$1.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 this$1 = this; + + 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$1[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 () { + var this$1 = this; + + 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$1._input.match(this$1.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this$1.options.backtrack_lexer) { + token = this$1.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } + else if (this$1._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$1.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) { + 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)); + } } - 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) - }, + function base (mem) { + var yy = mem.grammar.yy; + yy.extend = utils$6.extend; + // Option for case sensitive + yy.casesensitive = mem.alasql.options.casesensitive; + yy.isInAggr = function (val) { return !!mem.alasql.aggr[val]; }; + // Base class for all yy classes + yy.Base = function (params) { + return yy.extend(this, params); + }; + yy.Base.prototype.toString = function () { }; + yy.Base.prototype.toType = function () { }; + yy.Base.prototype.toJS = function () { }; + // var BaseClause = yy,BaseClause = function (params) { return yy.extend(this, params); }; + yy.Base.prototype.compile = utils$6.returnUndefined; + yy.Base.prototype.exec = function () { }; + // var BaseStatement = yy,BaseStatement = function (params) { return yy.extend(this, params); }; + yy.Base.prototype.compile = utils$6.returnUndefined; + yy.Base.prototype.exec = function () { }; + mem.grammar.yy = yy; + } - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } + /* + // + // Statements class for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function statements (mem) { + var yy = mem.grammar.yy; + // 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; + }; + } + }; + mem.grammar.yy = yy; } - 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) + // + // Join all lines over sources + // + function doJoin(alasql, query, scope, h) { + // console.log('doJoin', arguments); + // console.log(query.sources.length); + // Check, if this is a last join? + if (h >= query.sources.length) { + // Todo: check if this runs once too many + //console.log(query.wherefns); + // Then apply where and select + // console.log(query); + if (query.wherefn(scope, query.params, alasql)) { + // console.log("scope",scope.schools); + // var res = query.selectfn(scope, query.params, alasql); + // console.log("last",res); + // If there is a GROUP BY then pipe to groupping function + if (query.groupfn) { + query.groupfn(scope, query.params, alasql); + } + else { + // query.qwerty = 999; + //console.log(query.qwerty, query.queriesfn && query.queriesfn.length,2); + query.data.push(query.selectfn(scope, query.params, alasql)); + } + } + } + else if (query.sources[h].applyselect) { + // console.log('APPLY',scope); + // console.log('scope1',scope); + // console.log(scope); + var source = query.sources[h]; + source.applyselect(query.params, function (data) { + if (data.length > 0) { + // console.log('APPLY CB'); + 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); + // console.log(data); + } + 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 + { + //source.joinmode != "ANTI") { + /*/* + // if(nextsource && nextsource.joinmode == "RIGHT") { + // if(!nextsource.rightdata) { + // console.log("ok"); + // nextsource.rightdata = new Array(nextsource.data.length); + // console.log(nextsource.data.length, nextsource.rightdata); + // } + // } + */ + 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; + // console.log(source.onleftfns); + // console.log(source.ix); + // console.log(source.onleftfn(scope, query.params, alasql)); + // console.log(opt, data, data.length); + } + } + // Main cycle + var i = 0; + if (typeof data === 'undefined') { + throw new Error('Data source number ' + h + ' in undefined'); + } + var ilen = data.length; + var dataw; + // console.log(h,opt,source.data,i,source.dontcache); + while ((dataw = data[i]) || + (!opt && (source.getfn && (dataw = source.getfn(i)))) || + i < ilen) { + if (!opt && source.getfn && !source.dontcache) + { data[i] = dataw; } + //console.log(h, 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') { + // console.log(scope); + 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; + } + // 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); + } + } + j++; + } + // debugger; + } + } + scope[tableid] = undefined; + /*/* + if(h+1 < query.sources.length) { + var nextsource = query.sources[h+1]; + + if(nextsource.joinmode == "OUTER" || nextsource.joinmode == "RIGHT" + || nextsource.joinmode == "ANTI") { + + + // console.log(h,query.sources.length); + // Swap + + + // swapSources(query,h); + + // console.log(query.sources); + //debugger; + // var source = query.sources[h]; + + // var tableid = source.alias || source.tableid; + // var data = source.data; + + // Reduce data for looping if there is optimization hint + // if(source.optimization == 'ix') { + // data = source.ix[ source.onleftfn(scope, query.params, alasql) ] || []; + // } + + // Main cycle + var pass = false; + // console.log(tableid, data.length); + for(var i=0, ilen=nextsource.data.length; i= 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 + // console.log("queriesdata",data, flatArray(data)); + query.queriesdata[-idx - 1] = flatArray(data); + // console.log(98,query.queriesdata); + // console.log(79,query.queriesdata); + } + query.sourceslen--; + if (query.sourceslen > 0) + { return; } + return queryfn3(alasql, query); } -*/ -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.$ = {funcid:$$[$0], as:'default'}; -break; -case 217: - this.$ = {funcid:$$[$0-1], as: $$[$0]}; -break; -case 218: - this.$ = {funcid:$$[$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]; + function queryfn3(alasql, query) { + var scope = query.scope, jlen; + // Preindexation of data sources + // if(!oldscope) { + preIndex(query); + // } + // query.sources.forEach(function(source) { + // console.log(source.data); + // }); + // Prepare variables + query.data = []; + query.xgroups = {}; + query.groups = []; + // Level of Joins + var h = 0; + // Start walking over data + //console.log(142,'1111'); + doJoin(alasql, query, scope, h); + //console.log(144,'2222',query.modifier); + //console.log(85,query.data[0]); + // If groupping, then filter groups with HAVING function + // console.log(query.havingfns); + if (query.groupfn) { + query.data = []; + if (0 === query.groups.length) { + var g = {}; + if (query.selectGroup.length > 0) { + // console.log(query.selectGroup); + query.selectGroup.forEach(function (sg) { + if (sg.aggregatorid === 'COUNT' || sg.aggregatorid === 'SUM') { + g[sg.nick] = 0; + } + else { + g[sg.nick] = undefined; + } + }); + } + query.groups = [g]; + // console.log(); + } + // ****** + 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+'\];'; + }); + // console.log(175, gfns); + var gfn = new Function('g,params,alasql', 'var y;' + gfns); + } + // return "'"+colas+'\':alasql.aggr[\''+col.funcid+'\']('+colexp+',undefined,(acc={}),1),' + // +'\'__REDUCE__'+colas+'\':acc,'; + // ******* + // console.log('EMPTY',query.groups); + // debugger; + // if(false && (query.groups.length == 1) && (Object.keys(query.groups[0]).length == 0)) { + // console.log('EMPTY',query.groups); + // } else { + for (var i = 0, ilen = query.groups.length; i < ilen; i++) { + var g = query.groups[i]; + if (gfn) + { gfn(g, query.params, alasql); } + // console.log(query.groups[i]); + if (!query.havingfn || query.havingfn(g, query.params, alasql)) { + // console.log(g); + var d = query.selectgfn(g, query.params, alasql); + query.data.push(d); + } + } + // } + // query.groups = query.groups.filter(); } - } - - 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; + // 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 + // console.log('removeKeys:',query.removeKeys); + // 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(); } + // console.log(query.intoallfns); + /*/* + // if(query.explain) { + // if(query.cb) query.cb(query.explaination,query.A, query.B); + // return query.explaination; + // } else + */ + //console.log(190,query.intofns); + if (query.intoallfn) { + // console.log(161); + // 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); + // console.log(1163,res); + // if(query.cb) res = query.cb(res,query.A, query.B); + // console.log(1165,res); + // 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); + } + // console.log(query.intofn); + if (query.cb) + { query.cb(query.data.length, query.A, query.B); } + return query.data.length; + } + else { + // console.log(111,query.cb,query.data); + res = query.data; + if (query.cb) + { res = query.cb(query.data, query.A, query.B); } + return res; + } + } + // Limiting + function doLimit(query) { + // console.log(query.limit, query.offset) + 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 ind in uniq) { + query.data.push(uniq[ind]); + } + } + } + // Optimization: preliminary indexation of joins + var preIndex = function (query) { + // console.log(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 + //console.log('preIndex', source); + //console.log(source); + 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 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) { + // console.log('Expression',this); + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + // console.log('Select.toJS', 81, this.queriesidx); + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + var s = 'alasql.utils.flatArray(this.queriesfn[' + + (this.queriesidx - 1) + + '](this.params,null,' + + context + + '))[0]'; + // var s = '(ee=alasql.utils.flatArray(this.queriesfn['+(this.queriesidx-1)+'](this.params,null,'+context+')),console.log(999,ee),ee[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 mem.alasql.Query(); + // Array with columns to be removed + query.removeKeys = []; + query.aggrKeys = []; + query.explain = this.explain; // Explain + query.explaination = []; + query.explid = 1; + //console.log(this.modifier); + 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)'; + //console.log('999'); + } + 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 + // console.log(234234, query.intofns); + query.intofn = new Function('r,i,params,alasql', 'var y;' + query.intofns); + } + else if (query.intoallfns) { + // Create intoallfn function + // console.log(23423234, query.intoallfns); + query.intoallfn = new Function('columns,cb,params,alasql', 'var y;' + query.intoallfns); + } + } + var statement = function (params, cb, oldscope) { + query.params = params; + var res1 = queryfn(alasql, query, oldscope, function (res) { + //console.log(res[0].schoolid); + //console.log(184,res); + 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 = utils$6.modify(alasql, query, res); + if (cb) { + cb(res2); + } + //console.log(8888,res2); + return res2; + }); + //console.log(9999,res1); + // if(typeof res1 != 'undefined') res1 = modify(query,res1); + return res1; + }; + // statement.dbversion = ; + // console.log(statement.query); + //console.log(202,statement); + statement.query = query; + return statement; + }; + // yy.Select.prototype.exec = function(databaseid) { + // throw new Error('Select statement should be precompiled'); + // }; + yy.Select.prototype.execute = function (databaseid, params, cb) { + return this.compile(databaseid)(params, cb); + // throw new Error('Insert statement is should be compiled') + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } + /* + // + // Expressions for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function expression (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + /** + * 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) { + // console.log(this.expression.toJS('','', null)); + // console.log(this.expression.toJS('','', null)); + // console.log(this.expression.toJS('({})','', null)); + 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) { + // console.log('Expression',this); + 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) { + // console.log('Expression',this); + if (this.reduced) { + return utils$6.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*/) { + // console.log('Expression',this); + 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; + }; + // yy.Join.prototype.toJS = function(context, tableid) { + // return 'JOIN'+this.table.toString(); + // } + /** + 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; + // console.log(this.right); + 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) { + // console.log(this.toString()); + 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) { + // console.log(this); + var s; + var refs = []; + var op = this.op; + var _this = this; + 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)) { + 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') { + 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.right instanceof yy.Op && this.right.op == 'AND') { + + return ref('(('+this.right.left)+'<='+leftJS()+')&&'+ + ref('('+leftJS()+'<='+this.right.right)+'))'; + + } else { + throw new Error('Wrong BETWEEN operator without AND part'); + } + */ + } + 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)'; + //console.log(s); + } + else { + s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)'; + //console.log('expression',350,s); + // } 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 + // console.log(this); + 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 () { + // console.log("'"+doubleqq(this.value)+"'"); + // return "'"+doubleqq(this.value)+"'"; + return "'" + utils$6.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) { + // console.log("'"+doubleqq(this.value)+"'"); + // 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) { + // console.log("'"+doubleqq(this.value)+"'"); + // 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.Star = function (params) { return yy.extend(this, params); } + // yy.Star.prototype.toString = function() { + // var s = this.fieldid; + // if(this.tableid) { + // s = this.tableid+'.'+s; + // if(this.databaseid) { + // s = this.databaseid+'.'+s; + // } + // } + // if(this.alias) s += ' AS '+this.alias; + // return s; + // } + */ + 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 = this.value; + // var s = this.columnid; + // if(this.tableid) { + // s = this.tableid+'.'+s; + // // if(this.databaseid) { + // // s = this.databaseid+'.'+s; + // // } + // } else { + // s = tableid+'.'+s; + // } + */ + //console.log('yy.Column',this, tableid); + // console.log(392,this.columnid); + //console.log(506,this); + //console.log(523, this, tableid); + 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 + "']"; + } + // console.log(836,tbid,s); + } + else { + if (this.columnid !== '_') { + // if(defcols['.'][this.tableid]) { + // console.log(847,tableid); + // console.log(context+'[\''+tableid + '\'][\''+this.tableid + '\']','[\''+this.columnid+'\']'); + // 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.log(context,s); + // console.trace(new Error()); + //console.log(874,s); + 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(); + } + // console.log(this.over); + if (this.alias && !dontas) + { s += ' AS ' + this.alias; } + // if(this.alias) s += ' AS '+this.alias; + return s; + }; + yy.AggrValue.prototype.findAggregator = function (query) { + // console.log('aggregator found',this.toString()); + // var colas = this.as || this.toString(); + var colas = utils$6.escapeq(this.toString()) + ':' + query.selectGroup.length; + // console.log('findAgg',this); + /*/* var found = false; + for(var i=0;i -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 s = 'alasql.functions.'+this.funcid+'('; + // if(this.expression) s += this.expression.toJS(context, tableid); + // s += ')'; + // if(this.alias) s += ' AS '+this.alias; + // return s; + // var s = ''; + //if(this.as) console.log(499,this.as); + // var colas = this.as; + */ + 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; + /*/* //Duplicated code + + function() { + var s = this.expression.toString(); + if(this.order) s += ' '+this.order.toString(); + if(this.nocase) s += ' '+'COLLATE'+' '+'NOCASE'; + return s; + }*/ + yy.GroupExpression = function (params) { + return yy.extend(this, params); + }; + yy.GroupExpression.prototype.toString = function () { + return this.type + '(' + this.group.toString() + ')'; + }; + /*/* //Duplicated code + 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; + }*/ + mem.grammar.yy = yy; + mem.alasql = alasql; + } - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } + /* + // + // EXISTS and other subqueries functions functions for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function exists (mem) { + var yy = mem.grammar.yy; + 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 'ww=this.existsfn['+this.existsidx+'](params,null,p),console.log(ww),ww.length'; + 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); + // console.log(nq); + // 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); + // console.log(nq); + // if(!nq.query) nq.query = {}; + nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + return nq; + }); + }; + // + // Prepare subqueries and exists + // + // Todo: move this function away from grammar + mem.alasql.precompile = function (statement, databaseid, params) { + // console.log(statement); + if (!statement) + { return; } + statement.params = params; + if (statement.queries) { + //console.log(52,statement.queries[0]); + statement.queriesfn = statement.queries.map(function (q) { + var nq = q.compile(databaseid || statement.database.databaseid); + // console.log(nq); + // nq.query.modifier = undefined; + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + if (statement.exists) { + //console.log(62,statement.exists); + statement.existsfn = statement.exists.map(function (ex) { + var nq = ex.compile(databaseid || statement.database.databaseid); + // console.log(nq.query.modifier); + // if(!nq.query.modifier) nq.query.modifier = 'RECORDSET'; + // if(!nq.query.modifier) nq.query.modifier = 'ARRAY'; + nq.query.modifier = 'RECORDSET'; + return nq; + }); + } + }; + mem.grammar.yy = yy; + } -_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; - } + /* + // + // Select run-time part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function defcols (mem) { + var yy = mem.grammar.yy; + yy.Select.prototype.compileDefCols = function (query, databaseid) { + // console.log('defcols'); + 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; + // console.log(alasql.databases[fr.databaseid || databaseid]); + // console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); + //console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); + //console.log(alasql.databases); + var table = mem.alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; + //console.log(table); + if (undefined === table) { + throw new Error('Table does not exists: ' + 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 { + // console.log(fr); + throw new Error('Unknown type of FROM clause'); + } + }); + } + if (this.joins) { + this.joins.forEach(function (jn) { + defcols['.'][jn.as || jn.table.tableid] = true; + // console.log(jn); + if (jn.table) { + var alias = jn.table.tableid; + if (jn.as) + { alias = jn.as; } + var alias = jn.as || jn.table.tableid; + var table = mem.alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; + // console.log(jn.table.tableid, jn.table.databaseid); + 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) { + throw new Error('Select not implemented yet'); + } + else if (jn.param) { + throw new Error('param not implemented yet'); + } + else if (jn.func) { + throw new Error('func not implemented yet'); + } + else { + throw new Error('Unknown type of FROM clause'); + } + }); + } + // for(var k in defcols) { + // if(defcols[k] == '-') defcols[k] = undefined; + // } + // console.log(89,defcols); + return defcols; + }; + mem.grammar.yy = yy; + } - 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]; + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function from_ (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + yy.Select.prototype.compileFrom = function (query) { + // console.log(1); + var self = this; + query.sources = []; + // var tableid = this.from[0].tableid; + // var as = ''; + // if(self.from[0].as) as = this.from[0].as; + //console.log(this); + query.aliases = {}; + if (!self.from) + { return; } + //console.log(self.from); + self.from.forEach(function (tq) { + //console.log(tq); + //console.log(tq,tq.toJS()); + var ps = ''; + var alias = tq.as || tq.tableid; + // console.log(alias); + if (tq instanceof yy.Table) { + // console.log(tq, tq.databaseid, query); + 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: utils$6.returnTrue, + srcwherefns: '', + srcwherefn: utils$6.returnTrue, + }; + if (tq instanceof yy.Table) { + // Get columns from table + source.columns = alasql.databases[source.databaseid].tables[source.tableid].columns; + // console.log('test',alasql.options.autocommit); + // console.log(997,alasql.databases[source.databaseid].engineid); + // console.log(0,source.databaseid); + // console.log(1,alasql.databases[source.databaseid]); + // console.log(2,alasql.databases[source.databaseid].tables[source.tableid].view); + if (alasql.options.autocommit && + alasql.databases[source.databaseid].engineid && + !alasql.databases[source.databaseid].tables[source.tableid].view) { + // console.log(997,alasql.databases[source.databaseid].engineid); + // 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 { + // console.log('here'); + // console.log(420,72,alasql.databases[source.databaseid].tables[source.tableid]); + source.datafn = function (query, params, cb, idx, alasql) { + /* + // if(!query) console.log('query'); + // if(!query.database) console.log('query'); + // if(!query.database.tables) console.log('query'); + // if(!source.tableid) console.log('query'); + // if(!query.database.tables[source.tableid]) console.log(query); + // if(!query.database.tables[source.tableid].data) console.log('query'); + */ + var res = alasql.databases[source.databaseid].tables[source.tableid].data; + // console.log(500,res); + if (cb) + { res = cb(res, idx, query); } + // console.log(600,res); + 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; + // console.log(101,source.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; + }); + // console.log(515,res); + return res; + }; + } + else if (tq instanceof yy.Search) { + source.subsearch = tq; + source.columns = []; + /*/* + //.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; + // console.log(101,source.columns); + // tq.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; + }); + // console.log(515,res); + return res; + }; + } + else if (tq instanceof yy.ParamValue) { + ps = "var res = alasql.prepareFromData(params['" + tq.param + "']"; + // console.log(tq); + 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(); + // console.log(tq); + 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 + "']"; + // console.log(tq); + 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) { + // s += tq.args.map(function(arg){ + // return arg.toJS(); + // }).concat('cb,idx,query').join(','); + // } + // if(tq.args && tq.args.length>0) { + // s += tq.args.map(function(arg){ + // return arg.toJS(); + // }).concat().join(','); + // } + */ + 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'; + // console.log(s); + 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; + //console.log(query.defaultTableid); + }; + alasql.prepareFromData = function (data, array) { + //console.log(177,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]]); + } + // console.log(res); + } + 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]]); } + } + } + // console.log(res); + } + // console.log(typeof data); + return res; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - // 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]; - } + /* + // + // Select compiler part for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function compile (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + var escapeq = utils$6.escapeq; + function compileSelectStar(query, alias, joinstar) { + // console.log(query.aliases[alias]); + // console.log(query,alias); + // console.log(query.aliases[alias].tableid); + // console.log(42,631,alias); + // console.log(query.aliases); + var sp = '', ss = []; + // 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 { + ss.push("'" + tcol.columnid + "':p['" + alias + "']['" + tcol.columnid + "']"); + } + query.selectColumns[escapeq(tcol.columnid)] = true; + // console.log('ok',tcol); + 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; + }); + //console.log(999,columns); + } + else { + // console.log(60,alias,columns); + // if column not exists, then copy all + sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};'; + //console.log(777, sp); + query.dirtyColumns = true; + } + // } + //console.log(87,{s:ss.join(','),sp:sp}); + 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 = []; + //console.log(42,87,this.columns); + this.columns.forEach(function (col) { + //console.log(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 { + // console.log('aliases', query.aliases); + for (var alias in query.aliases) { + var ret = compileSelectStar(query, alias, 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; + // console.log(query.sources); + 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 !== '_') { + { + // 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) { + // console.log(1); + var tcol = xcolumns[col.columnid]; + if (undefined === tcol) { + throw new Error('Column does not exists: ' + col.columnid); + } + var coldef = { + columnid: col.as || col.columnid, + dbtypeid: tcol.dbtypeid, + dbsize: tcol.dbsize, + dbpecision: tcol.dbprecision, + dbenum: tcol.dbenum, + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + else { + var coldef = { + columnid: col.as || col.columnid, + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + query.dirtyColumns = true; + } + } + else { + var coldef = { + columnid: col.as || col.columnid, + }; + // console.log(2); + 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("'" + + utils$6.escapeq(col.as) + + "':" + + utils$6.n2u(col.expression.toJS('p', query.defaultTableid, query.defcols))); + } + else if (col.aggregatorid === 'COUNT') { + ss.push("'" + utils$6.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(), + }; + // console.log(2); + 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 { + // console.log(203,col.as,col.columnid,col.toString()); + ss.push("'" + + utils$6.escapeq(col.as || col.columnid || col.toString()) + + "':" + + utils$6.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(), + }; + // console.log(2); + query.columns.push(coldef); + query.xcolumns[coldef.columnid] = coldef; + } + }); + s += ss.join(',') + '};' + sp; + return s; + //console.log(42,753,query.xcolumns, query.selectColumns); + }; + 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); + }); + } + // console.log(285,s); + 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 = utils$6.escapeq(col.columnid); + } + else { + colas = utils$6.escapeq(col.toString(true)); + // console.log(273,colas); + } + 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); + } + // console.log("colas:",colas); + // } + } + 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) { + // console.log(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 ''; + // console.log(query); + } + 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(typeof colas == 'undefined') { + if(col instanceof yy.Column) { + colas = col.columnid; + } else { + colas = col.toString(); + for(var i=0;i 0) { + this.orderColumns.forEach(function (v, idx) { + // console.log(411,v); + var key = '$$$' + idx; + // console.log(427,v,query.groupColumns,query.xgroupColumns); + 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); + }); + } + //console.log(425,s); + // console.log('selectg:',s); + return new Function('g,params,alasql', 'var y;' + s + 'return r'); + }; + // SELECY * REMOVE [COLUMNS] col-list, LIKE '' + yy.Select.prototype.compileRemoveColumns = function (query) { + 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; + })); + //console.log(query.removeKeys,this.removecolumns); + 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; + }); + } + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; + function where (mem) { + var yy = mem.grammar.yy; + 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; + // console.log(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 + //console.log(query); + 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); + } + // console.log(source.alias, source.wherefns) + // console.log(source); + }); + }; + 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); } + } + }); + //console.log(fsrc.length); + // if(fsrc.length < query.sources.length) return; + // console.log(ast); + // console.log(s); + // console.log(fsrc.length); + if (fsrc.length == 0) { + // console.log('no optimization, can remove this part of ast'); + 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); + } + } + } + mem.grammar.yy = yy; + } - // 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; + function useDatabase (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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) { + // console.log(346235, arg.toJS()); + 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 = alasql.newDatabase(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; + }; + mem.grammar.yy = yy; + } - // 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; - } - } + function functions (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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 + // console.log(34,this.toJS('','',null)); + 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.compile = function(context, tableid, defcols){ + // console.log('Expression',this); + // if(this.reduced) return returnTrue(); + // return new Function('p','var y;return '+this.toJS(context, tableid, defcols)); + //}; + + + // yy.FuncValue.prototype.compile = function(context, tableid, defcols){ + // // console.log('Expression',this); + // if(this.reduced) return returnTrue(); + // return new Function('p','var y;return '+this.toJS(context, tableid, defcols)); + // }; + + */ + 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 += ')'; + } + //console.log('userfn:',s,this); + // if(this.alias) s += ' AS '+this.alias; + return s; + }; + /*/* + // // Functions compiler + // nodes.FunctionValue.prototype.toJS = function (context, tableid) { + // var s = ''; + // s += fns[this.name.toUpperCase()].apply(null,this.arguments.map(function(arg){ + // if(arg) return arg.toJS(context, tableid); + // else return ''; + // })); + // return s; + // }; + */ + mem.grammar.yy = yy; + } - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); + /* + // + // CREATE TABLE for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + var cloneDeep$1 = utils$6.cloneDeep; + function createtable (mem) { + var yy = mem.grammar.yy; + var alasql = mem.alasql; + 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 || []; + // console.log(this); + // 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] = alasql.newTable()); // 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, + dbprecision: col.dbprecision, + 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) { + // console.log(138,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'); + } + } + // console.log(fktable.pk); + 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); + // console.log(r, rr, addr); + // console.log(fktable.uniqs[fktable.pk.hh][addr]); + 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 }); + /*/* var uk = {}; + if(typeof table.uk == 'undefined') table.uk = []; + table.uk.push(uk); + uk.columns = [col.columnid]; + uk.onrightfns = 'r[\''+col.columnid+'\']'; + uk.onrightfn = new Function("r",'return '+uk.onrightfns); + uk.hh = hash(uk.onrightfns); + table.uniqs[uk.hh] = {}; + */ + } + 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) { + //console.log(con, con.columns); + 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') { + // console.log(con.expression.toJS('r','')); + checkfn = new Function('r', 'var y;return ' + con.expression.toJS('r', '')); + } + else if (con.type === 'UNIQUE') { + // console.log(con); + 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') { + // console.log(con); + 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]; + } + // console.log(fktable.pk); + 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); + // console.log(r, rr, addr); + // console.log(fktable.uniqs[fktable.pk.hh][addr]); + if (!fktable.uniqs[fktable.pk.hh][addr]) { + //console.log(228,table,col,fk); + 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; + // console.log(this.select.toString()); + // console.log('this.table.databaseid',this.table.databaseid); + // console.log(this.select.compile(this.table.databaseid||databaseid)); + table.select = this.select.compile(this.table.databaseid || databaseid); + } + if (db.engineid) { + // console.log(101,db.engineid); + return alasql.engines[db.engineid].createTable(this.table.databaseid || databaseid, tableid, this.ifnotexists, cb); + // console.log('createtable',res1); + // 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; } + //console.log(262,r); + //console.log(263,table.identities) + for (var columnid in table.identities) { + var ident = table.identities[columnid]; + // console.log(ident); + r[columnid] = ident.value; + // console.log(ident); + } + //console.log(270,r); + 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') { + //console.log(pk,addr,pk.onrightfn({ono:1})); + //console.log(r, pk.onrightfn(r), pk.onrightfns); + 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!!! + // console.log(); + 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]; + // console.log(ident); + ident.value += ident.step; + // console.log(ident); + } + 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) { + var this$1 = this; + + // TODO: Analyze the speed + var r = cloneDeep$1(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$1.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$1.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$1.data[i], r); + } + else if (trigger.statement) { + trigger.statement.execute(databaseid); + } + } + } + }; + // console.log(databaseid); + // console.log(db.databaseid,db.tables); + // console.log(table); + var res; + if (!alasql.options.nocount) { + res = 1; + } + if (cb) + { res = cb(res); } + return res; + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - // 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); - } + /* + // + // INSERT for Alasql.js + // Date: 03.11.2014 + // (c) 2014, Andrey Gershun + // + */ + function insert (mem) { + var yy = mem.grammar.yy; + var alasql = mem.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) { + // console.log('Expression',this); + // if(this.expression.reduced) return 'true'; + // return this.expression.toJS(context, tableid, defcols); + // console.log('Select.toJS', 81, this.queriesidx); + // var s = 'this.queriesdata['+(this.queriesidx-1)+'][0]'; + var s = 'this.queriesfn[' + (this.queriesidx - 1) + '](this.params,null,' + context + ')'; + // s = '(console.log(this.queriesfn[0]),'+s+')'; + // console.log(this,s); + return s; + }; + yy.Insert.prototype.compile = function (databaseid) { + var self = this; + databaseid = self.into.databaseid || databaseid; + var db = alasql.databases[databaseid]; + // console.log(self); + 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; + }); + } + // console.log(1); + self.values.forEach(function (values) { + var ss = []; + // s += 'db.tables[\''+tableid+'\'].data.push({'; + // s += ''; + if (self.columns) { + self.columns.forEach(function (col, idx) { + //console.log(db.tables, tableid, table); + // ss.push(col.columnid +':'+ self.values[idx].value.toString()); + // console.log(rec[f.name.value]); + // 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]; + // console.log('table1', db, self); + //console.log(111, table.columns); + //console.log(74,table); + 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(); + } + /*/* + // if(table.xcolumns && table.xcolumns[col.columnid] && + // (table.xcolumns[col.columnid].dbtypeid == "DATE" || + // table.xcolumns[col.columnid].dbtypeid == "DATETIME" + // )) { + // val = "(new Date("+val+"))"; + // } + // || table.xcolumns[col.columnid].dbtypeid == "FLOAT" + // || table.xcolumns[col.columnid].dbtypeid == "NUMBER" + // || table.xcolumns[col.columnid].dbtypeid == "MONEY" + // )) q += '+'; + // console.log(self.values[idx].toString()); + //console.log(self); + // q += val; + + // if(table.xcolumns && table.xcolumns[col.columnid] && table.xcolumns[col.columnid].dbtypeid == "INT") q += '|0'; + */ + ss.push(q); + /*/* + // console.log(fld); + // TODO: type checking and conversions + // rec[fld.fldid] = eval(self.insertExpression[idx].toJS('','')); + // console.log(rec[fld.fldid]); + // if(rec[fld.fldid] == "NULL") rec[fld.fldid] = undefined; + + // if(table.xflds[fld.fldid].dbtypeid == "INT") rec[fld.fldid] = +rec[fld.fldid]|0; + // else if(table.xflds[fld.fldid].dbtypeid == "FLOAT" || table.xflds[fld.fldid].dbtypeid == "MONEY" ) + // rec[fld.fldid] = +rec[fld.fldid]; + */ + }); + } + else { + // console.log(222,values); + // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};'; + sw = JSONtoJS(values); + } + } + //console.log(ss); + 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) ; + 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; + } + //console.log(186,s3+s); + 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 { + // console.log(224,table.defaultfns); + 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'); + } + // console.log(1,s); + // console.log(s33); + 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); + // console.log(s33); + 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) { + //console.log(databaseid); + 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') + }; + mem.grammar.yy = yy; + mem.alasql = alasql; + } - // 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.'); - } + function expandGrammar (mem) { + mem.alasql.parser = alasqlparser; + base(mem); + statements(mem); + select(mem); + expression(mem); + exists(mem); + defcols(mem); + from_(mem); + compile(mem); + where(mem); + useDatabase(mem); + functions(mem); + createtable(mem); + insert(mem); + } - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } + /** + 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(); + */ + function logic(mem) { + var yy = mem.grammar.yy; + return function (sql, params, cb, scope) { + params = params || []; + if (typeof importScripts !== 'function' && mem.alasql.webworker) { + var id = mem.alasql.lastid++; + mem.alasql.buffer[id] = cb; + mem.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 mem.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'); + /*only-for-browser/* + 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 mem.alasql.exec(sql, params, cb, scope); + }; + } - // 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); + function database (mem) { + mem.alasql.databasenum = 0; + mem.alasql.databases = {}; + var Database = function Database(databaseid, alasql) { + this.dbversion = 0; + this.counter = 0; + this.tables = {}; + this.views = {}; + this.triggers = {}; + this.indices = {}; + this.objects = {}; + this.sqlCache = {}; + this.sqlCacheSize = 0; + this.alasql = alasql; + this.databaseid = databaseid; + return this; + }; + /** + Reset SQL statements cache + */ + Database.prototype.resetSqlCache = function resetSqlCache () { + this.sqlCache = {}; // Cache for compiled SQL statements + this.sqlCacheSize = 0; + }; + // Main SQL function + /** + Run SQL statement on database + @param sql — SQL statement + @param object — params Parameters + @param cb — callback + */ + Database.prototype.exec = function exec (sql, params, cb) { + return this.alasql.dexec(this.databaseid, sql, params, cb); + }; + Database.prototype.autoval = function autoval (tablename, colname, getNext) { + return this.alasql.autoval(tablename, colname, getNext, this.databaseid); + }; + mem.alasql.newDatabase = function (dbName, useNewDatabase) { + if ( useNewDatabase === void 0 ) useNewDatabase = true; + + if (!dbName) { + dbName = 'db' + mem.alasql.databasenum++; // Unique name + } + var db = new Database(dbName, mem.alasql); + mem.alasql.databases[db.databaseid] = db; + if (useNewDatabase) { + mem.alasql.use('alasql'); + } + }; + //mem.alasql.Database = Database; + }// // Main Database class + // /** + // @class Database + // */ + // const Database = (databaseid) => { + // var self = this; + // // self = function(a){console.log('OK',a);} + // // 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++; // Unique 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); + // }; + // /*/* + // // // Compile + // // var statement = this.compile(sql); + // // // Run + // // if(statement) { + // // var data = statement(params, cb); + // // return data; + // // } + // // return; + // // }; + // // // Async version of exec + // // Database.prototype.aexec = function(sql, params) { + // // var self = this; + // // return new Promise(function(resolve, reject){ + // // alasql.dexec(this.databaseid,sql,params,resolve); + // // }); + // // }; + // */ + // // Aliases like MS SQL + // /*/* + // Database.prototype.query = Database.prototype.exec; + // Database.prototype.run = Database.prototype.exec; + // Database.prototype.queryArray = function(sql, params, cb) { + // return flatArray(this.exec(sql, params, cb)); + // } + // Database.prototype.queryArrayOfArrays = function(sql, params, cb) { + // return arrayOfArrays(this.exec(sql, params, cb)); + // } + // Database.prototype.querySingle = function(sql, params, cb) { + // return this.exec(sql, params, cb)[0]; + // } + // Database.prototype.queryValue = function(sql, params, cb) { + // var res = this.querySingle(sql, params, cb); + // return res[Object.keys(res)[0]]; + // } + // Database.prototype.value = Database.prototype.queryValue; + // Database.prototype.row = Database.prototype.querySingle; + // Database.prototype.array = Database.prototype.queryArray; + // Database.prototype.matrix = Database.prototype.queryArrayOfArrays; + // // Compile statements + // Database.prototype.compile = function(sql, kind) { + // return alasql.compile(sql, kind, databaseid); + // }; + // */ + // /*/* + // // var self = this; + // // var hh = hash(sql); + // // // Check cache with hash of SQL statement + // // var statement = this.sqlcache[hh]; + // // if(!statement) { + // // // If not fount, then compile it + // // var ast = alasql.parse(sql); + // // // Save to cache + // // statement = this.sqlcache[hh]= ast.compile(self); + // // // Memory leak prevention + // // this.sqlcachesize++; + // // if(this.sqlcachesize > alasql.MAXSQLCACHESIZE) { + // // this.resetSqlCache(); + // // } + // // }; + // // return statement; + // // } + // // SQL.js compatibility method + // //Database.prototype.prepare = Database.prototype.compile; + // // Added for compatibility with WebSQL + // */ + + /** + @class Query Main query class + */ + var Query = function Query(params) { + //this.alasql = alasql; + // console.log(12,alasql); + // Columns + this.columns = []; + this.xcolumns = {}; + this.selectGroup = []; + this.groupColumns = {}; + utils$6.extend(this, params); + return this; + }; + /** + * DataArray + * @class Recordset data object + */ + var Recordset = function Recordset(params) { + utils$6.extend(this, params); + }; + /*/* + // View = function(){ + // this.data = []; + // this.columns = []; + // this.ixcolumns = {}; + // this.ixdefs = {}; + // this.indices = {}; + // }; + + // alasql.View = View; + */ + function query (mem) { + mem.alasql.Query = Query; + mem.alasql.QueRecordsetry = Recordset; + } - 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 - } + function table (mem) { + var Table = function Table(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 = {}; + utils$6.extend(this, params); + return this; + }; + Table.prototype.indexColumns = function indexColumns () { + this.xcolumns = {}; + this.columns.forEach(function (col) { + this.xcolumns[col.columnid] = col; + }); + }; + mem.alasql.newTable = function (params) { + if ( params === void 0 ) params = []; + + return new Table(params); + }; + }/*/* + // View = function(){ + // this.data = []; + // this.columns = []; + // this.ixcolumns = {}; + // this.ixdefs = {}; + // this.indices = {}; + // }; + + // alasql.View = View; + */ + + function addDataStruct (mem) { + database(mem); + query(mem); + table(mem); + } - // 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); - } + var und = utils$6.und; + function stdlib (mem) { + var stdlib = {}; + stdlib.ABS = function (a) { + return 'Math.abs(' + a + ')'; + }; + stdlib.CLONEDEEP = function (a) { + return 'alasql.utils.cloneDeep(' + a + ')'; + }; + 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 + ')'); } + }; + // 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()'); + }; + mem.alasql.stdlib = stdlib; + } - switch (action[0]) { - case 1: // shift - //this.shiftCount++; + function stdfn (mem) { + var stdfn = {}; + stdfn.CONCAT = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Array.prototype.slice.call(args).join(''); + }; + stdfn.REGEXP_LIKE = function (a, b, c) { + // console.log(a,b,c); + return (a || '').search(RegExp(b, c)) > -1; + }; + // Concatination of strings + stdfn.CONCAT_WS = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return args.slice(1, args.length).join(args[0]); + }; + // String functions + stdfn.REPLACE = function (target, pattern, replacement) { + return (target || '').split(pattern).join(replacement); + }; + stdfn.CHAR = String.fromCharCode.bind(String); + stdfn.ASCII = function (a) { + return a.charCodeAt(0); + }; + // 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]); + }; + mem.alasql.stdfn = stdfn; + } - 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; + function aggr (mem) { + var alasql = mem.alasql; + //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){ + // if(typeof acc.arr == 'undefined') { + // acc.arr = [v]; + // acc.sum = v; + // } else { + // acc.arr.push(v); + // acc.sum += v; + // } + // var N = acc.arr.length; + // var avg = acc.sum / N; + // var std = 0; + // for(var i=0;i 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 blobal scope - Inspired by System.global - @return {object} The global scope -*/ -utils.global = (function() { - try { - return Function('return this')(); - } catch (e) { - //If Content Security Policy - var global = self || window || global; - - if (global) { - return global; - } else { - throw new Error('Unable to locate global object'); - } - } -})(); - -/** - 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/* - if (utils.isMeteor) { - fs = Npm.require('fs'); - } else { - 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) { - throw err; - } - success(cutbom(body.toString())); - }); - } else { - //If async callthen call async - if (asy) { - fs.readFile(path, function(err, data) { - if (err) { - throw err; - } - success(cutbom(data.toString())); - }); - } else { - // Call sync version - data = fs.readFileSync(path); - 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) { - throw err; - }); - //*/ - } 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) { - 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/* - if (utils.isMeteorServer) { - fs = Npm.require('fs'); // For Meteor - } else { - 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 = 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 = null; - /* If require() shuold be supported else take from global scope */ - 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 = {}; - -/** - 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; - var res1 = queryfn(query, oldscope, function(res) { - - 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.funcid) { - 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.funcid.toUpperCase() + "']("; - - if (jn.args && jn.args.length > 0) { - if (jn.args[0]) { - s += jn.args[0].toJS('query.oldscope') + ','; - } else { - s += 'null,'; - } - if (jn.args[1]) { - s += jn.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, alias, joinstar) { - - var sp = '', - ss = []; - // 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 { - ss.push("'" + tcol.columnid + "':p['" + alias + "']['" + tcol.columnid + "']"); - } - - 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 exists, 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 { - - for (var alias in query.aliases) { - var ret = compileSelectStar(query, alias, 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 exists: ' + 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 exists: ' + 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 += ',' + 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 + - ',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'].indexOf(udbtypeid) > -1) { - if (typeof args.dbprecision != 'undefined') { - var m = +val; - var fxd = Math.pow(10, args.dbprecision); - return (m | 0) + ((m * fxd) % fxd) / fxd; - } else { - return +val; - } - } else if (['DECIMAL', 'NUMERIC'].indexOf(udbtypeid) > -1) { - var m = +val; - var fxd = Math.pow(10, args.dbprecision); - return (m | 0) + ((m * fxd) % fxd) / fxd; - } 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 += ' 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 += ' 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 += ' \ - \ - \ - \ - \ - \ - \ - \ - 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; - } - - for (var sheetid in sheets) { - var sheet = sheets[sheetid]; - - // 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 && 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[idx]; - }); - - // 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 += ' 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 += '' - - // 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 += ''; - - // 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); - } - 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 { - 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); - 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"); + //! AlaSQL vPACKAGE_VERSION_NUMBER | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT + var alasql$1 = function () { }; + var mem = { grammar: alasqlparser, alasql: alasql$1 }; + mem.alasql = logic(mem); + mem.alasql.version = '0.5.0-modular-typescript'; + mem.alasql.debug = false; + addOptions(mem); + expandGrammar(mem); + addDataStruct(mem); + addlogic(mem); + /*only-for-browser/* + //!var require = function(){return null}; // as alasqlparser.js is generated, we can not "remove" referenses to + //!var __dirname = ''; + //*/ + /*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.') + } + //*/ + // Create and set default database + mem.alasql.newDatabase('alasql'); + var main = mem.alasql; -return alasql; -})); + return main; +}))); diff --git a/dist/alasql.min.js b/dist/alasql.min.js old mode 100755 new mode 100644 index 95d8f0ce7e..e865b2eebe --- a/dist/alasql.min.js +++ b/dist/alasql.min.js @@ -1,16 +1 @@ -//! AlaSQL v0.4.6 | © 2014-2016 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?s.forEach(function(s){r&&"underscore"==T.options.joinstar?a.push("'"+t+"_"+s.columnid+"':p['"+t+"']['"+s.columnid+"']"):r&&"json"==T.options.joinstar?n+="r['"+t+"']['"+s.columnid+"']=p['"+t+"']['"+s.columnid+"'];":a.push("'"+s.columnid+"':p['"+t+"']['"+s.columnid+"']"),e.selectColumns[C(s.columnid)]=!0;var i={columnid:s.columnid,dbtypeid:s.dbtypeid,dbsize:s.dbsize,dbprecision:s.dbprecision,dbenum:s.dbenum};e.columns.push(i),e.xcolumns[i.columnid]=i}):(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"+(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.6",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.$={funcid:s[o],as:"default"};break;case 217:this.$={funcid:s[o-1],as:s[o]};break;case 218:this.$={funcid: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(){try{return Function("return this")()}catch(t){var e=self||window||e;if(e)return e;throw new Error("Unable to locate global object")}}();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(){4===s.readyState&&(200===s.status?r&&r(w(s.responseText)):n&&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){if(n.rownums.length>0)for(var r=0,a=e.length;r0?(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?(t.args[0]?o+=t.args[0].toJS("query.oldscope")+",":o+="null,",t.args[1]?o+=t.args[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 u=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 c=e.sources[e.sources.length-1],l=T.databases[c.databaseid].tables[c.tableid],h=T.databases[s.databaseid].tables[s.tableid];if(!l||!h)throw new Error("In this version of Alasql NATURAL JOIN works for tables with predefined columns only");var d=l.columns.map(function(e){return e.columnid}),f=h.columns.map(function(e){return e.columnid});t.using=L(d,f).map(function(e){return{columnid:e}})}}if(t.using)c=e.sources[e.sources.length-1],s.onleftfns=t.using.map(function(e){return"p['"+(c.alias||c.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 p="",b="",E="",g=!1,m=t.on.left.toJS("p",e.defaultTableid,e.defcols),v=t.on.right.toJS("p",e.defaultTableid,e.defcols);m.indexOf("p['"+u+"']")>-1&&!(v.indexOf("p['"+u+"']")>-1)?(m.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+u+"']"})?b=m:g=!0:!(m.indexOf("p['"+u+"']")>-1)&&v.indexOf("p['"+u+"']")>-1&&(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+u+"']"})?p=m:g=!0,v.indexOf("p['"+u+"']")>-1&&!(m.indexOf("p['"+u+"']")>-1)?(v.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+u+"']"})?b=v:g=!0:!(v.indexOf("p['"+u+"']")>-1)&&m.indexOf("p['"+u+"']")>-1&&(m.match(/p\['.*?'\]/g)||[]).every(function(e){return e==="p['"+u+"']"})?p=v:g=!0,g&&(b="",p="",E=t.on.toJS("p",e.defaultTableid,e.defcols),s.optimization="no"),s.onleftfns=p,s.onrightfns=b,s.onmiddlefns=E||"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 for(var u in t.aliases){var o=f(t,u,!0);o.s&&(i=i.concat(o.s)),s+=o.sp}else{var c=a.tableid,l=a.databaseid||t.sources[0].databaseid||t.database.databaseid;if(c||(c=t.defcols[a.columnid]),c||(c=t.defaultTableid),"_"!==a.columnid){var h=r&&r.length>1&&Array.isArray(r[0])&&r[0].length>=1&&r[0][0].hasOwnProperty("sheetid");h?s='var r={};var w=p["'+c+'"];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 b=p[a.columnid];if(void 0===b)throw new Error("Column does not exists: "+a.columnid);var E={columnid:a.as||a.columnid,dbtypeid:b.dbtypeid,dbsize:b.dbsize,dbpecision:b.dbprecision,dbenum:b.dbenum};t.columns.push(E),t.xcolumns[E.columnid]=E}else{var E={columnid:a.as||a.columnid};t.columns.push(E),t.xcolumns[E.columnid]=E,t.dirtyColumns=!0}}else{var E={columnid:a.as||a.columnid};t.columns.push(E),t.xcolumns[E.columnid]=E}}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 E={columnid:a.as||a.columnid||a.toString()};t.columns.push(E),t.xcolumns[E.columnid]=E}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 E={columnid:a.as||a.columnid||a.toString()};t.columns.push(E),t.xcolumns[E.columnid]=E}}),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+=","+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+",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"].indexOf(a)>-1){if(void 0!==t.dbprecision){var o=+r,u=Math.pow(10,t.dbprecision);return(0|o)+o*u%u/u}return+r}if(["DECIMAL","NUMERIC"].indexOf(a)>-1){var o=+r,u=Math.pow(10,t.dbprecision);return(0|o)+o*u%u/u}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+=""}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+="",e+=""),e+="",r&&r.length>0&&r.forEach(function(r,a){if(!(a>i.limit)){e+=""}),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={};t&&t.sheets?s=t.sheets:s.Sheet1=t,e=T.utils.autoExtFilename(e,"xls",t);var i=T.utils.saveFile(e,function(){function e(e){var t="";for(var r in e){t+="<"+r;for(var n in e[r])t+=" ","x:"==n.substr(0,2)?t+=n:t+="ss:",t+=n+'="'+e[r][n]+'"';t+="/>"}var s=x(t);return o[s]||(o[s]={styleid:u},a+='",u++),"s"+o[s].styleid}var a="",i=" ",o={},u=62;for(var c in s){var l=s[c];void 0!==l.columns?n=l.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!==l.column&&q(e,l.column),void 0===e.width&&(l.column&&void 0!==l.column.width?e.width=l.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()),l.headers&&Array.isArray(l.headers)&&(e.title=l.headers[idx])}),i+=' \t \t\t\t',n.forEach(function(e,t){i+=''}),l.headers&&(i+='',n.forEach(function(t,r){if(i+=""}),i+=""),r&&r.length>0&&r.forEach(function(r,a){if(!(a>l.limit)){var s={};if(q(s,l.row),l.rows&&l.rows[a]&&q(s,l.rows[a]),i+="';var b=u.format;if(void 0===c)i+="";else if(void 0!==b)if("function"==typeof b)i+=b(c);else{if("string"!=typeof b)throw new Error("Unknown format type. Should be function or string");i+=c}else i+="number"==h||"date"==h?c.toString():"money"==h?(+c).toFixed(2):c;i+=""}),i+=""}}),i+="
"}return i+="",' \t\t \t\t \t\t \t\t \t\t \t\t \t\t \t\t 0 \t\t \t\t \t\t '+a+i}());return a&&(i=a(i)),i},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);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 +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.alasql=t()}(this,function(){"use strict";var e={n2u:function(e){return"(y="+e+",y===y?y:undefined)"},und:function(e,t){return"(y="+e+',typeof y=="undefined"?undefined:'+t+")"},returnTrue:function(){return!0},returnUndefined:function(){}};e.global="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:Function("return this")(),e.isNativeFunction=function(e){return"function"==typeof e&&!!~e.toString().indexOf("[native code]")},e.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},e.extend=function(e,t){for(var s in e=e||{},t)t.hasOwnProperty(s)&&(e[s]=t[s]);return e};var t=e.global,s=e.isNativeFunction,l={};l.isWebWorker=function(){try{var e=t.importScripts;return s(e)}catch(e){return!1}}(),l.isNode=function(){try{return s(t.process.reallyExit)}catch(e){return!1}}(),l.isBrowser=function(){try{return s(t.location.reload)}catch(e){return!1}}(),l.isBrowserify=l.isBrowser&&"undefined"!=typeof process&&process.browser,l.isRequireJS=l.isBrowser&&"function"==typeof require&&"function"==typeof require.specified,l.isMeteor="undefined"!=typeof Meteor&&Meteor.release,l.isMeteorClient=l.isMeteor&&Meteor.isClient,l.isMeteorServer=l.isMeteor&&Meteor.isServer,l.isCordova="object"==typeof cordova,l.isReactNative=function(){var e=!1;try{"object"==typeof require("react-native")&&(e=!0)}catch(e){}return e}(),l.hasIndexedDB=!!t.indexedDB,l.isIE=!1,l.findAlaSQLPath=function(){if(l.isWebWorker)return"";if(l.isMeteorClient)return"/packages/dist/";if(l.isMeteorServer)return"assets/packages/dist/";if(l.isNode)return __dirname;if(l.isBrowser)for(var e=document.getElementsByTagName("script"),t=0;t>",right:r[o]});break;case 391:this.$=new a.Op({left:r[o-2],op:"<<",right:r[o]});break;case 392:this.$=new a.Op({left:r[o-2],op:"&",right:r[o]});break;case 393:this.$=new a.Op({left:r[o-2],op:"|",right:r[o]});break;case 394:case 395:case 397:this.$=new a.Op({left:r[o-2],op:"->",right:r[o]});break;case 396:this.$=new a.Op({left:r[o-4],op:"->",right:r[o-1]});break;case 398:case 399:case 401:this.$=new a.Op({left:r[o-2],op:"!",right:r[o]});break;case 400:this.$=new a.Op({left:r[o-4],op:"!",right:r[o-1]});break;case 402:this.$=new a.Op({left:r[o-2],op:">",right:r[o]});break;case 403:this.$=new a.Op({left:r[o-2],op:">=",right:r[o]});break;case 404:this.$=new a.Op({left:r[o-2],op:"<",right:r[o]});break;case 405:this.$=new a.Op({left:r[o-2],op:"<=",right:r[o]});break;case 406:this.$=new a.Op({left:r[o-2],op:"=",right:r[o]});break;case 407:this.$=new a.Op({left:r[o-2],op:"==",right:r[o]});break;case 408:this.$=new a.Op({left:r[o-2],op:"===",right:r[o]});break;case 409:this.$=new a.Op({left:r[o-2],op:"!=",right:r[o]});break;case 410:this.$=new a.Op({left:r[o-2],op:"!==",right:r[o]});break;case 411:this.$=new a.Op({left:r[o-2],op:"!===",right:r[o]});break;case 412:a.queries||(a.queries=[]),this.$=new a.Op({left:r[o-5],op:r[o-4],allsome:r[o-3],right:r[o-1],queriesidx:a.queries.length}),a.queries.push(r[o-1]);break;case 413:this.$=new a.Op({left:r[o-5],op:r[o-4],allsome:r[o-3],right:r[o-1]});break;case 414:"BETWEEN1"==r[o-2].op?"AND"==r[o-2].left.op?this.$=new a.Op({left:r[o-2].left.left,op:"AND",right:new a.Op({left:r[o-2].left.right,op:"BETWEEN",right1:r[o-2].right,right2:r[o]})}):this.$=new a.Op({left:r[o-2].left,op:"BETWEEN",right1:r[o-2].right,right2:r[o]}):"NOT BETWEEN1"==r[o-2].op?"AND"==r[o-2].left.op?this.$=new a.Op({left:r[o-2].left.left,op:"AND",right:new a.Op({left:r[o-2].left.right,op:"NOT BETWEEN",right1:r[o-2].right,right2:r[o]})}):this.$=new a.Op({left:r[o-2].left,op:"NOT BETWEEN",right1:r[o-2].right,right2:r[o]}):this.$=new a.Op({left:r[o-2],op:"AND",right:r[o]});break;case 415:this.$=new a.Op({left:r[o-2],op:"OR",right:r[o]});break;case 416:this.$=new a.UniOp({op:"NOT",right:r[o]});break;case 417:this.$=new a.UniOp({op:"-",right:r[o]});break;case 418:this.$=new a.UniOp({op:"+",right:r[o]});break;case 419:this.$=new a.UniOp({op:"~",right:r[o]});break;case 420:this.$=new a.UniOp({op:"#",right:r[o]});break;case 421:this.$=new a.UniOp({right:r[o-1]});break;case 422:a.queries||(a.queries=[]),this.$=new a.Op({left:r[o-4],op:"IN",right:r[o-1],queriesidx:a.queries.length}),a.queries.push(r[o-1]);break;case 423:a.queries||(a.queries=[]),this.$=new a.Op({left:r[o-5],op:"NOT IN",right:r[o-1],queriesidx:a.queries.length}),a.queries.push(r[o-1]);break;case 424:this.$=new a.Op({left:r[o-4],op:"IN",right:r[o-1]});break;case 425:this.$=new a.Op({left:r[o-5],op:"NOT IN",right:r[o-1]});break;case 426:this.$=new a.Op({left:r[o-3],op:"IN",right:[]});break;case 427:this.$=new a.Op({left:r[o-4],op:"NOT IN",right:[]});break;case 428:case 430:this.$=new a.Op({left:r[o-2],op:"IN",right:r[o]});break;case 429:case 431:this.$=new a.Op({left:r[o-3],op:"NOT IN",right:r[o]});break;case 432:this.$=new a.Op({left:r[o-2],op:"BETWEEN1",right:r[o]});break;case 433:this.$=new a.Op({left:r[o-2],op:"NOT BETWEEN1",right:r[o]});break;case 434:this.$=new a.Op({op:"IS",left:r[o-2],right:r[o]});break;case 435:this.$=new a.Op({op:"IS",left:r[o-2],right:new a.UniOp({op:"NOT",right:new a.NullValue({value:void 0})})});break;case 436:this.$=new a.Convert({expression:r[o-2]}),a.extend(this.$,r[o]);break;case 437:case 438:this.$=r[o];break;case 439:this.$=r[o-1];break;case 446:this.$="ALL";break;case 447:this.$="SOME";break;case 448:this.$="ANY";break;case 449:this.$=new a.Update({table:r[o-4],columns:r[o-2],where:r[o]});break;case 450:this.$=new a.Update({table:r[o-2],columns:r[o]});break;case 453:this.$=new a.SetColumn({column:r[o-2],expression:r[o]});break;case 454:this.$=new a.SetColumn({variable:r[o-2],expression:r[o],method:r[o-3]});break;case 455:this.$=new a.Delete({table:r[o-2],where:r[o]});break;case 456:this.$=new a.Delete({table:r[o]});break;case 457:this.$=new a.Insert({into:r[o-2],values:r[o]});break;case 458:this.$=new a.Insert({into:r[o-1],values:r[o]});break;case 459:case 461:this.$=new a.Insert({into:r[o-2],values:r[o],orreplace:!0});break;case 460:case 462:this.$=new a.Insert({into:r[o-1],values:r[o],orreplace:!0});break;case 463:this.$=new a.Insert({into:r[o-2],default:!0});break;case 464:this.$=new a.Insert({into:r[o-5],columns:r[o-3],values:r[o]});break;case 465:this.$=new a.Insert({into:r[o-4],columns:r[o-2],values:r[o]});break;case 466:this.$=new a.Insert({into:r[o-1],select:r[o]});break;case 467:this.$=new a.Insert({into:r[o-1],select:r[o],orreplace:!0});break;case 468:this.$=new a.Insert({into:r[o-4],columns:r[o-2],select:r[o]});break;case 473:this.$=[r[o-1]];break;case 476:this.$=r[o-4],r[o-4].push(r[o-1]);break;case 477:case 478:case 480:case 488:this.$=r[o-2],r[o-2].push(r[o]);break;case 489:this.$=new a.CreateTable({table:r[o-4]}),a.extend(this.$,r[o-7]),a.extend(this.$,r[o-6]),a.extend(this.$,r[o-5]),a.extend(this.$,r[o-2]),a.extend(this.$,r[o]);break;case 490:this.$=new a.CreateTable({table:r[o]}),a.extend(this.$,r[o-3]),a.extend(this.$,r[o-2]),a.extend(this.$,r[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:r[o-2],constraints:r[o]};break;case 506:this.$={columns:r[o]};break;case 507:this.$={as:r[o]};break;case 508:case 532:this.$=[r[o]];break;case 510:case 511:case 512:case 513:case 514:r[o].constraintid=r[o-1],this.$=r[o];break;case 517:this.$={type:"CHECK",expression:r[o-1]};break;case 518:this.$={type:"PRIMARY KEY",columns:r[o-1],clustered:(r[o-3]+"").toUpperCase()};break;case 519:this.$={type:"FOREIGN KEY",columns:r[o-5],fktable:r[o-2],fkcolumns:r[o-1]};break;case 525:this.$={type:"UNIQUE",columns:r[o-1],clustered:(r[o-3]+"").toUpperCase()};break;case 534:this.$=new a.ColumnDef({columnid:r[o-2]}),a.extend(this.$,r[o-1]),a.extend(this.$,r[o]);break;case 535:this.$=new a.ColumnDef({columnid:r[o-1]}),a.extend(this.$,r[o]);break;case 536:this.$=new a.ColumnDef({columnid:r[o],dbtypeid:""});break;case 537:this.$={dbtypeid:r[o-5],dbsize:r[o-3],dbprecision:+r[o-1]};break;case 538:this.$={dbtypeid:r[o-3],dbsize:r[o-1]};break;case 539:this.$={dbtypeid:r[o]};break;case 540:this.$={dbtypeid:"ENUM",enumvalues:r[o-1]};break;case 541:this.$=r[o-1],r[o-1].dbtypeid+="["+r[o]+"]";break;case 543:case 750:this.$=+r[o];break;case 545:this.$=void 0;break;case 547:a.extend(r[o-1],r[o]),this.$=r[o-1];break;case 550:this.$={primarykey:!0};break;case 551:case 552:this.$={foreignkey:{table:r[o-1],columnid:r[o]}};break;case 553:this.$={identity:{value:r[o-3],step:r[o-1]}};break;case 554:this.$={identity:{value:1,step:1}};break;case 555:case 557:this.$={default:r[o]};break;case 556:this.$={default:r[o-1]};break;case 558:this.$={null:!0};break;case 559:this.$={notnull:!0};break;case 560:this.$={check:r[o]};break;case 561:this.$={unique:!0};break;case 562:this.$={onupdate:r[o]};break;case 563:this.$={onupdate:r[o-1]};break;case 564:this.$=new a.DropTable({tables:r[o],type:r[o-2]}),a.extend(this.$,r[o-1]);break;case 568:this.$={ifexists:!0};break;case 569:this.$=new a.AlterTable({table:r[o-3],renameto:r[o]});break;case 570:this.$=new a.AlterTable({table:r[o-3],addcolumn:r[o]});break;case 571:this.$=new a.AlterTable({table:r[o-3],modifycolumn:r[o]});break;case 572:this.$=new a.AlterTable({table:r[o-5],renamecolumn:r[o-2],to:r[o]});break;case 573:this.$=new a.AlterTable({table:r[o-3],dropcolumn:r[o]});break;case 574:this.$=new a.AlterTable({table:r[o-2],renameto:r[o]});break;case 575:this.$=new a.AttachDatabase({databaseid:r[o],engineid:r[o-2].toUpperCase()});break;case 576:this.$=new a.AttachDatabase({databaseid:r[o-3],engineid:r[o-5].toUpperCase(),args:r[o-1]});break;case 577:this.$=new a.AttachDatabase({databaseid:r[o-2],engineid:r[o-4].toUpperCase(),as:r[o]});break;case 578:this.$=new a.AttachDatabase({databaseid:r[o-5],engineid:r[o-7].toUpperCase(),as:r[o],args:r[o-3]});break;case 579:this.$=new a.DetachDatabase({databaseid:r[o]});break;case 580:this.$=new a.CreateDatabase({databaseid:r[o]}),a.extend(this.$,r[o]);break;case 581:this.$=new a.CreateDatabase({engineid:r[o-4].toUpperCase(),databaseid:r[o-1],as:r[o]}),a.extend(this.$,r[o-2]);break;case 582:this.$=new a.CreateDatabase({engineid:r[o-7].toUpperCase(),databaseid:r[o-4],args:r[o-2],as:r[o]}),a.extend(this.$,r[o-5]);break;case 583:this.$=new a.CreateDatabase({engineid:r[o-4].toUpperCase(),as:r[o],args:[r[o-1]]}),a.extend(this.$,r[o-2]);break;case 584:this.$=void 0;break;case 586:case 587:this.$=new a.UseDatabase({databaseid:r[o]});break;case 588:this.$=new a.DropDatabase({databaseid:r[o]}),a.extend(this.$,r[o-1]);break;case 589:case 590:this.$=new a.DropDatabase({databaseid:r[o],engineid:r[o-3].toUpperCase()}),a.extend(this.$,r[o-1]);break;case 591:this.$=new a.CreateIndex({indexid:r[o-5],table:r[o-3],columns:r[o-1]});break;case 592:this.$=new a.CreateIndex({indexid:r[o-5],table:r[o-3],columns:r[o-1],unique:!0});break;case 593:this.$=new a.DropIndex({indexid:r[o]});break;case 594:this.$=new a.ShowDatabases;break;case 595:this.$=new a.ShowDatabases({like:r[o]});break;case 596:this.$=new a.ShowDatabases({engineid:r[o-1].toUpperCase()});break;case 597:this.$=new a.ShowDatabases({engineid:r[o-3].toUpperCase(),like:r[o]});break;case 598:this.$=new a.ShowTables;break;case 599:this.$=new a.ShowTables({like:r[o]});break;case 600:this.$=new a.ShowTables({databaseid:r[o]});break;case 601:this.$=new a.ShowTables({like:r[o],databaseid:r[o-2]});break;case 602:this.$=new a.ShowColumns({table:r[o]});break;case 603:this.$=new a.ShowColumns({table:r[o-2],databaseid:r[o]});break;case 604:this.$=new a.ShowIndex({table:r[o]});break;case 605:this.$=new a.ShowIndex({table:r[o-2],databaseid:r[o]});break;case 606:this.$=new a.ShowCreateTable({table:r[o]});break;case 607:this.$=new a.ShowCreateTable({table:r[o-2],databaseid:r[o]});break;case 608:this.$=new a.CreateTable({table:r[o-6],view:!0,select:r[o-1],viewcolumns:r[o-4]}),a.extend(this.$,r[o-9]),a.extend(this.$,r[o-7]);break;case 609:this.$=new a.CreateTable({table:r[o-3],view:!0,select:r[o-1]}),a.extend(this.$,r[o-6]),a.extend(this.$,r[o-4]);break;case 613:this.$=new a.DropTable({tables:r[o],view:!0}),a.extend(this.$,r[o-1]);break;case 614:case 760:this.$=new a.ExpressionStatement({expression:r[o]});break;case 615:this.$=new a.Source({url:r[o].value});break;case 616:this.$=new a.Assert({value:r[o]});break;case 617:this.$=new a.Assert({value:r[o].value});break;case 618:this.$=new a.Assert({value:r[o],message:r[o-2]});break;case 620:case 631:case 633:this.$=r[o].value;break;case 621:case 629:this.$=+r[o].value;break;case 622:this.$=!!r[o].value;break;case 630:this.$=""+r[o].value;break;case 639:this.$={};break;case 642:this.$=[];break;case 643:a.extend(r[o-2],r[o]),this.$=r[o-2];break;case 645:this.$={},this.$[r[o-2].substr(1,r[o-2].length-2)]=r[o];break;case 646:case 647:this.$={},this.$[r[o-2]]=r[o];break;case 650:this.$=new a.SetVariable({variable:r[o-2].toLowerCase(),value:r[o]});break;case 651:this.$=new a.SetVariable({variable:r[o-1].toLowerCase(),value:r[o]});break;case 652:this.$=new a.SetVariable({variable:r[o-2],expression:r[o]});break;case 653:this.$=new a.SetVariable({variable:r[o-3],props:r[o-2],expression:r[o]});break;case 654:this.$=new a.SetVariable({variable:r[o-2],expression:r[o],method:r[o-3]});break;case 655:this.$=new a.SetVariable({variable:r[o-3],props:r[o-2],expression:r[o],method:r[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 a.CommitTransaction;break;case 666:this.$=new a.RollbackTransaction;break;case 667:this.$=new a.BeginTransaction;break;case 668:this.$=new a.If({expression:r[o-2],thenstat:r[o-1],elsestat:r[o]}),r[o-1].exists&&(this.$.exists=r[o-1].exists),r[o-1].queries&&(this.$.queries=r[o-1].queries);break;case 669:this.$=new a.If({expression:r[o-1],thenstat:r[o]}),r[o].exists&&(this.$.exists=r[o].exists),r[o].queries&&(this.$.queries=r[o].queries);break;case 670:this.$=r[o];break;case 671:this.$=new a.While({expression:r[o-1],loopstat:r[o]}),r[o].exists&&(this.$.exists=r[o].exists),r[o].queries&&(this.$.queries=r[o].queries);break;case 672:this.$=new a.Continue;break;case 673:this.$=new a.Break;break;case 674:this.$=new a.BeginEnd({statements:r[o-1]});break;case 675:this.$=new a.Print({exprs:r[o]});break;case 676:this.$=new a.Print({select:r[o]});break;case 677:this.$=new a.Require({paths:r[o]});break;case 678:this.$=new a.Require({plugins:r[o]});break;case 679:case 680:this.$=r[o].toUpperCase();break;case 681:this.$=new a.Echo({expr:r[o]});break;case 686:this.$=new a.Declare({declares:r[o]});break;case 689:this.$={variable:r[o-1]},a.extend(this.$,r[o]);break;case 690:this.$={variable:r[o-2]},a.extend(this.$,r[o]);break;case 691:this.$={variable:r[o-3],expression:r[o]},a.extend(this.$,r[o-2]);break;case 692:this.$={variable:r[o-4],expression:r[o]},a.extend(this.$,r[o-2]);break;case 693:this.$=new a.TruncateTable({table:r[o]});break;case 694:this.$=new a.Merge,a.extend(this.$,r[o-4]),a.extend(this.$,r[o-3]),a.extend(this.$,r[o-2]),a.extend(this.$,{matches:r[o-1]}),a.extend(this.$,r[o]);break;case 695:case 696:this.$={into:r[o]};break;case 698:this.$={on:r[o]};break;case 703:this.$={matched:!0,action:r[o]};break;case 704:this.$={matched:!0,expr:r[o-2],action:r[o]};break;case 705:this.$={delete:!0};break;case 706:this.$={update:r[o]};break;case 707:case 708:this.$={matched:!1,bytarget:!0,action:r[o]};break;case 709:case 710:this.$={matched:!1,bytarget:!0,expr:r[o-2],action:r[o]};break;case 711:this.$={matched:!1,bysource:!0,action:r[o]};break;case 712:this.$={matched:!1,bysource:!0,expr:r[o-2],action:r[o]};break;case 713:this.$={insert:!0,values:r[o]};break;case 714:this.$={insert:!0,values:r[o],columns:r[o-3]};break;case 715:this.$={insert:!0,defaultvalues:!0};break;case 716:this.$={insert:!0,defaultvalues:!0,columns:r[o-3]};break;case 718:this.$={output:{columns:r[o]}};break;case 719:this.$={output:{columns:r[o-3],intovar:r[o],method:r[o-1]}};break;case 720:this.$={output:{columns:r[o-2],intotable:r[o]}};break;case 721:this.$={output:{columns:r[o-5],intotable:r[o-3],intocolumns:r[o-1]}};break;case 722:this.$=new a.CreateVertex({class:r[o-3],sharp:r[o-2],name:r[o-1]}),a.extend(this.$,r[o]);break;case 725:this.$={sets:r[o]};break;case 726:this.$={content:r[o]};break;case 727:this.$={select:r[o]};break;case 728:this.$=new a.CreateEdge({from:r[o-3],to:r[o-1],name:r[o-5]}),a.extend(this.$,r[o]);break;case 729:this.$=new a.CreateGraph({graph:r[o]});break;case 730:this.$=new a.CreateGraph({from:r[o]});break;case 733:this.$=r[o-2],r[o-1]&&(this.$.json=new a.Json({value:r[o-1]})),r[o]&&(this.$.as=r[o]);break;case 734:this.$={source:r[o-6],target:r[o]},r[o-3]&&(this.$.json=new a.Json({value:r[o-3]})),r[o-2]&&(this.$.as=r[o-2]),a.extend(this.$,r[o-4]);break;case 735:this.$={source:r[o-5],target:r[o]},r[o-2]&&(this.$.json=new a.Json({value:r[o-3]})),r[o-1]&&(this.$.as=r[o-2]);break;case 736:this.$={source:r[o-2],target:r[o]};break;case 740:this.$={vars:r[o],method:r[o-1]};break;case 743:case 744:var p=r[o-1];this.$={prop:r[o-3],sharp:r[o-2],name:void 0===p?void 0:p.substr(1,p.length-2),class:r[o]};break;case 745:var b=r[o-1];this.$={sharp:r[o-2],name:void 0===b?void 0:b.substr(1,b.length-2),class:r[o]};break;case 746:var T=r[o-1];this.$={name:void 0===T?void 0:T.substr(1,T.length-2),class:r[o]};break;case 747:this.$={class:r[o]};break;case 753:this.$=new a.AddRule({left:r[o-2],right:r[o]});break;case 754:this.$=new a.AddRule({right:r[o]});break;case 757:this.$=new a.Term({termid:r[o]});break;case 758:this.$=new a.Term({termid:r[o-3],args:r[o-1]});break;case 761:this.$=new a.CreateTrigger({trigger:r[o-6],when:r[o-5],action:r[o-4],table:r[o-2],statement:r[o]}),r[o].exists&&(this.$.exists=r[o].exists),r[o].queries&&(this.$.queries=r[o].queries);break;case 762:this.$=new a.CreateTrigger({trigger:r[o-5],when:r[o-4],action:r[o-3],table:r[o-1],funcid:r[o]});break;case 763:this.$=new a.CreateTrigger({trigger:r[o-6],when:r[o-4],action:r[o-3],table:r[o-5],statement:r[o]}),r[o].exists&&(this.$.exists=r[o].exists),r[o].queries&&(this.$.queries=r[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 a.DropTrigger({trigger:r[o]});break;case 773:this.$=new a.Reindex({indexid:r[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:r[o-1].push(r[o]);break;case 1061:case 1063:this.$=[r[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:s,4:a,5:i,14:r,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),{1:[3]},{10:[1,105],11:106,602:H,764:Y},e(j,[2,8]),e(j,[2,9]),e(J,[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:s,4:a,5:i,15:[1,110],53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(J,[2,14]),e(J,[2,15]),e(J,[2,16]),e(J,[2,17]),e(J,[2,18]),e(J,[2,19]),e(J,[2,20]),e(J,[2,21]),e(J,[2,22]),e(J,[2,23]),e(J,[2,24]),e(J,[2,25]),e(J,[2,26]),e(J,[2,27]),e(J,[2,28]),e(J,[2,29]),e(J,[2,30]),e(J,[2,31]),e(J,[2,32]),e(J,[2,33]),e(J,[2,34]),e(J,[2,35]),e(J,[2,36]),e(J,[2,37]),e(J,[2,38]),e(J,[2,39]),e(J,[2,40]),e(J,[2,41]),e(J,[2,42]),e(J,[2,43]),e(J,[2,44]),e(J,[2,45]),e(J,[2,46]),e(J,[2,47]),e(J,[2,48]),e(J,[2,49]),e(J,[2,50]),e(J,[2,51]),e(J,[2,52]),e(J,[2,53]),e(J,[2,54]),e(J,[2,55]),e(J,[2,56]),e(J,[2,57]),e(J,[2,58]),e(J,[2,59]),e(J,[2,60]),e(J,[2,61]),e(J,[2,62]),e(J,[2,63]),e(J,[2,64]),e(J,[2,65]),e(J,[2,66]),e(J,[2,67]),{353:[1,111]},{2:s,3:112,4:a,5:i},{2:s,3:114,4:a,5:i,156:X,200:113,290:K,291:W,292:Q,293:z},e(Z,[2,501],{3:121,348:125,2:s,4:a,5:i,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:se,449:132,450:133},{183:[1,135]},{405:[1,136]},{2:s,3:138,4:a,5:i,130:[1,144],193:[1,139],353:[1,143],397:140,405:[1,137],410:[1,141],509:[1,142]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:145,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Ge,Fe,{340:204,171:[1,205],198:Ve}),e(Ge,Fe,{340:207,198:Ve}),{2:s,3:219,4:a,5:i,77:Be,132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,198:[1,210],199:213,200:215,201:214,202:217,209:209,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe,453:208},{2:s,3:221,4:a,5:i},{353:[1,222]},e(je,[2,1043],{80:223,106:224,107:[1,225]}),e(Je,[2,1047],{90:226}),{2:s,3:230,4:a,5:i,190:[1,228],193:[1,231],267:[1,227],353:[1,232],405:[1,229]},{353:[1,233]},{2:s,3:236,4:a,5:i,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:s,4:a,5:i,14:r,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,435:[1,237],436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),{435:[1,239]},{435:[1,240]},{2:s,3:242,4:a,5:i,405:[1,241]},{2:s,3:244,4:a,5:i,199:243},e(Xe,[2,311]),{113:245,132:re,296:Le},{2:s,3:114,4:a,5:i,113:251,131:ie,132:[1,248],143:oe,144:246,145:Ke,152:le,156:X,181:fe,196:250,200:255,201:254,257:252,258:253,265:We,274:247,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:257,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(J,[2,672]),e(J,[2,673]),{2:s,3:168,4:a,5:i,40:259,56:165,77:ae,79:75,89:c,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:258,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,184:99,189:E,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:266,4:a,5:i,113:263,132:re,296:Le,444:261,445:262,446:264,447:Qe},{2:s,3:267,4:a,5:i,143:ze,145:Ze,431:268},{2:s,3:168,4:a,5:i,56:165,77:ae,94:271,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{505:[1,272]},{2:s,3:100,4:a,5:i,504:274,506:273},{2:s,3:114,4:a,5:i,156:X,200:275,290:K,291:W,292:Q,293:z},{2:s,3:168,4:a,5:i,56:165,77:ae,94:276,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(et,tt,{186:280,164:[1,279],185:[1,277],187:[1,278],195:st}),e(at,[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(it,[2,1]),e(it,[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:s,4:a,5:i,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(rt,[2,1041]),e(rt,[2,1042]),e(j,[2,10]),{16:[1,559]},{2:s,3:244,4:a,5:i,199:560},{405:[1,561]},e(J,[2,760]),{77:nt},{77:[1,563]},{77:ot},{77:[1,565]},{77:[1,566]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:567,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Ge,ct,{350:568,156:ut}),{405:[1,570]},{2:s,3:571,4:a,5:i},{193:[1,572]},{2:s,3:578,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,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:re,183:[2,1141],296:Le,471:590},e(dt,[2,1135],{465:592,3:593,2:s,4:a,5:i}),{2:s,3:594,4:a,5:i},{4:[1,595]},{4:[1,596]},e(Z,[2,502]),e(J,[2,686],{74:[1,597]}),e(ft,[2,687]),{2:s,3:598,4:a,5:i},{2:s,3:244,4:a,5:i,199:599},{2:s,3:600,4:a,5:i},e(Ge,pt,{398:601,156:bt}),{405:[1,603]},{2:s,3:604,4:a,5:i},e(Ge,pt,{398:605,156:bt}),e(Ge,pt,{398:606,156:bt}),{2:s,3:607,4:a,5:i},e(Tt,[2,1129]),e(Tt,[2,1130]),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:608,114:625,327:637,2:s,4:a,5:i,53:n,72:o,89:c,99:gt,112:At,115:St,116:mt,123:Nt,124:Rt,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,146:l,154:$t,156:h,170:wt,171:Dt,179:xt,180:Mt,189:E,266:d,267:f,290:p,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(Xe,[2,288]),e(Xe,[2,289]),e(Xe,[2,290]),e(Xe,[2,291]),e(Xe,[2,292]),e(Xe,[2,293]),e(Xe,[2,294]),e(Xe,[2,295]),e(Xe,[2,296]),e(Xe,[2,297]),e(Xe,[2,298]),e(Xe,[2,299]),e(Xe,[2,300]),e(Xe,[2,301]),e(Xe,[2,302]),e(Xe,[2,303]),e(Xe,[2,304]),e(Xe,[2,305]),{2:s,3:168,4:a,5:i,26:654,27:653,36:649,40:648,56:165,77:ae,79:75,89:c,94:651,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,184:99,189:E,196:151,200:147,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:pe,266:d,267:[1,655],270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:[1,652],291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,339:g,419:190,420:Pe,424:qe},e(Xe,[2,309]),e(Xe,[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],ts,{77:nt,116:[1,657]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:658,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:659,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:661,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:662,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[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(ss,[2,357]),e(ss,[2,358]),e(ss,as),e(ss,[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:s,3:664,4:a,5:i,131:[1,665],301:663},{2:s,3:666,4:a,5:i},e(ss,[2,367]),e(ss,[2,368]),{2:s,3:667,4:a,5:i,77:is,113:669,131:ie,132:re,143:oe,152:le,181:fe,196:670,201:672,257:671,294:ve,295:ke,296:Le,302:xe,419:673,424:qe},{77:[1,674]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:675,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,304:676,307:677,308:rs,312:Ue,317:_e,419:190,420:Pe,424:qe},{77:[1,679]},{77:[1,680]},e(ns,[2,624]),{2:s,3:695,4:a,5:i,77:os,111:690,113:688,131:ie,132:re,143:oe,144:685,145:Ke,152:le,156:X,181:fe,196:687,200:693,201:692,257:689,258:691,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,300:[1,683],302:xe,419:190,420:Pe,421:681,422:684,423:686,424:qe,427:682},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:696,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:697,4:a,5:i,156:X,200:698,290:K,291:W,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:s,3:704,4:a,5:i,131:cs,132:us,425:699,426:[1,700],428:701},{2:s,3:244,4:a,5:i,199:705},{290:[1,706]},e(Ge,[2,472]),{2:s,3:244,4:a,5:i,199:707},{231:[1,709],454:708},{231:[2,695]},{2:s,3:219,4:a,5:i,77:Be,132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,199:213,200:215,201:214,202:217,209:710,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},{40:711,79:75,89:c,184:99,189:E},e(ls,[2,1091],{210:712,76:[1,713]}),e(hs,[2,185],{3:714,2:s,4:a,5:i,76:[1,715],154:[1,716]}),e(hs,[2,189],{3:717,2:s,4:a,5:i,76:[1,718]}),e(hs,[2,190],{3:719,2:s,4:a,5:i,76:[1,720]}),e(hs,[2,193]),e(hs,[2,194],{3:721,2:s,4:a,5:i,76:[1,722]}),e(hs,[2,197],{3:723,2:s,4:a,5:i,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],Es,{77:nt,116:ds}),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(J,[2,773]),{2:s,3:244,4:a,5:i,199:726},e(fs,ps,{81:727,198:bs}),e(je,[2,1044]),e(Ts,[2,1057],{108:729,190:[1,730]}),e([10,78,183,306,310,602,764],ps,{419:190,81:731,117:732,3:733,114:736,144:758,158:768,160:769,2:s,4:a,5:i,72:gs,76:As,77:Ss,112:ms,115:St,116:mt,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,198:bs,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,420:Pe,424:qe}),{353:[1,782]},{183:[1,783]},e(J,[2,594],{112:[1,784]}),{405:[1,785]},{183:[1,786]},e(J,[2,598],{112:[1,787],183:[1,788]}),{2:s,3:244,4:a,5:i,199:789},{40:790,74:[1,791],79:75,89:c,184:99,189:E},e(ca,[2,70]),{76:[1,792]},e(J,[2,667]),{11:106,306:[1,793],602:H,764:Y},e(J,[2,665]),e(J,[2,666]),{2:s,3:794,4:a,5:i},e(J,[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],Es,{116:ds}),e(J,[2,615]),e(J,[2,616]),e(J,[2,617]),e(J,as,{74:[1,796]}),{77:is,113:669,131:ie,132:re,143:oe,152:le,181:fe,196:670,201:672,257:671,294:ve,295:ke,296:Le,302:xe,419:673,424:qe},e(ua,[2,320]),e(ua,[2,321]),e(ua,[2,322]),e(ua,[2,323]),e(ua,[2,324]),e(ua,[2,325]),e(ua,[2,326]),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,114:625,327:637,12:797,2:s,4:a,5:i,53:n,72:o,89:c,99:gt,112:At,115:St,116:mt,123:Nt,124:Rt,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,146:l,154:$t,156:h,170:wt,171:Dt,179:xt,180:Mt,189:E,266:d,267:f,290:p,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(J,[2,675],{74:la}),e(J,[2,676]),e(ha,[2,354],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(J,[2,677],{74:[1,800]}),e(J,[2,678],{74:[1,801]}),e(ft,[2,683]),e(ft,[2,685]),e(ft,[2,679]),e(ft,[2,680]),{114:807,115:St,116:mt,124:[1,802],230:da,429:803,430:804,433:fa},{2:s,3:808,4:a,5:i},e(Ge,[2,656]),e(Ge,[2,657]),e(J,[2,614],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:100,4:a,5:i,504:274,506:809},e(J,[2,754],{74:pa}),e(ba,[2,756]),e(J,[2,759]),e(J,[2,681],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(Ta,tt,{186:811,195:st}),e(Ta,tt,{186:812,195:st}),e(Ta,tt,{186:813,195:st}),e(ga,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),{77:[1,819],131:ie,196:818},{2:s,3:100,4:a,5:i,504:274,506:820},e(Aa,[2,153]),e(Aa,[2,154]),e(Aa,[2,155]),e(Aa,[2,156]),e(Aa,[2,157]),e(Aa,[2,158]),e(Aa,[2,159]),e(it,[2,3]),e(it,[2,774]),e(it,[2,775]),e(it,[2,776]),e(it,[2,777]),e(it,[2,778]),e(it,[2,779]),e(it,[2,780]),e(it,[2,781]),e(it,[2,782]),e(it,[2,783]),e(it,[2,784]),e(it,[2,785]),e(it,[2,786]),e(it,[2,787]),e(it,[2,788]),e(it,[2,789]),e(it,[2,790]),e(it,[2,791]),e(it,[2,792]),e(it,[2,793]),e(it,[2,794]),e(it,[2,795]),e(it,[2,796]),e(it,[2,797]),e(it,[2,798]),e(it,[2,799]),e(it,[2,800]),e(it,[2,801]),e(it,[2,802]),e(it,[2,803]),e(it,[2,804]),e(it,[2,805]),e(it,[2,806]),e(it,[2,807]),e(it,[2,808]),e(it,[2,809]),e(it,[2,810]),e(it,[2,811]),e(it,[2,812]),e(it,[2,813]),e(it,[2,814]),e(it,[2,815]),e(it,[2,816]),e(it,[2,817]),e(it,[2,818]),e(it,[2,819]),e(it,[2,820]),e(it,[2,821]),e(it,[2,822]),e(it,[2,823]),e(it,[2,824]),e(it,[2,825]),e(it,[2,826]),e(it,[2,827]),e(it,[2,828]),e(it,[2,829]),e(it,[2,830]),e(it,[2,831]),e(it,[2,832]),e(it,[2,833]),e(it,[2,834]),e(it,[2,835]),e(it,[2,836]),e(it,[2,837]),e(it,[2,838]),e(it,[2,839]),e(it,[2,840]),e(it,[2,841]),e(it,[2,842]),e(it,[2,843]),e(it,[2,844]),e(it,[2,845]),e(it,[2,846]),e(it,[2,847]),e(it,[2,848]),e(it,[2,849]),e(it,[2,850]),e(it,[2,851]),e(it,[2,852]),e(it,[2,853]),e(it,[2,854]),e(it,[2,855]),e(it,[2,856]),e(it,[2,857]),e(it,[2,858]),e(it,[2,859]),e(it,[2,860]),e(it,[2,861]),e(it,[2,862]),e(it,[2,863]),e(it,[2,864]),e(it,[2,865]),e(it,[2,866]),e(it,[2,867]),e(it,[2,868]),e(it,[2,869]),e(it,[2,870]),e(it,[2,871]),e(it,[2,872]),e(it,[2,873]),e(it,[2,874]),e(it,[2,875]),e(it,[2,876]),e(it,[2,877]),e(it,[2,878]),e(it,[2,879]),e(it,[2,880]),e(it,[2,881]),e(it,[2,882]),e(it,[2,883]),e(it,[2,884]),e(it,[2,885]),e(it,[2,886]),e(it,[2,887]),e(it,[2,888]),e(it,[2,889]),e(it,[2,890]),e(it,[2,891]),e(it,[2,892]),e(it,[2,893]),e(it,[2,894]),e(it,[2,895]),e(it,[2,896]),e(it,[2,897]),e(it,[2,898]),e(it,[2,899]),e(it,[2,900]),e(it,[2,901]),e(it,[2,902]),e(it,[2,903]),e(it,[2,904]),e(it,[2,905]),e(it,[2,906]),e(it,[2,907]),e(it,[2,908]),e(it,[2,909]),e(it,[2,910]),e(it,[2,911]),e(it,[2,912]),e(it,[2,913]),e(it,[2,914]),e(it,[2,915]),e(it,[2,916]),e(it,[2,917]),e(it,[2,918]),e(it,[2,919]),e(it,[2,920]),e(it,[2,921]),e(it,[2,922]),e(it,[2,923]),e(it,[2,924]),e(it,[2,925]),e(it,[2,926]),e(it,[2,927]),e(it,[2,928]),e(it,[2,929]),e(it,[2,930]),e(it,[2,931]),e(it,[2,932]),e(it,[2,933]),e(it,[2,934]),e(it,[2,935]),e(it,[2,936]),e(it,[2,937]),e(it,[2,938]),e(it,[2,939]),e(it,[2,940]),e(it,[2,941]),e(it,[2,942]),e(it,[2,943]),e(it,[2,944]),e(it,[2,945]),e(it,[2,946]),e(it,[2,947]),e(it,[2,948]),e(it,[2,949]),e(it,[2,950]),e(it,[2,951]),e(it,[2,952]),e(it,[2,953]),e(it,[2,954]),e(it,[2,955]),e(it,[2,956]),e(it,[2,957]),e(it,[2,958]),e(it,[2,959]),e(it,[2,960]),e(it,[2,961]),e(it,[2,962]),e(it,[2,963]),e(it,[2,964]),e(it,[2,965]),e(it,[2,966]),e(it,[2,967]),e(it,[2,968]),e(it,[2,969]),e(it,[2,970]),e(it,[2,971]),e(it,[2,972]),e(it,[2,973]),e(it,[2,974]),e(it,[2,975]),e(it,[2,976]),e(it,[2,977]),e(it,[2,978]),e(it,[2,979]),e(it,[2,980]),e(it,[2,981]),e(it,[2,982]),e(it,[2,983]),e(it,[2,984]),e(it,[2,985]),e(it,[2,986]),e(it,[2,987]),e(it,[2,988]),e(it,[2,989]),e(it,[2,990]),e(it,[2,991]),e(it,[2,992]),e(it,[2,993]),e(it,[2,994]),e(it,[2,995]),e(it,[2,996]),e(it,[2,997]),e(it,[2,998]),e(it,[2,999]),e(it,[2,1e3]),e(it,[2,1001]),e(it,[2,1002]),e(it,[2,1003]),e(it,[2,1004]),e(it,[2,1005]),e(it,[2,1006]),e(it,[2,1007]),e(it,[2,1008]),e(it,[2,1009]),e(it,[2,1010]),e(it,[2,1011]),e(it,[2,1012]),e(it,[2,1013]),e(it,[2,1014]),e(it,[2,1015]),e(it,[2,1016]),e(it,[2,1017]),e(it,[2,1018]),e(it,[2,1019]),e(it,[2,1020]),e(it,[2,1021]),e(it,[2,1022]),e(it,[2,1023]),e(it,[2,1024]),e(it,[2,1025]),e(it,[2,1026]),e(it,[2,1027]),e(it,[2,1028]),e(it,[2,1029]),e(it,[2,1030]),e(it,[2,1031]),e(it,[2,1032]),e(it,[2,1033]),e(it,[2,1034]),e(it,[2,1035]),e(it,[2,1036]),e(it,[2,1037]),e(it,[2,1038]),e(it,[2,1039]),e(it,[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:s,4:a,5:i,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),{396:[1,825],401:[1,822],402:[1,823],403:[1,824]},{2:s,3:826,4:a,5:i},e(Ta,[2,1111],{289:827,767:829,78:[1,828],164:[1,831],185:[1,830]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:832,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:833,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:834,4:a,5:i,132:[1,835]},{2:s,3:836,4:a,5:i,132:[1,837]},{2:s,3:838,4:a,5:i,99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:839,4:a,5:i},{154:[1,840]},e(Sa,ct,{350:841,156:ut}),{230:[1,842]},{2:s,3:843,4:a,5:i},e(J,[2,729],{74:ma}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:845,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ba,[2,732]),e(Na,[2,1143],{419:190,476:846,144:847,139:Ra,141:Ra,145:Ke,420:Pe,424:qe}),{139:[1,848],141:[1,849]},e(Ca,Oa,{490:851,493:852,77:[1,850],137:ht}),e(Ia,[2,1167],{494:853,132:[1,854]}),e(ya,[2,1171],{496:855,497:856,152:Et}),e(ya,[2,747]),e(va,[2,739]),{2:s,3:857,4:a,5:i,131:[1,858]},{2:s,3:859,4:a,5:i},{2:s,3:860,4:a,5:i},e(Ge,ct,{350:861,156:ut}),e(Ge,ct,{350:862,156:ut}),e(Tt,[2,491]),e(Tt,[2,492]),{183:[1,863]},{183:[2,1142]},e(ka,[2,1137],{466:864,469:865,137:[1,866]}),e(dt,[2,1136]),e(La,$a,{510:867,95:wa,230:[1,868],514:Da,515:xa,516:Ma}),{76:[1,873]},{76:[1,874]},{145:se,450:875},{4:Ua,7:879,76:[1,877],272:876,387:878,389:_a},e(J,[2,456],{128:[1,882]}),e(J,[2,579]),{2:s,3:883,4:a,5:i},{298:[1,884]},e(Sa,pt,{398:885,156:bt}),e(J,[2,593]),{2:s,3:244,4:a,5:i,199:887,399:886},{2:s,3:244,4:a,5:i,199:887,399:888},e(J,[2,772]),e(j,[2,669],{438:889,310:[1,890]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:891,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:892,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:893,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:894,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:895,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:896,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:897,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:898,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:899,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:900,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:901,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:902,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:903,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:904,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:905,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:906,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:907,4:a,5:i,77:[1,909],131:ie,156:X,196:908,200:910,290:K,291:W,292:Q,293:z},{2:s,3:911,4:a,5:i,77:[1,913],131:ie,156:X,196:912,200:914,290:K,291:W,292:Q,293:z},e(Pa,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),e(Pa,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),e(Pa,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),e(Pa,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),e(Pa,qa,{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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:920,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:921,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Pa,[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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:923,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:924,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{164:[1,926],166:[1,928],328:925,334:[1,927]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:929,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:930,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:695,4:a,5:i,77:[1,931],111:934,145:Ga,156:X,200:935,202:933,290:K,291:W,292:Q,293:z,329:932},{99:[1,937],297:[1,938]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:939,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:940,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:941,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{4:Ua,7:879,272:942,387:878,389:_a},e(Fa,[2,88]),e(Fa,[2,89]),{78:[1,943]},{78:[1,944]},{78:[1,945]},{78:[1,946],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(Ge,Fe,{340:207,77:ot,198:Ve}),{78:[2,1107]},{78:[2,1108]},{134:ee,135:te},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:947,152:le,154:he,156:X,158:167,164:[1,949],179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:950,4:a,5:i,149:Va,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:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,332:Zt}),e(Ba,[2,417],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,180:Mt,312:_t,316:Gt}),e(Ba,[2,418],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,180:Mt,312:_t,316:Gt}),e(Ha,[2,419],{114:625,327:637,316:Gt}),e(Ha,[2,420],{114:625,327:637,316:Gt}),e(ss,[2,365]),e(ss,[2,1113]),e(ss,[2,1114]),e(ss,[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:s,3:168,4:a,5:i,56:165,77:ae,94:953,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ns,[2,620]),e(ns,[2,621]),e(ns,[2,622]),e(ns,[2,623]),e(ns,[2,625]),{40:954,79:75,89:c,184:99,189:E},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,304:955,307:677,308:rs,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{305:956,306:Ya,307:957,308:rs,310:ja},e(Ja,[2,372]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:959,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:960,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{4:Ua,7:879,272:961,387:878,389:_a},e(ns,[2,626]),{74:[1,963],300:[1,962]},e(ns,[2,642]),e(Xa,[2,649]),e(Ka,[2,627]),e(Ka,[2,628]),e(Ka,[2,629]),e(Ka,[2,630]),e(Ka,[2,631]),e(Ka,[2,632]),e(Ka,[2,633]),e(Ka,[2,634]),e(Ka,[2,635]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:964,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},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],ts,{77:nt,116:Wa}),{74:la,300:[1,966]},e(Qa,[2,314],{77:nt}),e(Xe,[2,315]),{74:[1,968],426:[1,967]},e(ns,[2,639]),e(za,[2,644]),{152:[1,969]},{152:[1,970]},{152:[1,971]},{40:976,77:[1,975],79:75,89:c,143:oe,144:979,145:Ke,149:Za,152:le,181:fe,184:99,189:E,201:980,302:xe,341:972,342:973,343:[1,974],344:ei,419:190,420:Pe,424:qe},e(Ge,Fe,{340:981,198:Ve}),{77:ti,143:oe,144:979,145:Ke,149:Za,152:le,181:fe,201:980,302:xe,341:982,342:983,344:ei,419:190,420:Pe,424:qe},{230:[1,986],455:985},{2:s,3:219,4:a,5:i,77:Be,132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,199:213,200:215,201:214,202:217,209:987,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},{231:[2,696]},{78:[1,988]},e(hs,[2,1093],{211:989,3:990,2:s,4:a,5:i}),e(ls,[2,1092]),e(hs,[2,183]),{2:s,3:991,4:a,5:i},{212:[1,992]},e(hs,[2,187]),{2:s,3:993,4:a,5:i},e(hs,[2,191]),{2:s,3:994,4:a,5:i},e(hs,[2,195]),{2:s,3:995,4:a,5:i},e(hs,[2,198]),{2:s,3:996,4:a,5:i},{2:s,3:997,4:a,5:i},{148:[1,998]},e(si,[2,172],{82:999,183:[1,1e3]}),{2:s,3:219,4:a,5:i,132:[1,1005],143:oe,145:[1,1006],152:le,156:X,181:fe,199:1001,200:1002,201:1003,202:1004,290:K,291:W,292:Q,293:z,302:xe},{2:s,3:1011,4:a,5:i,109:1007,110:1008,111:1009,112:ai},e(Ts,[2,1058]),e(ii,[2,1049],{91:1012,182:1013,183:[1,1014]}),e(Je,[2,1048],{153:1015,179:ri,180:ni,181:oi}),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(ci,[2,93]),{2:s,3:1021,4:a,5:i},e(ci,[2,95]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1022,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1023,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,112:ms,114:736,115:St,116:mt,117:1025,118:Ns,122:Rs,123:Cs,124:Os,125:1024,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{77:[1,1026]},{77:[1,1027]},{77:[1,1028]},{77:[1,1029]},e(ci,[2,104]),e(ci,[2,105]),e(ci,[2,106]),e(ci,[2,107]),e(ci,[2,108]),e(ci,[2,109]),{2:s,3:1030,4:a,5:i},{2:s,3:1031,4:a,5:i,133:[1,1032]},e(ci,[2,113]),e(ci,[2,114]),e(ci,[2,115]),e(ci,[2,116]),e(ci,[2,117]),e(ci,[2,118]),{2:s,3:1033,4:a,5:i,77:is,113:669,131:ie,132:re,143:oe,152:le,181:fe,196:670,201:672,257:671,294:ve,295:ke,296:Le,302:xe,419:673,424:qe},{145:[1,1034]},{77:[1,1035]},{145:[1,1036]},e(ci,[2,123]),{77:[1,1037]},{2:s,3:1038,4:a,5:i},{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:s,3:244,4:a,5:i,199:1054},{2:s,3:244,4:a,5:i,199:1055},{113:1056,132:re,296:Le},e(J,[2,596],{112:[1,1057]}),{2:s,3:244,4:a,5:i,199:1058},{113:1059,132:re,296:Le},{2:s,3:1060,4:a,5:i},e(J,[2,693]),e(J,[2,68]),{2:s,3:236,4:a,5:i,75:1061},{77:[1,1062]},e(J,[2,674]),e(J,[2,586]),{2:s,3:1011,4:a,5:i,111:1065,143:ui,145:li,147:1063,336:1064,337:1066},{144:1069,145:Ke,419:190,420:Pe,424:qe},e(J,[2,671]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1070,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Pa,qa,{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:s,4:a,5:i,77:ae,131:ie,132:re,137:ne,143:oe,145:ce,149:ue,152:le,154:he,156:X,179:Ee,180:de,181:fe,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,420:Pe,424:qe}),{113:1072,132:re,296:Le},{2:s,3:266,4:a,5:i,446:1073,447:Qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1075,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,230:da,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe,429:1074,433:fa},e(J,[2,651]),{114:1077,115:St,116:mt,124:[1,1076]},e(J,[2,663]),e(J,[2,664]),{2:s,3:1079,4:a,5:i,77:hi,131:Ei,432:1078},{114:807,115:St,116:mt,124:[1,1082],430:1083},e(J,[2,753],{74:pa}),{2:s,3:100,4:a,5:i,504:1084},{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,174:1085,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,174:1086,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,174:1087,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ga,[2,151]),e(ga,[2,1088],{74:di}),e(fi,[2,273]),e(fi,[2,280],{114:625,327:637,3:1090,113:1092,2:s,4:a,5:i,76:[1,1089],99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,131:[1,1091],132:re,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,296:Le,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(et,[2,1089],{197:1093,765:[1,1094]}),{131:ie,196:1095},{74:pa,78:[1,1096]},e(j,[2,11]),{148:[1,1097],190:[1,1098]},{190:[1,1099]},{190:[1,1100]},{190:[1,1101]},e(J,[2,575],{76:[1,1103],77:[1,1102]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1104,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ss,[2,346]),e(Ta,[2,1112]),e(Ta,[2,1109]),e(Ta,[2,1110]),{74:la,78:[1,1105]},{74:la,78:[1,1106]},{74:[1,1107]},{74:[1,1108]},{74:[1,1109]},{74:[1,1110]},e(ss,[2,353]),e(J,[2,580]),{298:[1,1111]},{2:s,3:1112,4:a,5:i,113:1113,132:re,296:Le},{2:s,3:244,4:a,5:i,199:1114},{230:[1,1115]},{2:s,3:578,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,431:585,474:1116,475:576,478:577,482:582,493:579,497:581},e(J,[2,730],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(ba,[2,1145],{477:1117,483:1118,76:pi}),e(Na,[2,1144]),{2:s,3:1122,4:a,5:i,132:lt,137:ht,144:1121,145:Ke,152:Et,419:190,420:Pe,424:qe,475:1120,493:579,497:581},{2:s,3:1122,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,431:585,475:1124,478:1123,482:582,493:579,497:581},{2:s,3:578,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,431:585,473:1125,474:575,475:576,478:577,482:582,493:579,497:581},e(Ia,[2,1163],{491:1126,132:[1,1127]}),e(Ca,[2,1162]),e(ya,[2,1169],{495:1128,497:1129,152:Et}),e(Ia,[2,1168]),e(ya,[2,746]),e(ya,[2,1172]),e(Ca,[2,749]),e(Ca,[2,750]),e(ya,[2,748]),e(va,[2,740]),{2:s,3:244,4:a,5:i,199:1130},{2:s,3:244,4:a,5:i,199:1131},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1132,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(bi,[2,1139],{467:1133,113:1134,132:re,296:Le}),e(ka,[2,1138]),{2:s,3:1135,4:a,5:i},{335:Ti,338:gi,339:Ai,511:1136},{2:s,3:244,4:a,5:i,199:1140},e(La,[2,765]),e(La,[2,766]),e(La,[2,767]),{129:[1,1141]},{266:[1,1142]},{266:[1,1143]},e(ft,[2,688]),e(ft,[2,689],{124:[1,1144]}),{4:Ua,7:879,272:1145,387:878,389:_a},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(Si,[2,4]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1150,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(J,[2,588]),e(Sa,[2,568]),{2:s,3:1151,4:a,5:i,113:1152,132:re,296:Le},e(J,[2,564],{74:mi}),e(ft,[2,566]),e(J,[2,613],{74:mi}),e(J,[2,668]),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:1154,2:s,4:a,5:i,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(Ni,[2,376],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,316:Gt,317:Ft,318:Vt,319:Bt}),e(Ha,[2,377],{114:625,327:637,316:Gt}),e(Ni,[2,378],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,316:Gt,317:Ft,318:Vt,319:Bt}),e(Ri,[2,379],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,314:[1,1155],316:Gt,317:Ft,318:Vt,319:Bt}),e(Ri,[2,381],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,314:[1,1156],316:Gt,317:Ft,318:Vt,319:Bt}),e(Xe,[2,383],{114:625,327:637}),e(Ba,[2,384],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,180:Mt,312:_t,316:Gt}),e(Ba,[2,385],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,180:Mt,312:_t,316:Gt}),e(Ci,[2,386],{114:625,327:637,115:St,116:mt,123:Nt,136:Ot,312:_t,316:Gt}),e(Ci,[2,387],{114:625,327:637,115:St,116:mt,123:Nt,136:Ot,312:_t,316:Gt}),e(Ci,[2,388],{114:625,327:637,115:St,116:mt,123:Nt,136:Ot,312:_t,316:Gt}),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:mt,136:Ot,312:_t,316:Gt}),e(Oi,[2,390],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,179:xt,180:Mt,312:_t,316:Gt,317:Ft}),e(Oi,[2,391],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,179:xt,180:Mt,312:_t,316:Gt,317:Ft}),e(Oi,[2,392],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,179:xt,180:Mt,312:_t,316:Gt,317:Ft}),e(Oi,[2,393],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,179:xt,180:Mt,312:_t,316:Gt,317:Ft}),e(Qa,[2,394],{77:nt}),e(Xe,[2,395]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1157,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[2,397]),e(Qa,[2,398],{77:nt}),e(Xe,[2,399]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1158,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[2,401]),e(Ii,[2,402],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,403],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,404],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,405],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,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],yi,{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,407],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,408],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,409],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,410],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(Ii,[2,411],{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),{77:[1,1159]},{77:[2,446]},{77:[2,447]},{77:[2,448]},e(vi,[2,414],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,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:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt}),{2:s,3:168,4:a,5:i,40:1160,56:165,77:ae,78:[1,1162],79:75,89:c,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1161,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,184:99,189:E,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[2,428]),e(Xe,[2,430]),e(Xe,[2,437]),e(Xe,[2,438]),{2:s,3:667,4:a,5:i,77:[1,1163]},{2:s,3:695,4:a,5:i,77:[1,1164],111:934,145:Ga,156:X,200:935,202:1166,290:K,291:W,292:Q,293:z,329:1165},e(Xe,[2,435]),e(vi,[2,432],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,332:Zt}),e(vi,[2,433],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,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:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt}),e(Xe,[2,436]),e(Xe,[2,306]),e(Xe,[2,307]),e(Xe,[2,308]),e(Xe,[2,421]),{74:la,78:[1,1167]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1168,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1169,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,ki),e(Li,[2,286]),e(Xe,[2,282]),{78:[1,1171],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1172]},{305:1173,306:Ya,307:957,308:rs,310:ja},{306:[1,1174]},e(Ja,[2,371]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1175,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,309:[1,1176],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{76:[1,1177],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{74:[1,1178]},e(ns,[2,640]),{2:s,3:695,4:a,5:i,77:os,111:690,113:688,131:ie,132:re,143:oe,144:685,145:Ke,152:le,156:X,181:fe,196:687,200:693,201:692,257:689,258:691,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,300:[1,1179],302:xe,419:190,420:Pe,422:1180,423:686,424:qe},{78:[1,1181],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:1182,4:a,5:i,149:Va},e(Xe,[2,364]),e(ns,[2,637]),{2:s,3:704,4:a,5:i,131:cs,132:us,426:[1,1183],428:1184},{2:s,3:695,4:a,5:i,77:os,111:690,113:688,131:ie,132:re,143:oe,144:685,145:Ke,152:le,156:X,181:fe,196:687,200:693,201:692,257:689,258:691,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe,419:190,420:Pe,422:1185,423:686,424:qe},{2:s,3:695,4:a,5:i,77:os,111:690,113:688,131:ie,132:re,143:oe,144:685,145:Ke,152:le,156:X,181:fe,196:687,200:693,201:692,257:689,258:691,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe,419:190,420:Pe,422:1186,423:686,424:qe},{2:s,3:695,4:a,5:i,77:os,111:690,113:688,131:ie,132:re,143:oe,144:685,145:Ke,152:le,156:X,181:fe,196:687,200:693,201:692,257:689,258:691,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe,419:190,420:Pe,422:1187,423:686,424:qe},{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1188,419:190,420:Pe,424:qe},e($i,[2,458],{74:wi}),{149:Za,341:1190,344:ei},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1194,100:1191,111:1193,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,345:1192,419:190,420:Pe,424:qe},e($i,[2,466]),e(Di,[2,469]),e(Di,[2,470]),e(xi,[2,474]),e(xi,[2,475]),{2:s,3:244,4:a,5:i,199:1195},{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1196,419:190,420:Pe,424:qe},e($i,[2,462],{74:wi}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1194,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,345:1192,419:190,420:Pe,424:qe},{308:Mi,456:1197,458:1198,459:1199},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1201,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{230:[2,697]},e(hs,[2,181],{3:1202,2:s,4:a,5:i,76:[1,1203]}),e(hs,[2,182]),e(hs,[2,1094]),e(hs,[2,184]),e(hs,[2,186]),e(hs,[2,188]),e(hs,[2,192]),e(hs,[2,196]),e(hs,[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:s,3:1204,4:a,5:i},e(Ui,[2,1045],{83:1205,92:1206,93:[1,1207],98:[1,1208]}),{2:s,3:219,4:a,5:i,77:[1,1210],132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,199:213,200:215,201:214,202:217,203:1209,209:1211,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},e(fs,[2,164]),e(fs,[2,165]),e(fs,[2,166]),e(fs,[2,167]),e(fs,[2,168]),{2:s,3:667,4:a,5:i},e(je,[2,83],{74:[1,1212]}),e(_i,[2,85]),e(_i,[2,86]),{113:1213,132:re,296:Le},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],ts,{116:Wa}),e(ii,[2,73]),e(ii,[2,1050]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1214,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ci,[2,126]),e(ci,[2,144]),e(ci,[2,145]),e(ci,[2,146]),{2:s,3:168,4:a,5:i,56:165,77:ae,78:[2,1065],94:260,111:149,113:153,127:1215,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1216,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{77:[1,1217]},e(ci,[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:gt,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),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:gt,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1218],112:ms,114:736,115:St,116:mt,117:1219,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},e(Pi,[2,1061],{153:1015,179:ri,180:ni,181:oi}),{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,112:ms,114:736,115:St,116:mt,117:1221,118:Ns,122:Rs,123:Cs,124:Os,126:1220,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1222,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1223,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1224,4:a,5:i},e(ci,[2,110]),e(ci,[2,111]),e(ci,[2,112]),e(ci,[2,119]),{2:s,3:1225,4:a,5:i},{2:s,3:1011,4:a,5:i,111:1065,143:ui,145:li,147:1226,336:1064,337:1066},{2:s,3:1227,4:a,5:i},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1228,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ci,[2,125]),e(Pi,[2,1067],{155:1229}),e(Pi,[2,1069],{157:1230}),e(Pi,[2,1071],{159:1231}),e(Pi,[2,1075],{161:1232}),e(qi,Gi,{163:1233,178:1234}),{77:[1,1235]},e(Pi,[2,1077],{165:1236}),e(Pi,[2,1079],{167:1237}),e(qi,Gi,{178:1234,163:1238}),e(qi,Gi,{178:1234,163:1239}),e(qi,Gi,{178:1234,163:1240}),e(qi,Gi,{178:1234,163:1241}),{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,112:ms,114:736,115:St,116:mt,117:1242,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,174:1243,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Fi,[2,1081],{176:1244}),e(J,[2,606],{183:[1,1245]}),e(J,[2,602],{183:[1,1246]}),e(J,[2,595]),{113:1247,132:re,296:Le},e(J,[2,604],{183:[1,1248]}),e(J,[2,599]),e(J,[2,600],{112:[1,1249]}),e(ca,[2,69]),{40:1250,79:75,89:c,184:99,189:E},e(J,[2,450],{74:Vi,128:[1,1251]}),e(Bi,[2,451]),{124:[1,1253]},{2:s,3:1254,4:a,5:i},e(Ge,[2,1115]),e(Ge,[2,1116]),e(J,[2,618]),e(ha,[2,355],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(Ii,yi,{114:625,327:637,112:At,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,332:Zt}),e(ft,[2,682]),e(ft,[2,684]),e(J,[2,650]),e(J,[2,652],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1255,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1079,4:a,5:i,77:hi,131:Ei,432:1256},e(Hi,[2,659]),e(Hi,[2,660]),e(Hi,[2,661]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1257,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1258,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{114:1077,115:St,116:mt,124:[1,1259]},e(ba,[2,755]),e(ga,[2,148],{74:di}),e(ga,[2,149],{74:di}),e(ga,[2,150],{74:di}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1261,4:a,5:i,113:1263,131:[1,1262],132:re,296:Le},e(fi,[2,275]),e(fi,[2,277]),e(fi,[2,279]),e(et,[2,160]),e(et,[2,1090]),{78:[1,1264]},e(at,[2,758]),{2:s,3:1265,4:a,5:i},{2:s,3:1266,4:a,5:i},{2:s,3:1268,4:a,5:i,384:1267},{2:s,3:1268,4:a,5:i,384:1269},{2:s,3:1270,4:a,5:i},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1271,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1272,4:a,5:i},{74:la,78:[1,1273]},e(ss,[2,347]),e(ss,[2,348]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1274,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1275,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1276,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1277,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Sa,[2,504]),e(J,Yi,{407:1278,76:ji,77:[1,1279]}),e(J,Yi,{407:1281,76:ji}),{77:[1,1282]},{2:s,3:244,4:a,5:i,199:1283},e(ba,[2,731]),e(ba,[2,733]),e(ba,[2,1146]),{143:ze,145:Ze,431:1284},e(Ji,[2,1147],{419:190,479:1285,144:1286,145:Ke,420:Pe,424:qe}),{76:pi,139:[2,1151],481:1287,483:1288},e([10,74,76,78,132,139,145,152,306,310,420,424,602,764],Oa,{490:851,493:852,137:ht}),e(ba,[2,736]),e(ba,Ra),{74:ma,78:[1,1289]},e(ya,[2,1165],{492:1290,497:1291,152:Et}),e(Ia,[2,1164]),e(ya,[2,745]),e(ya,[2,1170]),e(J,[2,490],{77:[1,1292]}),{76:[1,1294],77:[1,1293]},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,148:[1,1295],154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e($i,Xi,{79:75,184:99,468:1296,40:1299,89:c,146:Ki,189:E,470:Wi}),e(bi,[2,1140]),e(ka,[2,723]),{230:[1,1300]},e(Qi,[2,769]),e(Qi,[2,770]),e(Qi,[2,771]),e(La,$a,{510:1301,95:wa,514:Da,515:xa,516:Ma}),e(La,[2,768]),e(J,[2,312]),e(J,[2,313]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1302,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ft,[2,690],{124:[1,1303]}),e(Si,[2,541]),{131:[1,1305],388:1304,390:[1,1306]},e(Si,[2,5]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1194,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,345:1307,419:190,420:Pe,424:qe},e(J,[2,455],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(J,[2,589]),e(J,[2,590]),{2:s,3:244,4:a,5:i,199:1308},e(J,[2,670]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1309,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1310,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{78:[1,1311],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1312],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:168,4:a,5:i,40:1313,56:165,77:ae,79:75,89:c,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1314,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,184:99,189:E,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{78:[1,1315]},{74:la,78:[1,1316]},e(Xe,[2,426]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1317,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,40:1318,56:165,77:ae,78:[1,1320],79:75,89:c,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1319,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,184:99,189:E,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[2,429]),e(Xe,[2,431]),e(Xe,zi,{275:1321,276:Zi}),{78:[1,1323],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1324],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:1325,4:a,5:i,180:[1,1326]},e(ns,[2,619]),e(Xe,[2,363]),{306:[1,1327]},e(Xe,[2,370]),{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,306:[2,374],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1328,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{4:Ua,7:879,272:1329,387:878,389:_a},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1330,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ns,[2,641]),e(Xa,[2,648]),e(Ka,[2,636]),e(Li,ki),e(ns,[2,638]),e(za,[2,643]),e(za,[2,645]),e(za,[2,646]),e(za,[2,647]),e($i,[2,457],{74:wi}),{77:[1,1332],143:oe,144:1333,145:Ke,152:le,181:fe,201:1334,302:xe,419:190,420:Pe,424:qe},e($i,[2,463]),{74:er,78:[1,1335]},{74:tr,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],sr),e(ar,[2,479],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{40:1341,77:ti,79:75,89:c,143:oe,144:979,145:Ke,149:Za,152:le,181:fe,184:99,189:E,201:980,302:xe,341:1339,342:1340,344:ei,419:190,420:Pe,424:qe},e($i,[2,461],{74:wi}),e(J,[2,717],{457:1342,458:1343,459:1344,308:Mi,464:[1,1345]}),e(ir,[2,701]),e(ir,[2,702]),{154:[1,1347],460:[1,1346]},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,308:[2,698],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(hs,[2,179]),{2:s,3:1348,4:a,5:i},e(J,[2,574]),e(rr,[2,238],{84:1349,128:[1,1350]}),e(Ui,[2,1046]),{77:[1,1351]},{77:[1,1352]},e(si,[2,169],{204:1353,215:1355,205:1356,216:1357,221:1360,74:nr,206:or,208:cr,222:ur,223:lr,224:hr,225:Er,226:dr,227:fr,228:pr,229:br}),{2:s,3:219,4:a,5:i,40:711,77:Be,79:75,89:c,132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,184:99,189:E,199:213,200:215,201:214,202:217,203:1369,209:1211,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},e(Tr,[2,177]),{2:s,3:1011,4:a,5:i,110:1370,111:1009,112:ai},e(_i,[2,87]),e(ii,[2,147],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{78:[1,1371]},{74:la,78:[2,1066]},{2:s,3:168,4:a,5:i,56:165,77:ae,78:[2,1059],94:1376,111:149,113:153,120:1372,121:1373,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ci,[2,98]),e(Pi,[2,1062],{153:1015,179:ri,180:ni,181:oi}),{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1377],112:ms,114:736,115:St,116:mt,117:1378,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},e(Pi,[2,1063],{153:1015,179:ri,180:ni,181:oi}),{78:[1,1379],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1380],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1381]},e(ci,[2,120]),{74:Vi,78:[1,1382]},e(ci,[2,122]),{74:la,78:[1,1383]},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1384],112:ms,114:736,115:St,116:mt,117:1385,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1386],112:ms,114:736,115:St,116:mt,117:1387,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1388],112:ms,114:736,115:St,116:mt,117:1389,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1390],112:ms,114:736,115:St,116:mt,117:1391,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{74:gr,78:[1,1392]},e(ar,[2,143],{419:190,3:733,114:736,144:758,158:768,160:769,117:1394,2:s,4:a,5:i,72:gs,76:As,77:Ss,112:ms,115:St,116:mt,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,420:Pe,424:qe}),e(qi,Gi,{178:1234,163:1395}),{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1396],112:ms,114:736,115:St,116:mt,117:1397,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:733,4:a,5:i,72:gs,76:As,77:Ss,78:[1,1398],112:ms,114:736,115:St,116:mt,117:1399,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{74:gr,78:[1,1400]},{74:gr,78:[1,1401]},{74:gr,78:[1,1402]},{74:gr,78:[1,1403]},{78:[1,1404],153:1015,179:ri,180:ni,181:oi},{74:di,78:[1,1405]},{2:s,3:733,4:a,5:i,72:gs,74:[1,1406],76:As,77:Ss,112:ms,114:736,115:St,116:mt,117:1407,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,144:758,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,158:768,160:769,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,419:190,420:Pe,424:qe},{2:s,3:1408,4:a,5:i},{2:s,3:1409,4:a,5:i},e(J,[2,597]),{2:s,3:1410,4:a,5:i},{113:1411,132:re,296:Le},{78:[1,1412]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1413,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1011,4:a,5:i,111:1065,143:ui,145:li,336:1414,337:1066},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1415,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{124:[1,1416]},e(J,[2,653],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(Hi,[2,658]),{78:[1,1417],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(J,[2,654],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1418,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(fi,[2,272]),e(fi,[2,274]),e(fi,[2,276]),e(fi,[2,278]),e(et,[2,161]),e(J,[2,569]),{148:[1,1419]},e(J,[2,570]),e(ba,[2,536],{387:878,7:879,272:1420,4:Ua,386:[1,1421],389:_a}),e(J,[2,571]),e(J,[2,573]),{74:la,78:[1,1422]},e(J,[2,577]),e(ss,[2,345]),{74:[1,1423],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{74:[1,1424],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{74:[1,1425],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{74:[1,1426],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(J,[2,581]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1427,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1428,4:a,5:i},e(J,[2,583]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1376,111:149,113:153,120:1429,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{77:[1,1430]},{2:s,3:1431,4:a,5:i},{76:pi,139:[2,1149],480:1432,483:1433},e(Ji,[2,1148]),{139:[1,1434]},{139:[2,1152]},e(ba,[2,737]),e(ya,[2,744]),e(ya,[2,1166]),{2:s,3:1268,4:a,5:i,76:[1,1437],351:1435,358:1436,384:1438},{2:s,3:1011,4:a,5:i,100:1439,111:1440},{40:1441,79:75,89:c,184:99,189:E},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1442,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e($i,[2,722]),{2:s,3:1011,4:a,5:i,111:1065,143:ui,145:li,147:1443,336:1064,337:1066},{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1444,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e($i,[2,727]),{2:s,3:244,4:a,5:i,199:1445},{335:Ti,338:gi,339:Ai,511:1446},e(ft,[2,691],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1447,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{74:[1,1448],78:[1,1449]},e(ar,[2,543]),e(ar,[2,544]),{74:tr,78:[1,1450]},e(ft,[2,565]),e(Ni,[2,380],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,316:Gt,317:Ft,318:Vt,319:Bt}),e(Ni,[2,382],{114:625,327:637,115:St,116:mt,123:Nt,133:Ct,136:Ot,138:It,141:kt,142:Lt,179:xt,180:Mt,312:_t,316:Gt,317:Ft,318:Vt,319:Bt}),e(Xe,[2,396]),e(Xe,[2,400]),{78:[1,1451]},{74:la,78:[1,1452]},e(Xe,[2,422]),e(Xe,[2,424]),{78:[1,1453],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1454]},{74:la,78:[1,1455]},e(Xe,[2,427]),e(Xe,[2,327]),{77:[1,1456]},e(Xe,zi,{275:1457,276:Zi}),e(Xe,zi,{275:1458,276:Zi}),e(Li,[2,284]),e(Xe,[2,281]),e(Xe,[2,369]),e(Ja,[2,373],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{74:[1,1460],78:[1,1459]},{74:[1,1462],78:[1,1461],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{2:s,3:1325,4:a,5:i},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1194,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,345:1463,419:190,420:Pe,424:qe},e(xi,[2,477]),e(xi,[2,478]),{40:1466,77:ti,79:75,89:c,143:oe,144:979,145:Ke,149:Za,152:le,181:fe,184:99,189:E,201:980,302:xe,341:1464,342:1465,344:ei,419:190,420:Pe,424:qe},{2:s,3:1011,4:a,5:i,111:1467},e(xi,[2,473]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1468,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1469,419:190,420:Pe,424:qe},e($i,[2,460],{74:wi}),e($i,[2,467]),e(J,[2,694]),e(ir,[2,699]),e(ir,[2,700]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:817,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,174:1470,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{170:[1,1472],309:[1,1471]},{460:[1,1473]},e(hs,[2,180]),e(Ar,[2,240],{85:1474,232:[1,1475]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1476,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1477,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1478,4:a,5:i},e(si,[2,170],{216:1357,221:1360,215:1479,205:1480,206:or,208:cr,222:ur,223:lr,224:hr,225:Er,226:dr,227:fr,228:pr,229:br}),{2:s,3:219,4:a,5:i,77:Be,132:He,143:oe,144:212,145:ce,152:le,156:X,181:fe,199:213,200:215,201:214,202:217,209:1481,213:Ye,214:218,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},e(Sr,[2,205]),e(Sr,[2,206]),{2:s,3:219,4:a,5:i,77:[1,1486],143:oe,144:1484,145:ce,152:le,156:X,181:fe,199:1483,200:1487,201:1485,202:1488,217:1482,290:K,291:W,292:Q,293:z,302:xe,419:190,420:Pe,424:qe},{207:[1,1489],223:mr},{207:[1,1491],223:Nr},e(Rr,[2,222]),{206:[1,1495],208:[1,1494],221:1493,223:lr,224:hr,225:Er,226:dr,227:fr,228:pr,229:br},e(Rr,[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:nr,204:1504,205:1356,206:or,208:cr,215:1355,216:1357,221:1360,222:ur,223:lr,224:hr,225:Er,226:dr,227:fr,228:pr,229:br},e(_i,[2,84]),e(ci,[2,100]),{74:Cr,78:[1,1505]},{78:[1,1507]},e(Or,[2,261]),{78:[2,1060]},e(Or,[2,263],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,242:[1,1508],243:[1,1509],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(ci,[2,99]),e(Pi,[2,1064],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,101]),e(ci,[2,102]),e(ci,[2,103]),e(ci,[2,121]),e(ci,[2,124]),e(ci,[2,127]),e(Pi,[2,1068],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,128]),e(Pi,[2,1070],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,129]),e(Pi,[2,1072],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,130]),e(Pi,[2,1076],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,131]),e(qi,[2,1083],{177:1510}),e(qi,[2,1086],{153:1015,179:ri,180:ni,181:oi}),{74:gr,78:[1,1511]},e(ci,[2,133]),e(Pi,[2,1078],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,134]),e(Pi,[2,1080],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,135]),e(ci,[2,136]),e(ci,[2,137]),e(ci,[2,138]),e(ci,[2,139]),e(ci,[2,140]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:260,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,151:1512,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Fi,[2,1082],{153:1015,179:ri,180:ni,181:oi}),e(J,[2,607]),e(J,[2,603]),e(J,[2,605]),e(J,[2,601]),e(ca,[2,71]),e(J,[2,449],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(Bi,[2,452]),e(Bi,[2,453],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1513,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Hi,[2,662]),e(J,[2,655],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:1514,4:a,5:i},e(ba,[2,545],{385:1515,391:1516,392:1517,366:1525,154:Ir,187:yr,230:vr,297:kr,343:Lr,356:$r,368:wr,369:Dr,373:xr,374:Mr}),e(ba,[2,535]),e(J,[2,576],{76:[1,1529]}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1530,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1531,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1532,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1533,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{74:la,78:[1,1534]},e(J,[2,585]),{74:Cr,78:[1,1535]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1376,111:149,113:153,120:1536,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e([10,74,78,139,306,310,602,764],[2,741]),{139:[1,1537]},{139:[2,1150]},{2:s,3:1122,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,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:E},e(ar,[2,532]),{74:er,78:[1,1542]},e(Tr,sr),e(J,[2,1133],{412:1543,413:1544,72:Ur}),e($i,Xi,{79:75,184:99,114:625,327:637,40:1299,468:1546,89:c,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,146:Ki,154:$t,170:wt,171:Dt,179:xt,180:Mt,189:E,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es,470:Wi}),e($i,[2,725],{74:Vi}),e($i,[2,726],{74:la}),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:s,4:a,5:i,76:[1,1549]}),e(_r,[2,1183],{513:1550,76:[1,1551]}),e(ft,[2,692],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{131:[1,1552]},e(Si,[2,538]),e(Si,[2,540]),e(Xe,[2,412]),e(Xe,[2,413]),e(Xe,[2,439]),e(Xe,[2,423]),e(Xe,[2,425]),{118:Pr,277:1553,278:1554,279:[1,1555]},e(Xe,[2,328]),e(Xe,[2,329]),e(Xe,[2,316]),{131:[1,1557]},e(Xe,[2,318]),{131:[1,1558]},{74:tr,78:[1,1559]},{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1560,419:190,420:Pe,424:qe},e($i,[2,465],{74:wi}),e($i,[2,468]),e(Tr,[2,488]),e(ar,[2,480],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e($i,[2,459],{74:wi}),e(J,[2,718],{74:di,198:[1,1561]}),{335:qr,338:Gr,461:1562},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1565,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{119:[1,1567],170:[1,1568],309:[1,1566]},e(Fr,[2,259],{86:1569,118:[1,1570]}),{119:[1,1571]},e(rr,[2,239],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{95:[1,1572],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{95:[1,1573]},e(Sr,[2,203]),e(Sr,[2,204]),e(Tr,[2,178]),e(Sr,[2,237],{218:1574,230:[1,1575],231:[1,1576]}),e(Vr,[2,208],{3:1577,2:s,4:a,5:i,76:[1,1578]}),e(Br,[2,1095],{219:1579,76:[1,1580]}),{2:s,3:1581,4:a,5:i,76:[1,1582]},{40:1583,79:75,89:c,184:99,189:E},e(Vr,[2,216],{3:1584,2:s,4:a,5:i,76:[1,1585]}),e(Vr,[2,219],{3:1586,2:s,4:a,5:i,76:[1,1587]}),{77:[1,1588]},e(Rr,[2,234]),{77:[1,1589]},e(Rr,[2,230]),e(Rr,[2,223]),{223:Nr},{223:mr},e(Rr,[2,225]),e(Rr,[2,226]),{223:[1,1590]},e(Rr,[2,228]),{223:[1,1591]},{223:[1,1592]},e(Rr,[2,232]),e(Rr,[2,233]),{78:[1,1593],205:1480,206:or,208:cr,215:1479,216:1357,221:1360,222:ur,223:lr,224:hr,225:Er,226:dr,227:fr,228:pr,229:br},e(ci,[2,91]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1376,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ci,[2,92]),e(Or,[2,264]),{244:[1,1595]},e(ar,[2,142],{419:190,3:733,114:736,144:758,158:768,160:769,117:1596,2:s,4:a,5:i,72:gs,76:As,77:Ss,112:ms,115:St,116:mt,118:Ns,122:Rs,123:Cs,124:Os,128:Is,129:ys,130:vs,131:ks,132:Ls,133:$s,134:ws,135:Ds,136:xs,137:Ms,138:Us,139:_s,140:Ps,141:qs,142:Gs,143:Fs,145:Vs,146:Bs,148:Hs,149:Ys,150:js,152:Js,154:Xs,156:Ks,162:Ws,164:Qs,166:zs,168:Zs,169:ea,170:ta,171:sa,172:aa,173:ia,175:ra,185:na,187:oa,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,420:Pe,424:qe}),e(ci,[2,132]),{74:la,78:[1,1597]},e(Bi,[2,454],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(J,[2,572]),e(ba,[2,534]),e(ba,[2,546],{366:1525,392:1598,154:Ir,187:yr,230:vr,297:kr,343:Lr,356:$r,368:wr,369:Dr,373:xr,374:Mr}),e(ua,[2,548]),{370:[1,1599]},{370:[1,1600]},{2:s,3:244,4:a,5:i,199:1601},e(ua,[2,554],{77:[1,1602]}),{2:s,3:114,4:a,5:i,77:[1,1604],113:251,131:ie,132:re,143:oe,152:le,156:X,181:fe,196:250,200:1605,201:254,257:252,258:253,265:We,274:1603,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe},e(ua,[2,558]),{297:[1,1606]},e(ua,[2,560]),e(ua,[2,561]),{335:[1,1607]},{77:[1,1608]},{2:s,3:1609,4:a,5:i},{78:[1,1610],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1611],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1612],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{78:[1,1613],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(J,Yi,{407:1614,76:ji}),e(J,[2,591]),{74:Cr,78:[1,1615]},{2:s,3:1122,4:a,5:i,132:lt,137:ht,143:ze,145:Ze,152:Et,431:585,475:1124,478:1616,482:582,493:579,497:581},e(ba,[2,735]),e(J,[2,493],{352:1617,354:1618,355:1619,4:Hr,243:Yr,343:jr,356:Jr}),e(Xr,Kr,{3:1268,359:1624,384:1625,360:1626,361:1627,2:s,4:a,5:i,367:Wr}),{78:[2,507]},{76:[1,1629]},e(J,[2,609]),e(J,[2,1134]),{368:[1,1631],414:[1,1630]},e($i,[2,728]),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:1632,2:s,4:a,5:i,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(J,[2,762]),e(_r,[2,1182]),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:1633,2:s,4:a,5:i,53:n,72:o,89:c,124:u,146:l,156:h,189:E,266:d,267:f,290:p,335:b,338:T,339:g,396:A,400:S,401:m,404:N,406:R,408:C,409:O,417:I,418:y,434:v,436:k,437:L,439:$,440:w,441:D,442:x,443:M,447:U,448:_,451:P,452:q,505:G,507:F,508:V,517:B}),e(_r,[2,1184]),{78:[1,1634]},{78:[1,1635],118:Pr,278:1636},{78:[1,1637]},{119:[1,1638]},{119:[1,1639]},{78:[1,1640]},{78:[1,1641]},e(xi,[2,476]),e($i,[2,464],{74:wi}),{2:s,3:244,4:a,5:i,143:ze,145:Ze,199:1643,431:1642},e(ir,[2,703]),e(ir,[2,705]),{146:[1,1644]},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,309:[1,1645],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},{339:Qr,462:1646},{417:[1,1649],463:[1,1648]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1650,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(zr,[2,267],{87:1651,245:[1,1652],247:[1,1653]}),{119:[1,1654]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,233:1655,235:1656,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1661,4:a,5:i},{2:s,3:1662,4:a,5:i},e(Sr,[2,207]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1663,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1011,4:a,5:i,100:1664,111:1440},e(Vr,[2,209]),{2:s,3:1665,4:a,5:i},e(Vr,[2,1097],{220:1666,3:1667,2:s,4:a,5:i}),e(Br,[2,1096]),e(Vr,[2,212]),{2:s,3:1668,4:a,5:i},{78:[1,1669]},e(Vr,[2,217]),{2:s,3:1670,4:a,5:i},e(Vr,[2,220]),{2:s,3:1671,4:a,5:i},{40:1672,79:75,89:c,184:99,189:E},{40:1673,79:75,89:c,184:99,189:E},e(Rr,[2,227]),e(Rr,[2,229]),e(Rr,[2,231]),e(si,[2,171]),e(Or,[2,262]),e(Or,[2,265],{242:[1,1674]}),e(qi,[2,1084],{153:1015,179:ri,180:ni,181:oi}),e(ci,[2,141]),e(ua,[2,547]),e(ua,[2,550]),{374:[1,1675]},e(ua,[2,1127],{395:1676,393:1677,77:sn}),{131:ie,196:1679},e(ua,[2,555]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1680,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(ua,[2,557]),e(ua,[2,559]),{2:s,3:114,4:a,5:i,77:[1,1682],113:251,131:ie,132:re,143:oe,152:le,156:X,181:fe,196:250,200:255,201:254,257:252,258:253,265:We,274:1681,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,302:xe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1683,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(J,[2,578]),e(ss,[2,349]),e(ss,[2,350]),e(ss,[2,351]),e(ss,[2,352]),e(J,[2,582]),e(J,[2,592]),e(ba,[2,734]),e(J,[2,489]),e(J,[2,494],{355:1684,4:Hr,243:Yr,343:jr,356:Jr}),e(an,[2,496]),e(an,[2,497]),{124:[1,1685]},{124:[1,1686]},{124:[1,1687]},{74:[1,1688],78:[2,505]},e(ar,[2,533]),e(ar,[2,508]),{187:[1,1696],193:[1,1697],362:1689,363:1690,364:1691,365:1692,366:1693,368:wr,369:[1,1694],370:[1,1698],373:[1,1695]},{2:s,3:1699,4:a,5:i},{40:1700,79:75,89:c,184:99,189:E},{415:[1,1701]},{416:[1,1702]},e(J,[2,761]),e(J,[2,763]),e(Si,[2,537]),e(Xe,[2,331]),{78:[1,1703]},e(Xe,[2,332]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,233:1704,235:1656,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1376,111:149,113:153,120:1705,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Xe,[2,317]),e(Xe,[2,319]),{2:s,3:1706,4:a,5:i},e(J,[2,720],{77:[1,1707]}),{2:s,3:1011,4:a,5:i,111:1065,143:ui,145:li,147:1708,336:1064,337:1066},{335:qr,338:Gr,461:1709},e(ir,[2,707]),{77:[1,1711],343:[1,1712],344:[1,1710]},{170:[1,1714],309:[1,1713]},{170:[1,1716],309:[1,1715]},{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,309:[1,1717],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(ii,[2,250],{88:1718,162:[1,1719],168:[1,1721],169:[1,1720]}),{131:ie,196:1722},{131:ie,196:1723},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1376,111:149,113:153,120:1724,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,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:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},e(Ar,[2,248],{234:1725,74:rn,239:[1,1727]}),e(nn,[2,242]),{146:[1,1728]},{77:[1,1729]},{77:[1,1730]},e(nn,[2,247],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{78:[2,1051],96:1731,99:[1,1733],102:1732},{99:[1,1734]},e(Sr,[2,235],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),e(Sr,[2,236],{74:er}),e(Vr,[2,210]),e(Vr,[2,211]),e(Vr,[2,1098]),e(Vr,[2,213]),{2:s,3:1735,4:a,5:i,76:[1,1736]},e(Vr,[2,218]),e(Vr,[2,221]),{78:[1,1737]},{78:[1,1738]},e(Or,[2,266]),{2:s,3:244,4:a,5:i,199:1739},e(ua,[2,552]),e(ua,[2,1128]),{2:s,3:1740,4:a,5:i},{74:[1,1741]},{78:[1,1742],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(ua,[2,562]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1743,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{78:[1,1744],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(an,[2,495]),{2:s,3:1745,4:a,5:i},{131:ie,196:1746},{2:s,3:1747,4:a,5:i},e(Xr,Kr,{361:1627,360:1748,367:Wr}),e(ba,[2,510]),e(ba,[2,511]),e(ba,[2,512]),e(ba,[2,513]),e(ba,[2,514]),{370:[1,1749]},{370:[1,1750]},e(on,[2,1121],{382:1751,370:[1,1752]}),{2:s,3:1753,4:a,5:i},{2:s,3:1754,4:a,5:i},e(Xr,[2,516]),e(J,[2,1131],{411:1755,413:1756,72:Ur}),e(J,[2,610]),e(J,[2,611],{367:[1,1757]}),e(Xe,[2,333]),e([78,118],[2,334],{74:rn}),{74:Cr,78:[2,335]},e(J,[2,719]),{2:s,3:1011,4:a,5:i,100:1758,111:1440},e(ir,[2,706],{74:Vi}),e(ir,[2,704]),{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1759,419:190,420:Pe,424:qe},{2:s,3:1011,4:a,5:i,100:1760,111:1440},{344:[1,1761]},{339:Qr,462:1762},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1763,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{339:Qr,462:1764},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1765,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{339:Qr,462:1766},e(ii,[2,72]),{40:1767,79:75,89:c,164:[1,1768],184:99,189:E,240:[1,1769]},{40:1770,79:75,89:c,184:99,189:E,240:[1,1771]},{40:1772,79:75,89:c,184:99,189:E,240:[1,1773]},e(zr,[2,270],{246:1774,247:[1,1775]}),{248:1776,249:[2,1099],766:[1,1777]},e(Fr,[2,260],{74:Cr}),e(Ar,[2,241]),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,235:1778,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1779,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{77:[1,1780]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,233:1781,235:1656,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,233:1782,235:1656,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{78:[1,1783]},{78:[2,1052]},{77:[1,1784]},{77:[1,1785]},e(Vr,[2,214]),{2:s,3:1786,4:a,5:i},{2:s,3:1787,4:a,5:i,76:[1,1788]},{2:s,3:1789,4:a,5:i,76:[1,1790]},e(ua,[2,1125],{394:1791,393:1792,77:sn}),{78:[1,1793]},{131:ie,196:1794},e(ua,[2,556]),{78:[1,1795],99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(ua,[2,517]),e(an,[2,498]),e(an,[2,499]),e(an,[2,500]),e(ar,[2,509]),{2:s,3:1797,4:a,5:i,77:[2,1117],371:1796},{77:[1,1798]},{2:s,3:1800,4:a,5:i,77:[2,1123],383:1799},e(on,[2,1122]),{77:[1,1801]},{77:[1,1802]},e(J,[2,608]),e(J,[2,1132]),e(Xr,Kr,{361:1627,360:1803,367:Wr}),{74:er,78:[1,1804]},e(ir,[2,713],{74:wi}),{74:er,78:[1,1805]},e(ir,[2,715]),e(ir,[2,708]),{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,309:[1,1806],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(ir,[2,711]),{99:gt,112:At,114:625,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,309:[1,1807],311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,327:637,330:Qt,331:zt,332:Zt,333:es},e(ir,[2,709]),e(ii,[2,251]),{40:1808,79:75,89:c,184:99,189:E,240:[1,1809]},{40:1810,79:75,89:c,184:99,189:E},e(ii,[2,253]),{40:1811,79:75,89:c,184:99,189:E},e(ii,[2,254]),{40:1812,79:75,89:c,184:99,189:E},e(zr,[2,268]),{131:ie,196:1813},{249:[1,1814]},{249:[2,1100]},e(nn,[2,243]),e(Ar,[2,249],{114:625,327:637,99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1660,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,233:1815,235:1656,236:Zr,237:en,238:tn,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{74:rn,78:[1,1816]},{74:rn,78:[1,1817]},e(Ui,[2,1053],{97:1818,104:1819,3:1821,2:s,4:a,5:i,76:cn}),{2:s,3:168,4:a,5:i,56:165,77:ae,94:1824,103:1822,105:1823,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1011,4:a,5:i,100:1825,111:1440},e(Vr,[2,215]),e(Sr,[2,173]),{2:s,3:1826,4:a,5:i},e(Sr,[2,175]),{2:s,3:1827,4:a,5:i},e(ua,[2,551]),e(ua,[2,1126]),e(ua,[2,549]),{78:[1,1828]},e(ua,[2,563]),{77:[1,1829]},{77:[2,1118]},{2:s,3:1831,4:a,5:i,132:un,372:1830},{77:[1,1833]},{77:[2,1124]},{2:s,3:1011,4:a,5:i,100:1834,111:1440},{2:s,3:1011,4:a,5:i,100:1835,111:1440},e(J,[2,612]),e(J,[2,721]),{343:[1,1837],344:[1,1836]},{339:Qr,462:1838},{335:qr,338:Gr,461:1839},e(ii,[2,252]),{40:1840,79:75,89:c,184:99,189:E},e(ii,[2,255]),e(ii,[2,257]),e(ii,[2,258]),e(zr,[2,271]),{131:[2,1101],250:1841,645:[1,1842]},{74:rn,78:[1,1843]},e(nn,[2,245]),e(nn,[2,246]),e(Ui,[2,74]),e(Ui,[2,1054]),{2:s,3:1844,4:a,5:i},e(Ui,[2,78]),{74:[1,1846],78:[1,1845]},e(ar,[2,80]),e(ar,[2,81],{114:625,327:637,76:[1,1847],99:gt,112:At,115:St,116:mt,123:Nt,124:Ea,133:Ct,136:Ot,138:It,139:yt,140:vt,141:kt,142:Lt,154:$t,170:wt,171:Dt,179:xt,180:Mt,311:Ut,312:_t,313:Pt,315:qt,316:Gt,317:Ft,318:Vt,319:Bt,320:Ht,321:Yt,322:jt,323:Jt,324:Xt,325:Kt,326:Wt,330:Qt,331:zt,332:Zt,333:es}),{74:er,78:[1,1848]},e(Sr,[2,174]),e(Sr,[2,176]),e(ua,[2,553]),{2:s,3:1831,4:a,5:i,132:un,372:1849},{74:ln,78:[1,1850]},e(ar,[2,528]),e(ar,[2,529]),{2:s,3:1011,4:a,5:i,100:1852,111:1440},{74:er,78:[1,1853]},{74:er,78:[1,1854]},{77:ti,143:oe,144:979,145:Ke,152:le,181:fe,201:980,302:xe,342:1855,419:190,420:Pe,424:qe},{344:[1,1856]},e(ir,[2,710]),e(ir,[2,712]),e(ii,[2,256]),{131:ie,196:1857},{131:[2,1102]},e(nn,[2,244]),e(Ui,[2,77]),{78:[2,76]},{2:s,3:168,4:a,5:i,56:165,77:ae,94:1824,105:1858,111:149,113:153,131:ie,132:re,137:ne,143:oe,144:161,145:ce,149:ue,152:le,154:he,156:X,158:167,179:Ee,180:de,181:fe,196:151,200:147,201:155,202:156,254:150,255:146,256:148,257:152,258:154,259:157,260:158,261:159,262:162,263:163,265:pe,266:d,270:be,271:Te,273:ge,280:Ae,281:Se,282:me,283:Ne,284:Re,285:Ce,286:Oe,287:Ie,288:ye,290:K,291:W,292:Q,293:z,294:ve,295:ke,296:Le,297:$e,298:we,299:De,302:xe,303:Me,312:Ue,317:_e,419:190,420:Pe,424:qe},{2:s,3:1859,4:a,5:i},{78:[1,1860]},{74:ln,78:[1,1861]},{374:[1,1862]},{2:s,3:1863,4:a,5:i,132:[1,1864]},{74:er,78:[1,1865]},e(ba,[2,526]),e(ba,[2,527]),e(ir,[2,714],{74:wi}),e(ir,[2,716]),e(hn,[2,1103],{251:1866,766:[1,1867]}),e(ar,[2,79]),e(ar,[2,82]),e(Ui,[2,1055],{3:1821,101:1868,104:1869,2:s,4:a,5:i,76:cn}),e(ba,[2,518]),{2:s,3:244,4:a,5:i,199:1870},e(ar,[2,530]),e(ar,[2,531]),e(ba,[2,525]),e(zr,[2,1105],{252:1871,415:[1,1872]}),e(hn,[2,1104]),e(Ui,[2,75]),e(Ui,[2,1056]),e(En,[2,1119],{375:1873,377:1874,77:[1,1875]}),e(zr,[2,269]),e(zr,[2,1106]),e(ba,[2,521],{376:1876,378:1877,230:[1,1878]}),e(En,[2,1120]),{2:s,3:1831,4:a,5:i,132:un,372:1879},e(ba,[2,519]),{230:[1,1881],379:1880},{338:[1,1882]},{74:ln,78:[1,1883]},e(ba,[2,522]),{335:[1,1884]},{380:[1,1885]},e(En,[2,520]),{380:[1,1886]},{381:[1,1887]},{381:[1,1888]},{230:[2,523]},e(ba,[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 s=new Error(e);throw s.hash=t,s}this.trace(e)},parse:function(e){var t=this,s=this,a=[0],i=[null],r=[],n=this.table,o="",c=0,u=0,l=0,h=r.slice.call(arguments,1),E=Object.create(this.lexer),d={yy:{}};for(var f in t.yy)Object.prototype.hasOwnProperty.call(t.yy,f)&&(d.yy[f]=t.yy[f]);E.setInput(e,d.yy),d.yy.lexer=E,d.yy.parser=this,void 0===E.yylloc&&(E.yylloc={});var p=E.yylloc;r.push(p);var b=E.options&&E.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var T,g,A,S,m,N,R,C,O,I,y=function(){var e;return"number"!=typeof(e=E.lex()||1)&&(e=s.symbols_[e]||e),e},v={};;){if(A=a[a.length-1],t.defaultActions[A]?S=t.defaultActions[A]:(null==T&&(T=y()),S=n[A]&&n[A][T]),void 0===S||!S.length||!S[0]){var k,L="",$=function(e){for(var t=a.length-1,s=0;;){if(2..toString()in n[e])return s;if(0===e||t<2)return!1;e=a[t-=2],++s}};if(l)1!==g&&(k=$(A));else{for(N in k=$(A),O=[],n[A])t.terminals_[N]&&2t[0].length)){if(t=s,a=n,i.options.backtrack_lexer){if(!1!==(e=i.test_match(s,r[n])))return e;if(i._backtrack){t=!1;continue}return!1}if(!i.options.flex)break}return t?!1!==(e=this.test_match(t,r[a]))&&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 bn(){this.yy={}}return dn.lexer=pn,new((bn.prototype=dn).Parser=bn)}();function u(e,t,s,a){if(0<=s){var i=a.sources[s];i.data=t,"function"==typeof i.data&&(i.getfn=i.data,i.dontcache=i.getfn.dontcache,"OUTER"!==i.joinmode&&"RIGHT"!==i.joinmode&&"ANTI"!==i.joinmode||(i.dontcache=!1),i.data={})}else a.queriesdata[-s-1]=flatArray(t);if(a.sourceslen--,!(0=a.sources.length)a.wherefn(i,a.params,e)&&(a.groupfn?a.groupfn(i,a.params,e):a.data.push(a.selectfn(i,a.params,e)));else if(a.sources[r].applyselect)(n=a.sources[r]).applyselect(a.params,function(e){if(0R.MAXSQLCACHESIZE&&n.resetSqlCache(),n.sqlCacheSize++,n.sqlCache[r]=o);var u=R.res=o(s,a,i);return u}return R.precompile(c.statements[0],R.useid,s),u=R.res=c.statements[0].execute(e,s,a,i)}if(!a)return R.drun(e,c,s,a,i);R.adrun(e,c,s,a,i)}},R.drun=function(e,t,s,a,i){var r=R.useid;r!==e&&R.use(e);for(var n=[],o=0,c=t.statements.length;o"===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()},L.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)},L.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()},L.Op.prototype.toJS=function(t,s,a){var e,i=[],r=this.op,n=this,o=function(e){return e.toJS&&(e=e.toJS(t,s,a)),"y["+(i.push(e)-1)+"]"},c=function(){return o(n.left)},u=function(){return o(n.right)};if("="===this.op?r="===":"<>"===this.op?r="!=":"OR"===this.op&&(r="||"),"->"===this.op){var l="("+c()+"||{})";if("string"==typeof this.right)e=l+'["'+this.right+'"]';else if("number"==typeof this.right)e=l+"["+this.right+"]";else if(this.right instanceof L.FuncValue){var h=[];this.right.args&&0!==this.right.args.length&&(h=this.right.args.map(o)),e=l+"['"+this.right.funcid+"']("+h.join(",")+")"}else e=l+"["+u()+"]"}if("!"===this.op&&"string"==typeof this.right&&(e="alasql.databases[alasql.useid].objects["+c()+']["'+this.right+'"]'),"IS"===this.op&&(e="(("+c()+"==null) === ("+u()+"==null))"),"=="===this.op&&(e="alasql.utils.deepEqual("+c()+","+u()+")"),"==="!==this.op&&"!==="!==this.op||(e="("+("!==="===this.op?"!":"")+"(("+c()+").valueOf()===("+u()+").valueOf()))"),"!=="===this.op&&(e="(!alasql.utils.deepEqual("+c()+","+u()+"))"),"||"===this.op&&(e="(''+("+c()+"||'')+("+u()+'||""))'),"LIKE"!==this.op&&"NOT LIKE"!==this.op||(e="("+("NOT LIKE"===this.op?"!":"")+"alasql.utils.like("+u()+","+c(),this.escape&&(e+=","+o(this.escape)),e+="))"),"REGEXP"===this.op&&(e="alasql.stdfn.REGEXP_LIKE("+c()+","+u()+")"),"GLOB"===this.op&&(e="alasql.utils.glob("+c()+","+u()+")"),"BETWEEN"===this.op||"NOT BETWEEN"===this.op){var E=c();e="("+("NOT BETWEEN"===this.op?"!":"")+"(("+o(this.right1)+"<="+E+") && ("+E+"<="+o(this.right2)+")))"}if("IN"===this.op&&(this.right instanceof L.Select?(e="(",e+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,"+t+"))",e+=".indexOf(",e+=c()+")>-1)"):e=Array.isArray(this.right)?"(["+this.right.map(o).join(",")+"].indexOf("+c()+")>-1)":"("+u()+".indexOf("+c()+")>-1)"),"NOT IN"===this.op&&(this.right instanceof L.Select?(e="(",e+="alasql.utils.flatArray(this.queriesfn["+this.queriesidx+"](params,null,p))",e+=".indexOf(",e+=c()+")<0)"):Array.isArray(this.right)?(e="(["+this.right.map(o).join(",")+"].indexOf(",e+=c()+")<0)"):(e="("+u()+".indexOf(",e+=c()+")==-1)")),"ALL"===this.allsome)if(this.right instanceof L.Select)e="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",e+=".every(function(b){return (",e+=c()+")"+r+"b})";else{if(!Array.isArray(this.right))throw new Error("NOT IN operator without SELECT");e=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),e+=".every(function(b){return (",e+=c()+")"+r+"b})"}if("SOME"===this.allsome||"ANY"===this.allsome)if(this.right instanceof L.Select)e="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))",e+=".some(function(b){return (",e+=c()+")"+r+"b})";else{if(!Array.isArray(this.right))throw new Error("SOME/ANY operator without SELECT");e=""+(1==this.right.length?o(this.right[0]):"["+this.right.map(o).join(",")+"]"),e+=".some(function(b){return (",e+=c()+")"+r+"b})"}if("AND"===this.op){if(this.left.reduced){if(this.right.reduced)return"true";e=u()}else this.right.reduced&&(e=c());r="&&"}var d=e||"("+c()+r+u()+")",f="y=[("+i.join("), (")+")]";return"&&"===r||"||"===r||"IS"===r||"IS NULL"===r||"IS NOT NULL"===r?"("+f+", "+d+")":"("+f+", y.some(function(e){return e == null}) ? void 0 : "+d+")"},L.VarValue=function(e){return L.extend(this,e)},L.VarValue.prototype.toString=function(){return"@"+this.variable},L.VarValue.prototype.toType=function(){return"unknown"},L.VarValue.prototype.toJS=function(){return"alasql.vars['"+this.variable+"']"},L.NumValue=function(e){return L.extend(this,e)},L.NumValue.prototype.toString=function(){return this.value.toString()},L.NumValue.prototype.toType=function(){return"number"},L.NumValue.prototype.toJS=function(){return""+this.value},L.StringValue=function(e){return L.extend(this,e)},L.StringValue.prototype.toString=function(){return"'"+this.value.toString()+"'"},L.StringValue.prototype.toType=function(){return"string"},L.StringValue.prototype.toJS=function(){return"'"+g.escapeq(this.value)+"'"},L.DomainValueValue=function(e){return L.extend(this,e)},L.DomainValueValue.prototype.toString=function(){return"VALUE"},L.DomainValueValue.prototype.toType=function(){return"object"},L.DomainValueValue.prototype.toJS=function(e,t,s){return e},L.ArrayValue=function(e){return L.extend(this,e)},L.ArrayValue.prototype.toString=function(){return"ARRAY[]"},L.ArrayValue.prototype.toType=function(){return"object"},L.ArrayValue.prototype.toJS=function(t,s,a){return"[("+this.value.map(function(e){return e.toJS(t,s,a)}).join("), (")+")]"},L.LogicValue=function(e){return L.extend(this,e)},L.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"},L.LogicValue.prototype.toType=function(){return"boolean"},L.LogicValue.prototype.toJS=function(){return this.value?"true":"false"},L.NullValue=function(e){return L.extend(this,e)},L.NullValue.prototype.toString=function(){return"NULL"},L.NullValue.prototype.toJS=function(){return"undefined"},L.ParamValue=function(e){return L.extend(this,e)},L.ParamValue.prototype.toString=function(){return"$"+this.param},L.ParamValue.prototype.toJS=function(){return"string"==typeof this.param?"params['"+this.param+"']":"params["+this.param+"]"},L.UniOp=function(e){return L.extend(this,e)},L.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},L.UniOp.prototype.findAggregator=function(e){this.right.findAggregator&&this.right.findAggregator(e)},L.UniOp.prototype.toType=function(){return"-"===this.op?"number":"+"===this.op?"number":"NOT"===this.op?"boolean":void 0},L.UniOp.prototype.toJS=function(e,t,s){return"~"===this.op?"(~("+this.right.toJS(e,t,s)+"))":"-"===this.op?"(-("+this.right.toJS(e,t,s)+"))":"+"===this.op?"("+this.right.toJS(e,t,s)+")":"NOT"===this.op?"!("+this.right.toJS(e,t,s)+")":"#"===this.op?this.right instanceof L.Column?"(alasql.databases[alasql.useid].objects['"+this.right.columnid+"'])":"(alasql.databases[alasql.useid].objects["+this.right.toJS(e,t,s)+"])":null==this.op?"("+this.right.toJS(e,t,s)+")":void 0},L.Column=function(e){return L.extend(this,e)},L.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},L.Column.prototype.toJS=function(e,t,s){var a="";if(this.tableid||""!==t||s)if("g"===e)a="g['"+this.nick+"']";else if(this.tableid)a="_"!==this.columnid?e+"['"+this.tableid+"']['"+this.columnid+"']":"g"===e?"g['_']":e+"['"+this.tableid+"']";else if(s){var i=s[this.columnid];if("-"===i)throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables');a=i?"_"!==this.columnid?e+"['"+i+"']['"+this.columnid+"']":e+"['"+i+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']"}else a=-1===t?e+"['"+this.columnid+"']":"_"!==this.columnid?e+"['"+(this.tableid||t)+"']['"+this.columnid+"']":e+"['"+(this.tableid||t)+"']";else a="_"!==this.columnid?e+"['"+this.columnid+"']":"g"===e?"g['_']":e;return a},L.AggrValue=function(e){return L.extend(this,e)},L.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},L.AggrValue.prototype.findAggregator=function(e){var t=g.escapeq(this.toString())+":"+e.selectGroup.length;if(!(s=!1)){if(!this.nick){this.nick=t;for(var s=!1,a=0;a>8&255]+i[e>>16&255]+i[e>>24&255]+"-"+i[255&t]+i[t>>8&255]+"-"+i[t>>16&15|64]+i[t>>24&255]+"-"+i[63&s|128]+i[s>>8&255]+"-"+i[s>>16&255]+i[s>>24&255]+i[255&a]+i[a>>8&255]+i[a>>16&255]+i[a>>24&255]},e.alasql.stdfn=t}(te),(re=(ie=te).alasql).aggr.GROUP_CONCAT=function(e,t,s){return 1===s?""+e:2===s?t+=","+e:t},re.aggr.MEDIAN=function(e,t,s){if(2===s)return null!==e&&t.push(e),t;if(1===s)return null===e?[]:[e];if(!t.length)return t;var a=t.sort(),i=(a.length+1)/2;return Number.isInteger(i)?a[i-1]:(a[Math.floor(i-1)]+a[Math.ceil(i-1)])/2},re.aggr.QUART=function(e,t,s,a){if(2===s)return null!==e&&t.push(e),t;if(1===s)return null===e?[]:[e];if(!t.length)return t;a=a||1;var i=t.sort(),r=a*(i.length+1)/4;return Number.isInteger(r)?i[r-1]:i[Math.floor(r)]},re.aggr.QUART2=function(e,t,s){return re.aggr.QUART(e,t,s,2)},re.aggr.QUART3=function(e,t,s){return re.aggr.QUART(e,t,s,3)},re.aggr.VAR=function(e,t,s){if(1===s)return null===e?{arr:[],sum:0}:{arr:[e],sum:e};if(2===s)return null===e||(t.arr.push(e),t.sum+=e),t;for(var a=t.arr.length,i=t.sum/a,r=0,n=0;n { + await esbuild.build({ + entryPoints: ["./src/main.js"], + bundle: true, + minify: true, + sourcemap: true, + target: ["chrome58", "firefox57", "safari11", "edge16"], + outfile: "./dist/es6/alasql.js", + }); + + await esbuild.build({ + entryPoints: ["./src/main.js"], + bundle: true, + platform: "node", + target: ["node12"], + packages: "external", + outfile: "./dist/alasql.fs.js", + }); +})(); diff --git a/gulpfile.js b/gulpfile.js index ae54d562fe..9f9d5a76ec 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -157,13 +157,13 @@ gulp.task('js-merge', function() { .pipe(replace(/PACKAGE_VERSION_NUMBER/g, version)) // Please set version in package.json file .pipe(gulp.dest('./dist')) - .pipe(dereserve()) // Support IE8 - .pipe(replace(/\/\/\*not-for-browser\/\*/g, '/*not-for-browser/*')) // Remove things not for browser build - .pipe(replace(/\/\*only-for-browser\/\*/g, '//*only-for-browser/*')) // Reveal things only for browser build - .pipe(rename('alasql.js')) - .pipe(gulp.dest('./dist')) - .pipe(rename('alasql.min.js')) - .pipe( + //.pipe(dereserve()) // Support IE8 + //.pipe(replace(/\/\/\*not-for-browser\/\*/g, '/*not-for-browser/*')) // Remove things not for browser build + //.pipe(replace(/\/\*only-for-browser\/\*/g, '//*only-for-browser/*')) // Reveal things only for browser build + //.pipe(rename('alasql.js')) + //.pipe(gulp.dest('./dist')) + //.pipe(rename('alasql.min.js')) + /*.pipe( uglify({ preserveComments: function(a, b) { return 1 === b.line && /^!/.test(b.value); @@ -171,6 +171,7 @@ gulp.task('js-merge', function() { }) ) // leave first line of comment if starts with a "!" .pipe(gulp.dest('./dist')); + */ }); gulp.task('jison-compile', function() { diff --git a/inch.json b/inch.json deleted file mode 100644 index f13ff2b3fc..0000000000 --- a/inch.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "files": { - "included": [ - "src/*.js" - ], - "excluded": [ - "!regexp:/vendor/" - ] - } -} diff --git a/lib/assert/assert.js b/lib/assert/assert.js deleted file mode 100644 index 73c9fa55ce..0000000000 --- a/lib/assert/assert.js +++ /dev/null @@ -1,431 +0,0 @@ -// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 -// -// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! -// -// Copyright (c) 2011 Jxck -// -// Originally from node.js (http://nodejs.org) -// Copyright Joyent, Inc. -// -// 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 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. - -(function(module) { - -if (typeof module.exports === 'undefined') { - module.exports = module; // this case must be browser -} - -// UTILITY - -// Object.create compatible in IE -var create = Object.create || function(p) { - if (!p) throw Error('no type'); - function f() {}; - f.prototype = p; - return new f(); -}; - -// UTILITY -var util = { - inherits: function(ctor, superCtor) { - ctor.super_ = superCtor; - ctor.prototype = create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }, - isArray: function(ar) { - return Array.isArray(ar); - }, - isBoolean: function(arg) { - return typeof arg === 'boolean'; - }, - isNull: function(arg) { - return arg === null; - }, - isNullOrUndefined: function(arg) { - return arg == null; - }, - isNumber: function(arg) { - return typeof arg === 'number'; - }, - isString: function(arg) { - return typeof arg === 'string'; - }, - isSymbol: function(arg) { - return typeof arg === 'symbol'; - }, - isUndefined: function(arg) { - return arg === void 0; - }, - isRegExp: function(re) { - return util.isObject(re) && util.objectToString(re) === '[object RegExp]'; - }, - isObject: function(arg) { - return typeof arg === 'object' && arg !== null; - }, - isDate: function(d) { - return util.isObject(d) && util.objectToString(d) === '[object Date]'; - }, - isError: function(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); - }, - isFunction: function(arg) { - return typeof arg === 'function'; - }, - isPrimitive: function(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - }, - objectToString: function(o) { - return Object.prototype.toString.call(o); - } -}; - -var pSlice = Array.prototype.slice; - -// from https://github.com/substack/node-deep-equal -var Object_keys = typeof Object.keys === 'function' - ? Object.keys - : function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; - } -; - -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - if (options.message) { - this.message = options.message; - this.generatedMessage = false; - } else { - this.message = getMessage(this); - this.generatedMessage = true; - } - var stackStartFunction = options.stackStartFunction || fail; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } else { - // try to throw an error now, and from the stack property - // work out the line that called in to assert.js. - try { - this.stack = (new Error).stack.toString(); - } catch (e) {} - } -}; - -// assert.AssertionError instanceof Error -util.inherits(assert.AssertionError, Error); - -function replacer(key, value) { - if (util.isUndefined(value)) { - return '' + value; - } - if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) { - return value.toString(); - } - if (util.isFunction(value) || util.isRegExp(value)) { - return value.toString(); - } - return value; -} - -function truncate(s, n) { - if (util.isString(s)) { - return s.length < n ? s : s.slice(0, n); - } else { - return s; - } -} - -function getMessage(self) { - return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + - self.operator + ' ' + - truncate(JSON.stringify(self.expected, replacer), 128); -} - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, !!guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -function ok(value, message) { - if (!value) fail(value, true, message, '==', assert.ok); -} -assert.ok = ok; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -function _deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - // } else if (util.isBuffer(actual) && util.isBuffer(expected)) { - // if (actual.length != expected.length) return false; - // - // for (var i = 0; i < actual.length; i++) { - // if (actual[i] !== expected[i]) return false; - // } - // - // return true; - // - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (util.isDate(actual) && util.isDate(expected)) { - return actual.getTime() === expected.getTime(); - - // 7.3 If the expected value is a RegExp object, the actual value is - // equivalent if it is also a RegExp object with the same source and - // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). - } else if (util.isRegExp(actual) && util.isRegExp(expected)) { - return actual.source === expected.source && - actual.global === expected.global && - actual.multiline === expected.multiline && - actual.lastIndex === expected.lastIndex && - actual.ignoreCase === expected.ignoreCase; - - // 7.4. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (!util.isObject(actual) && !util.isObject(expected)) { - return actual == expected; - - // 7.5 For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b) { - if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - var aIsArgs = isArguments(a), - bIsArgs = isArguments(b); - if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) - return false; - if (aIsArgs) { - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b); - } - try { - var ka = Object.keys(a), - kb = Object.keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key])) return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); - } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); - } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; - } - - if (Object.prototype.toString.call(expected) == '[object RegExp]') { - return expected.test(actual); - } else if (actual instanceof expected) { - return true; - } else if (expected.call({}, actual) === true) { - return true; - } - - return false; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (util.isString(expected)) { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail(actual, expected, 'Missing expected exception' + message); - } - - if (!shouldThrow && expectedException(actual, expected)) { - fail(actual, expected, 'Got unwanted exception' + message); - } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; - } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert.throws = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [true].concat(pSlice.call(arguments))); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/message) { - _throws.apply(this, [false].concat(pSlice.call(arguments))); -}; - -assert.ifError = function(err) { if (err) {throw err;}}; - -module.assert = module.exports; -delete module.exports; -})(this); diff --git a/lib/base64/base64.min.js b/lib/base64/base64.min.js deleted file mode 100644 index b2f13773f7..0000000000 --- a/lib/base64/base64.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(global){"use strict";var _Base64=global.Base64;var version="2.1.7";var buffer;if(typeof module!=="undefined"&&module.exports){buffer=require("buffer").Buffer}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/[\s\S]{1,4}/g,cb_decode)};var _decode=buffer?function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}})(this);if(this["Meteor"]){Base64=global.Base64} \ No newline at end of file diff --git a/lib/jquery/jquery.min.js b/lib/jquery/jquery.min.js deleted file mode 100644 index e5ace116b6..0000000000 --- a/lib/jquery/jquery.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="

",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) -},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("