\n \n \n \n \n )\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/standalone/layout.jsx","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 216\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/json/stringify.js\n// module id = 217\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 218\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/create.js\n// module id = 219\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 220\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 221\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/symbol.js\n// module id = 222\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/symbol/iterator.js\n// module id = 223\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 224\n// module chunks = 0","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/base64-js/index.js\n// module id = 225\n// module chunks = 0","require('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').String;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/string.js\n// module id = 226\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/fn/promise.js\n// module id = 227\n// module chunks = 0","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/get-iterator.js\n// module id = 228\n// module chunks = 0","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/is-iterable.js\n// module id = 229\n// module chunks = 0","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/json/stringify.js\n// module id = 230\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/assign.js\n// module id = 231\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/create.js\n// module id = 232\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/define-property.js\n// module id = 233\n// module chunks = 0","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/get-prototype-of.js\n// module id = 234\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/keys.js\n// module id = 235\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/set-prototype-of.js\n// module id = 236\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/symbol/index.js\n// module id = 237\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/symbol/iterator.js\n// module id = 238\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_a-function.js\n// module id = 239\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_add-to-unscopables.js\n// module id = 240\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_array-includes.js\n// module id = 241\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_enum-keys.js\n// module id = 242\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_html.js\n// module id = 243\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_is-array.js\n// module id = 244\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-create.js\n// module id = 245\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-step.js\n// module id = 246\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_meta.js\n// module id = 247\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-assign.js\n// module id = 248\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-dps.js\n// module id = 249\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-gopn-ext.js\n// module id = 250\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_set-proto.js\n// module id = 251\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_string-at.js\n// module id = 252\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-absolute-index.js\n// module id = 253\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-length.js\n// module id = 254\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/core.get-iterator-method.js\n// module id = 255\n// module chunks = 0","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/core.get-iterator.js\n// module id = 256\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/core.is-iterable.js\n// module id = 257\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.array.iterator.js\n// module id = 258\n// module chunks = 0","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.assign.js\n// module id = 259\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.create.js\n// module id = 260\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.define-property.js\n// module id = 261\n// module chunks = 0","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.get-prototype-of.js\n// module id = 262\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.keys.js\n// module id = 263\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 264\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.symbol.js\n// module id = 266\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 267\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es7.symbol.observable.js\n// module id = 268\n// module chunks = 0","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_add-to-unscopables.js\n// module id = 269\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 270\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 271\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 272\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 273\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_invoke.js\n// module id = 274\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 275\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 276\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 277\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 278\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 279\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 280\n// module chunks = 0","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_microtask.js\n// module id = 281\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 282\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 283\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 284\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 285\n// module chunks = 0","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 286\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 287\n// module chunks = 0","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-repeat.js\n// module id = 288\n// module chunks = 0","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-trim.js\n// module id = 289\n// module chunks = 0","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-ws.js\n// module id = 290\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 291\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 292\n// module chunks = 0","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_user-agent.js\n// module id = 293\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 294\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.iterator.js\n// module id = 295\n// module chunks = 0","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.to-string.js\n// module id = 296\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.promise.js\n// module id = 297\n// module chunks = 0","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.match.js\n// module id = 298\n// module chunks = 0","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.replace.js\n// module id = 299\n// module chunks = 0","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.search.js\n// module id = 300\n// module chunks = 0","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.split.js\n// module id = 301\n// module chunks = 0","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.anchor.js\n// module id = 302\n// module chunks = 0","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.big.js\n// module id = 303\n// module chunks = 0","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.blink.js\n// module id = 304\n// module chunks = 0","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.bold.js\n// module id = 305\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.code-point-at.js\n// module id = 306\n// module chunks = 0","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.ends-with.js\n// module id = 307\n// module chunks = 0","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fixed.js\n// module id = 308\n// module chunks = 0","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontcolor.js\n// module id = 309\n// module chunks = 0","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontsize.js\n// module id = 310\n// module chunks = 0","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.from-code-point.js\n// module id = 311\n// module chunks = 0","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.includes.js\n// module id = 312\n// module chunks = 0","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.italics.js\n// module id = 313\n// module chunks = 0","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.link.js\n// module id = 314\n// module chunks = 0","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.raw.js\n// module id = 315\n// module chunks = 0","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.repeat.js\n// module id = 316\n// module chunks = 0","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.small.js\n// module id = 317\n// module chunks = 0","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.starts-with.js\n// module id = 318\n// module chunks = 0","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.strike.js\n// module id = 319\n// module chunks = 0","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sub.js\n// module id = 320\n// module chunks = 0","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sup.js\n// module id = 321\n// module chunks = 0","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.trim.js\n// module id = 322\n// module chunks = 0","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.promise.finally.js\n// module id = 323\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.promise.try.js\n// module id = 324\n// module chunks = 0","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.dom.iterable.js\n// module id = 325\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/factory.js\n// module id = 326\n// module chunks = 0","/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (typeof exports == 'object') {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else if (typeof define == 'function' && define.amd) {\n\t\t// For AMD. Register as an anonymous module.\n\t\tdefine([], factory.bind(root, root));\n\t} else {\n\t\t// For browser globals (not exposing the function separately).\n\t\tfactory(root);\n\t}\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css.escape/css.escape.js\n// module id = 327\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\tvar from = Array.from, arr, result;\n\tif (typeof from !== \"function\") return false;\n\tarr = [\"raz\", \"dwa\"];\n\tresult = from(arr);\n\treturn Boolean(result && (result !== arr) && (result[1] === \"dwa\"));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/array/from/is-implemented.js\n// module id = 328\n// module chunks = 0","\"use strict\";\n\nvar iteratorSymbol = require(\"es6-symbol\").iterator\n , isArguments = require(\"../../function/is-arguments\")\n , isFunction = require(\"../../function/is-function\")\n , toPosInt = require(\"../../number/to-pos-integer\")\n , callable = require(\"../../object/valid-callable\")\n , validValue = require(\"../../object/valid-value\")\n , isValue = require(\"../../object/is-value\")\n , isString = require(\"../../string/is-string\")\n , isArray = Array.isArray\n , call = Function.prototype.call\n , desc = { configurable: true, enumerable: true, writable: true, value: null }\n , defineProperty = Object.defineProperty;\n\n// eslint-disable-next-line complexity\nmodule.exports = function (arrayLike /*, mapFn, thisArg*/) {\n\tvar mapFn = arguments[1]\n\t , thisArg = arguments[2]\n\t , Context\n\t , i\n\t , j\n\t , arr\n\t , length\n\t , code\n\t , iterator\n\t , result\n\t , getIterator\n\t , value;\n\n\tarrayLike = Object(validValue(arrayLike));\n\n\tif (isValue(mapFn)) callable(mapFn);\n\tif (!this || this === Array || !isFunction(this)) {\n\t\t// Result: Plain array\n\t\tif (!mapFn) {\n\t\t\tif (isArguments(arrayLike)) {\n\t\t\t\t// Source: Arguments\n\t\t\t\tlength = arrayLike.length;\n\t\t\t\tif (length !== 1) return Array.apply(null, arrayLike);\n\t\t\t\tarr = new Array(1);\n\t\t\t\tarr[0] = arrayLike[0];\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\tif (isArray(arrayLike)) {\n\t\t\t\t// Source: Array\n\t\t\t\tarr = new Array(length = arrayLike.length);\n\t\t\t\tfor (i = 0; i < length; ++i) arr[i] = arrayLike[i];\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t}\n\t\tarr = [];\n\t} else {\n\t\t// Result: Non plain array\n\t\tContext = this;\n\t}\n\n\tif (!isArray(arrayLike)) {\n\t\tif ((getIterator = arrayLike[iteratorSymbol]) !== undefined) {\n\t\t\t// Source: Iterator\n\t\t\titerator = callable(getIterator).call(arrayLike);\n\t\t\tif (Context) arr = new Context();\n\t\t\tresult = iterator.next();\n\t\t\ti = 0;\n\t\t\twhile (!result.done) {\n\t\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n\t\t\t\tif (Context) {\n\t\t\t\t\tdesc.value = value;\n\t\t\t\t\tdefineProperty(arr, i, desc);\n\t\t\t\t} else {\n\t\t\t\t\tarr[i] = value;\n\t\t\t\t}\n\t\t\t\tresult = iterator.next();\n\t\t\t\t++i;\n\t\t\t}\n\t\t\tlength = i;\n\t\t} else if (isString(arrayLike)) {\n\t\t\t// Source: String\n\t\t\tlength = arrayLike.length;\n\t\t\tif (Context) arr = new Context();\n\t\t\tfor (i = 0, j = 0; i < length; ++i) {\n\t\t\t\tvalue = arrayLike[i];\n\t\t\t\tif (i + 1 < length) {\n\t\t\t\t\tcode = value.charCodeAt(0);\n\t\t\t\t\t// eslint-disable-next-line max-depth\n\t\t\t\t\tif (code >= 0xd800 && code <= 0xdbff) value += arrayLike[++i];\n\t\t\t\t}\n\t\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n\t\t\t\tif (Context) {\n\t\t\t\t\tdesc.value = value;\n\t\t\t\t\tdefineProperty(arr, j, desc);\n\t\t\t\t} else {\n\t\t\t\t\tarr[j] = value;\n\t\t\t\t}\n\t\t\t\t++j;\n\t\t\t}\n\t\t\tlength = j;\n\t\t}\n\t}\n\tif (length === undefined) {\n\t\t// Source: array or array-like\n\t\tlength = toPosInt(arrayLike.length);\n\t\tif (Context) arr = new Context(length);\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n\t\t\tif (Context) {\n\t\t\t\tdesc.value = value;\n\t\t\t\tdefineProperty(arr, i, desc);\n\t\t\t} else {\n\t\t\t\tarr[i] = value;\n\t\t\t}\n\t\t}\n\t}\n\tif (Context) {\n\t\tdesc.value = null;\n\t\tarr.length = length;\n\t}\n\treturn arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/array/from/shim.js\n// module id = 329\n// module chunks = 0","\"use strict\";\n\nvar from = require(\"./from\")\n\n , isArray = Array.isArray;\n\nmodule.exports = function (arrayLike) {\n\treturn isArray(arrayLike) ? arrayLike : from(arrayLike);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/array/to-array.js\n// module id = 330\n// module chunks = 0","\"use strict\";\n\nvar assign = require(\"../object/assign\")\n , isObject = require(\"../object/is-object\")\n , isValue = require(\"../object/is-value\")\n , captureStackTrace = Error.captureStackTrace;\n\nexports = module.exports = function (message /*, code, ext*/) {\n\tvar err = new Error(message), code = arguments[1], ext = arguments[2];\n\tif (!isValue(ext)) {\n\t\tif (isObject(code)) {\n\t\t\text = code;\n\t\t\tcode = null;\n\t\t}\n\t}\n\tif (isValue(ext)) assign(err, ext);\n\tif (isValue(code)) err.code = code;\n\tif (captureStackTrace) captureStackTrace(err, exports);\n\treturn err;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/error/custom.js\n// module id = 331\n// module chunks = 0","\"use strict\";\n\nvar objToString = Object.prototype.toString\n , id = objToString.call(\n\t(function () {\n\t\treturn arguments;\n\t})()\n);\n\nmodule.exports = function (value) {\n\treturn objToString.call(value) === id;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/function/is-arguments.js\n// module id = 332\n// module chunks = 0","\"use strict\";\n\nvar objToString = Object.prototype.toString, id = objToString.call(require(\"./noop\"));\n\nmodule.exports = function (value) {\n\treturn typeof value === \"function\" && objToString.call(value) === id;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/function/is-function.js\n// module id = 333\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")()\n\t? Math.sign\n\t: require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/math/sign/index.js\n// module id = 334\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\tvar sign = Math.sign;\n\tif (typeof sign !== \"function\") return false;\n\treturn (sign(10) === 1) && (sign(-20) === -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/math/sign/is-implemented.js\n// module id = 335\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function (value) {\n\tvalue = Number(value);\n\tif (isNaN(value) || (value === 0)) return value;\n\treturn value > 0 ? 1 : -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/math/sign/shim.js\n// module id = 336\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")()\n\t? Number.isNaN\n\t: require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/number/is-nan/index.js\n// module id = 337\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\tvar numberIsNaN = Number.isNaN;\n\tif (typeof numberIsNaN !== \"function\") return false;\n\treturn !numberIsNaN({}) && numberIsNaN(NaN) && !numberIsNaN(34);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/number/is-nan/is-implemented.js\n// module id = 338\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function (value) {\n\t// eslint-disable-next-line no-self-compare\n\treturn value !== value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/number/is-nan/shim.js\n// module id = 339\n// module chunks = 0","\"use strict\";\n\nvar sign = require(\"../math/sign\")\n\n , abs = Math.abs, floor = Math.floor;\n\nmodule.exports = function (value) {\n\tif (isNaN(value)) return 0;\n\tvalue = Number(value);\n\tif ((value === 0) || !isFinite(value)) return value;\n\treturn sign(value) * floor(abs(value));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/number/to-integer.js\n// module id = 340\n// module chunks = 0","// Internal method, used by iteration functions.\n// Calls a function for each key-value pair found in object\n// Optionally takes compareFn to iterate object in specific order\n\n\"use strict\";\n\nvar callable = require(\"./valid-callable\")\n , value = require(\"./valid-value\")\n , bind = Function.prototype.bind\n , call = Function.prototype.call\n , keys = Object.keys\n , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nmodule.exports = function (method, defVal) {\n\treturn function (obj, cb /*, thisArg, compareFn*/) {\n\t\tvar list, thisArg = arguments[2], compareFn = arguments[3];\n\t\tobj = Object(value(obj));\n\t\tcallable(cb);\n\n\t\tlist = keys(obj);\n\t\tif (compareFn) {\n\t\t\tlist.sort(typeof compareFn === \"function\" ? bind.call(compareFn, obj) : undefined);\n\t\t}\n\t\tif (typeof method !== \"function\") method = list[method];\n\t\treturn call.call(method, list, function (key, index) {\n\t\t\tif (!objPropertyIsEnumerable.call(obj, key)) return defVal;\n\t\t\treturn call.call(cb, thisArg, obj[key], key, obj, index);\n\t\t});\n\t};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/_iterate.js\n// module id = 341\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn (obj.foo + obj.bar + obj.trzy) === \"razdwatrzy\";\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/assign/is-implemented.js\n// module id = 342\n// module chunks = 0","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src /*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/assign/shim.js\n// module id = 343\n// module chunks = 0","// Deprecated\n\n\"use strict\";\n\nmodule.exports = function (obj) {\n return typeof obj === \"function\";\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/is-callable.js\n// module id = 344\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) {\n\treturn (isValue(value) && map[typeof value]) || false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/is-object.js\n// module id = 345\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/index.js\n// module id = 346\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/is-implemented.js\n// module id = 347\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/shim.js\n// module id = 348\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")()\n\t? String.prototype.contains\n\t: require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/index.js\n// module id = 349\n// module chunks = 0","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn (str.contains(\"dwa\") === true) && (str.contains(\"foo\") === false);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/is-implemented.js\n// module id = 350\n// module chunks = 0","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/shim.js\n// module id = 351\n// module chunks = 0","\"use strict\";\n\nvar objToString = Object.prototype.toString, id = objToString.call(\"\");\n\nmodule.exports = function (value) {\n\treturn (\n\t\ttypeof value === \"string\" ||\n\t\t(value &&\n\t\t\ttypeof value === \"object\" &&\n\t\t\t(value instanceof String || objToString.call(value) === id)) ||\n\t\tfalse\n\t);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/is-string.js\n// module id = 352\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./is-implemented')() ? Symbol : require('./polyfill');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-symbol/index.js\n// module id = 353\n// module chunks = 0","'use strict';\n\nvar validTypes = { object: true, symbol: true };\n\nmodule.exports = function () {\n\tvar symbol;\n\tif (typeof Symbol !== 'function') return false;\n\tsymbol = Symbol('test symbol');\n\ttry { String(symbol); } catch (e) { return false; }\n\n\t// Return 'true' also for polyfills\n\tif (!validTypes[typeof Symbol.iterator]) return false;\n\tif (!validTypes[typeof Symbol.toPrimitive]) return false;\n\tif (!validTypes[typeof Symbol.toStringTag]) return false;\n\n\treturn true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-symbol/is-implemented.js\n// module id = 354\n// module chunks = 0","'use strict';\n\nmodule.exports = function (x) {\n\tif (!x) return false;\n\tif (typeof x === 'symbol') return true;\n\tif (!x.constructor) return false;\n\tif (x.constructor.name !== 'Symbol') return false;\n\treturn (x[x.constructor.toStringTag] === 'Symbol');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-symbol/is-symbol.js\n// module id = 355\n// module chunks = 0","// ES2015 Symbol polyfill for environments that do not (or partially) support it\n\n'use strict';\n\nvar d = require('d')\n , validateSymbol = require('./validate-symbol')\n\n , create = Object.create, defineProperties = Object.defineProperties\n , defineProperty = Object.defineProperty, objPrototype = Object.prototype\n , NativeSymbol, SymbolPolyfill, HiddenSymbol, globalSymbols = create(null)\n , isNativeSafe;\n\nif (typeof Symbol === 'function') {\n\tNativeSymbol = Symbol;\n\ttry {\n\t\tString(NativeSymbol());\n\t\tisNativeSafe = true;\n\t} catch (ignore) {}\n}\n\nvar generateName = (function () {\n\tvar created = create(null);\n\treturn function (desc) {\n\t\tvar postfix = 0, name, ie11BugWorkaround;\n\t\twhile (created[desc + (postfix || '')]) ++postfix;\n\t\tdesc += (postfix || '');\n\t\tcreated[desc] = true;\n\t\tname = '@@' + desc;\n\t\tdefineProperty(objPrototype, name, d.gs(null, function (value) {\n\t\t\t// For IE11 issue see:\n\t\t\t// https://connect.microsoft.com/IE/feedbackdetail/view/1928508/\n\t\t\t// ie11-broken-getters-on-dom-objects\n\t\t\t// https://github.com/medikoo/es6-symbol/issues/12\n\t\t\tif (ie11BugWorkaround) return;\n\t\t\tie11BugWorkaround = true;\n\t\t\tdefineProperty(this, name, d(value));\n\t\t\tie11BugWorkaround = false;\n\t\t}));\n\t\treturn name;\n\t};\n}());\n\n// Internal constructor (not one exposed) for creating Symbol instances.\n// This one is used to ensure that `someSymbol instanceof Symbol` always return false\nHiddenSymbol = function Symbol(description) {\n\tif (this instanceof HiddenSymbol) throw new TypeError('Symbol is not a constructor');\n\treturn SymbolPolyfill(description);\n};\n\n// Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\nmodule.exports = SymbolPolyfill = function Symbol(description) {\n\tvar symbol;\n\tif (this instanceof Symbol) throw new TypeError('Symbol is not a constructor');\n\tif (isNativeSafe) return NativeSymbol(description);\n\tsymbol = create(HiddenSymbol.prototype);\n\tdescription = (description === undefined ? '' : String(description));\n\treturn defineProperties(symbol, {\n\t\t__description__: d('', description),\n\t\t__name__: d('', generateName(description))\n\t});\n};\ndefineProperties(SymbolPolyfill, {\n\tfor: d(function (key) {\n\t\tif (globalSymbols[key]) return globalSymbols[key];\n\t\treturn (globalSymbols[key] = SymbolPolyfill(String(key)));\n\t}),\n\tkeyFor: d(function (s) {\n\t\tvar key;\n\t\tvalidateSymbol(s);\n\t\tfor (key in globalSymbols) if (globalSymbols[key] === s) return key;\n\t}),\n\n\t// To ensure proper interoperability with other native functions (e.g. Array.from)\n\t// fallback to eventual native implementation of given symbol\n\thasInstance: d('', (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill('hasInstance')),\n\tisConcatSpreadable: d('', (NativeSymbol && NativeSymbol.isConcatSpreadable) ||\n\t\tSymbolPolyfill('isConcatSpreadable')),\n\titerator: d('', (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill('iterator')),\n\tmatch: d('', (NativeSymbol && NativeSymbol.match) || SymbolPolyfill('match')),\n\treplace: d('', (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill('replace')),\n\tsearch: d('', (NativeSymbol && NativeSymbol.search) || SymbolPolyfill('search')),\n\tspecies: d('', (NativeSymbol && NativeSymbol.species) || SymbolPolyfill('species')),\n\tsplit: d('', (NativeSymbol && NativeSymbol.split) || SymbolPolyfill('split')),\n\ttoPrimitive: d('', (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill('toPrimitive')),\n\ttoStringTag: d('', (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill('toStringTag')),\n\tunscopables: d('', (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill('unscopables'))\n});\n\n// Internal tweaks for real symbol producer\ndefineProperties(HiddenSymbol.prototype, {\n\tconstructor: d(SymbolPolyfill),\n\ttoString: d('', function () { return this.__name__; })\n});\n\n// Proper implementation of methods exposed on Symbol.prototype\n// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype\ndefineProperties(SymbolPolyfill.prototype, {\n\ttoString: d(function () { return 'Symbol (' + validateSymbol(this).__description__ + ')'; }),\n\tvalueOf: d(function () { return validateSymbol(this); })\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, d('', function () {\n\tvar symbol = validateSymbol(this);\n\tif (typeof symbol === 'symbol') return symbol;\n\treturn symbol.toString();\n}));\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d('c', 'Symbol'));\n\n// Proper implementaton of toPrimitive and toStringTag for returned symbol instances\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag,\n\td('c', SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]));\n\n// Note: It's important to define `toPrimitive` as last one, as some implementations\n// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)\n// And that may invoke error in definition flow:\n// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive,\n\td('c', SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-symbol/polyfill.js\n// module id = 356\n// module chunks = 0","'use strict';\n\nvar isSymbol = require('./is-symbol');\n\nmodule.exports = function (value) {\n\tif (!isSymbol(value)) throw new TypeError(value + \" is not a symbol\");\n\treturn value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-symbol/validate-symbol.js\n// module id = 357\n// module chunks = 0","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t/*\r\n\t Copyright JS Foundation and other contributors, https://js.foundation/\r\n\r\n\t Redistribution and use in source and binary forms, with or without\r\n\t modification, are permitted provided that the following conditions are met:\r\n\r\n\t * Redistributions of source code must retain the above copyright\r\n\t notice, this list of conditions and the following disclaimer.\r\n\t * Redistributions in binary form must reproduce the above copyright\r\n\t notice, this list of conditions and the following disclaimer in the\r\n\t documentation and/or other materials provided with the distribution.\r\n\r\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\r\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\t*/\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar comment_handler_1 = __webpack_require__(1);\r\n\tvar jsx_parser_1 = __webpack_require__(3);\r\n\tvar parser_1 = __webpack_require__(8);\r\n\tvar tokenizer_1 = __webpack_require__(15);\r\n\tfunction parse(code, options, delegate) {\r\n\t var commentHandler = null;\r\n\t var proxyDelegate = function (node, metadata) {\r\n\t if (delegate) {\r\n\t delegate(node, metadata);\r\n\t }\r\n\t if (commentHandler) {\r\n\t commentHandler.visit(node, metadata);\r\n\t }\r\n\t };\r\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\r\n\t var collectComment = false;\r\n\t if (options) {\r\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\r\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\r\n\t if (collectComment || attachComment) {\r\n\t commentHandler = new comment_handler_1.CommentHandler();\r\n\t commentHandler.attach = attachComment;\r\n\t options.comment = true;\r\n\t parserDelegate = proxyDelegate;\r\n\t }\r\n\t }\r\n\t var isModule = false;\r\n\t if (options && typeof options.sourceType === 'string') {\r\n\t isModule = (options.sourceType === 'module');\r\n\t }\r\n\t var parser;\r\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\r\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\r\n\t }\r\n\t else {\r\n\t parser = new parser_1.Parser(code, options, parserDelegate);\r\n\t }\r\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\r\n\t var ast = program;\r\n\t if (collectComment && commentHandler) {\r\n\t ast.comments = commentHandler.comments;\r\n\t }\r\n\t if (parser.config.tokens) {\r\n\t ast.tokens = parser.tokens;\r\n\t }\r\n\t if (parser.config.tolerant) {\r\n\t ast.errors = parser.errorHandler.errors;\r\n\t }\r\n\t return ast;\r\n\t}\r\n\texports.parse = parse;\r\n\tfunction parseModule(code, options, delegate) {\r\n\t var parsingOptions = options || {};\r\n\t parsingOptions.sourceType = 'module';\r\n\t return parse(code, parsingOptions, delegate);\r\n\t}\r\n\texports.parseModule = parseModule;\r\n\tfunction parseScript(code, options, delegate) {\r\n\t var parsingOptions = options || {};\r\n\t parsingOptions.sourceType = 'script';\r\n\t return parse(code, parsingOptions, delegate);\r\n\t}\r\n\texports.parseScript = parseScript;\r\n\tfunction tokenize(code, options, delegate) {\r\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\r\n\t var tokens;\r\n\t tokens = [];\r\n\t try {\r\n\t while (true) {\r\n\t var token = tokenizer.getNextToken();\r\n\t if (!token) {\r\n\t break;\r\n\t }\r\n\t if (delegate) {\r\n\t token = delegate(token);\r\n\t }\r\n\t tokens.push(token);\r\n\t }\r\n\t }\r\n\t catch (e) {\r\n\t tokenizer.errorHandler.tolerate(e);\r\n\t }\r\n\t if (tokenizer.errorHandler.tolerant) {\r\n\t tokens.errors = tokenizer.errors();\r\n\t }\r\n\t return tokens;\r\n\t}\r\n\texports.tokenize = tokenize;\r\n\tvar syntax_1 = __webpack_require__(2);\r\n\texports.Syntax = syntax_1.Syntax;\r\n\t// Sync with *.json manifests.\r\n\texports.version = '4.0.0';\r\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar syntax_1 = __webpack_require__(2);\r\n\tvar CommentHandler = (function () {\r\n\t function CommentHandler() {\r\n\t this.attach = false;\r\n\t this.comments = [];\r\n\t this.stack = [];\r\n\t this.leading = [];\r\n\t this.trailing = [];\r\n\t }\r\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\r\n\t // innnerComments for properties empty block\r\n\t // `function a() {/** comments **\\/}`\r\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\r\n\t var innerComments = [];\r\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\r\n\t var entry = this.leading[i];\r\n\t if (metadata.end.offset >= entry.start) {\r\n\t innerComments.unshift(entry.comment);\r\n\t this.leading.splice(i, 1);\r\n\t this.trailing.splice(i, 1);\r\n\t }\r\n\t }\r\n\t if (innerComments.length) {\r\n\t node.innerComments = innerComments;\r\n\t }\r\n\t }\r\n\t };\r\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\r\n\t var trailingComments = [];\r\n\t if (this.trailing.length > 0) {\r\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\r\n\t var entry_1 = this.trailing[i];\r\n\t if (entry_1.start >= metadata.end.offset) {\r\n\t trailingComments.unshift(entry_1.comment);\r\n\t }\r\n\t }\r\n\t this.trailing.length = 0;\r\n\t return trailingComments;\r\n\t }\r\n\t var entry = this.stack[this.stack.length - 1];\r\n\t if (entry && entry.node.trailingComments) {\r\n\t var firstComment = entry.node.trailingComments[0];\r\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\r\n\t trailingComments = entry.node.trailingComments;\r\n\t delete entry.node.trailingComments;\r\n\t }\r\n\t }\r\n\t return trailingComments;\r\n\t };\r\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\r\n\t var leadingComments = [];\r\n\t var target;\r\n\t while (this.stack.length > 0) {\r\n\t var entry = this.stack[this.stack.length - 1];\r\n\t if (entry && entry.start >= metadata.start.offset) {\r\n\t target = entry.node;\r\n\t this.stack.pop();\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (target) {\r\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\r\n\t for (var i = count - 1; i >= 0; --i) {\r\n\t var comment = target.leadingComments[i];\r\n\t if (comment.range[1] <= metadata.start.offset) {\r\n\t leadingComments.unshift(comment);\r\n\t target.leadingComments.splice(i, 1);\r\n\t }\r\n\t }\r\n\t if (target.leadingComments && target.leadingComments.length === 0) {\r\n\t delete target.leadingComments;\r\n\t }\r\n\t return leadingComments;\r\n\t }\r\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\r\n\t var entry = this.leading[i];\r\n\t if (entry.start <= metadata.start.offset) {\r\n\t leadingComments.unshift(entry.comment);\r\n\t this.leading.splice(i, 1);\r\n\t }\r\n\t }\r\n\t return leadingComments;\r\n\t };\r\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\r\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\r\n\t return;\r\n\t }\r\n\t this.insertInnerComments(node, metadata);\r\n\t var trailingComments = this.findTrailingComments(metadata);\r\n\t var leadingComments = this.findLeadingComments(metadata);\r\n\t if (leadingComments.length > 0) {\r\n\t node.leadingComments = leadingComments;\r\n\t }\r\n\t if (trailingComments.length > 0) {\r\n\t node.trailingComments = trailingComments;\r\n\t }\r\n\t this.stack.push({\r\n\t node: node,\r\n\t start: metadata.start.offset\r\n\t });\r\n\t };\r\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\r\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\r\n\t var comment = {\r\n\t type: type,\r\n\t value: node.value\r\n\t };\r\n\t if (node.range) {\r\n\t comment.range = node.range;\r\n\t }\r\n\t if (node.loc) {\r\n\t comment.loc = node.loc;\r\n\t }\r\n\t this.comments.push(comment);\r\n\t if (this.attach) {\r\n\t var entry = {\r\n\t comment: {\r\n\t type: type,\r\n\t value: node.value,\r\n\t range: [metadata.start.offset, metadata.end.offset]\r\n\t },\r\n\t start: metadata.start.offset\r\n\t };\r\n\t if (node.loc) {\r\n\t entry.comment.loc = node.loc;\r\n\t }\r\n\t node.type = type;\r\n\t this.leading.push(entry);\r\n\t this.trailing.push(entry);\r\n\t }\r\n\t };\r\n\t CommentHandler.prototype.visit = function (node, metadata) {\r\n\t if (node.type === 'LineComment') {\r\n\t this.visitComment(node, metadata);\r\n\t }\r\n\t else if (node.type === 'BlockComment') {\r\n\t this.visitComment(node, metadata);\r\n\t }\r\n\t else if (this.attach) {\r\n\t this.visitNode(node, metadata);\r\n\t }\r\n\t };\r\n\t return CommentHandler;\r\n\t}());\r\n\texports.CommentHandler = CommentHandler;\r\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.Syntax = {\r\n\t AssignmentExpression: 'AssignmentExpression',\r\n\t AssignmentPattern: 'AssignmentPattern',\r\n\t ArrayExpression: 'ArrayExpression',\r\n\t ArrayPattern: 'ArrayPattern',\r\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\r\n\t AwaitExpression: 'AwaitExpression',\r\n\t BlockStatement: 'BlockStatement',\r\n\t BinaryExpression: 'BinaryExpression',\r\n\t BreakStatement: 'BreakStatement',\r\n\t CallExpression: 'CallExpression',\r\n\t CatchClause: 'CatchClause',\r\n\t ClassBody: 'ClassBody',\r\n\t ClassDeclaration: 'ClassDeclaration',\r\n\t ClassExpression: 'ClassExpression',\r\n\t ConditionalExpression: 'ConditionalExpression',\r\n\t ContinueStatement: 'ContinueStatement',\r\n\t DoWhileStatement: 'DoWhileStatement',\r\n\t DebuggerStatement: 'DebuggerStatement',\r\n\t EmptyStatement: 'EmptyStatement',\r\n\t ExportAllDeclaration: 'ExportAllDeclaration',\r\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\r\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\r\n\t ExportSpecifier: 'ExportSpecifier',\r\n\t ExpressionStatement: 'ExpressionStatement',\r\n\t ForStatement: 'ForStatement',\r\n\t ForOfStatement: 'ForOfStatement',\r\n\t ForInStatement: 'ForInStatement',\r\n\t FunctionDeclaration: 'FunctionDeclaration',\r\n\t FunctionExpression: 'FunctionExpression',\r\n\t Identifier: 'Identifier',\r\n\t IfStatement: 'IfStatement',\r\n\t ImportDeclaration: 'ImportDeclaration',\r\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\r\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\r\n\t ImportSpecifier: 'ImportSpecifier',\r\n\t Literal: 'Literal',\r\n\t LabeledStatement: 'LabeledStatement',\r\n\t LogicalExpression: 'LogicalExpression',\r\n\t MemberExpression: 'MemberExpression',\r\n\t MetaProperty: 'MetaProperty',\r\n\t MethodDefinition: 'MethodDefinition',\r\n\t NewExpression: 'NewExpression',\r\n\t ObjectExpression: 'ObjectExpression',\r\n\t ObjectPattern: 'ObjectPattern',\r\n\t Program: 'Program',\r\n\t Property: 'Property',\r\n\t RestElement: 'RestElement',\r\n\t ReturnStatement: 'ReturnStatement',\r\n\t SequenceExpression: 'SequenceExpression',\r\n\t SpreadElement: 'SpreadElement',\r\n\t Super: 'Super',\r\n\t SwitchCase: 'SwitchCase',\r\n\t SwitchStatement: 'SwitchStatement',\r\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\r\n\t TemplateElement: 'TemplateElement',\r\n\t TemplateLiteral: 'TemplateLiteral',\r\n\t ThisExpression: 'ThisExpression',\r\n\t ThrowStatement: 'ThrowStatement',\r\n\t TryStatement: 'TryStatement',\r\n\t UnaryExpression: 'UnaryExpression',\r\n\t UpdateExpression: 'UpdateExpression',\r\n\t VariableDeclaration: 'VariableDeclaration',\r\n\t VariableDeclarator: 'VariableDeclarator',\r\n\t WhileStatement: 'WhileStatement',\r\n\t WithStatement: 'WithStatement',\r\n\t YieldExpression: 'YieldExpression'\r\n\t};\r\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\r\n\t var extendStatics = Object.setPrototypeOf ||\r\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\t return function (d, b) {\r\n\t extendStatics(d, b);\r\n\t function __() { this.constructor = d; }\r\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n\t };\r\n\t})();\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar character_1 = __webpack_require__(4);\r\n\tvar JSXNode = __webpack_require__(5);\r\n\tvar jsx_syntax_1 = __webpack_require__(6);\r\n\tvar Node = __webpack_require__(7);\r\n\tvar parser_1 = __webpack_require__(8);\r\n\tvar token_1 = __webpack_require__(13);\r\n\tvar xhtml_entities_1 = __webpack_require__(14);\r\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\r\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\r\n\t// Fully qualified element name, e.g. returns \"svg:path\"\r\n\tfunction getQualifiedElementName(elementName) {\r\n\t var qualifiedName;\r\n\t switch (elementName.type) {\r\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\r\n\t var id = elementName;\r\n\t qualifiedName = id.name;\r\n\t break;\r\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\r\n\t var ns = elementName;\r\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\r\n\t getQualifiedElementName(ns.name);\r\n\t break;\r\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\r\n\t var expr = elementName;\r\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\r\n\t getQualifiedElementName(expr.property);\r\n\t break;\r\n\t /* istanbul ignore next */\r\n\t default:\r\n\t break;\r\n\t }\r\n\t return qualifiedName;\r\n\t}\r\n\tvar JSXParser = (function (_super) {\r\n\t __extends(JSXParser, _super);\r\n\t function JSXParser(code, options, delegate) {\r\n\t return _super.call(this, code, options, delegate) || this;\r\n\t }\r\n\t JSXParser.prototype.parsePrimaryExpression = function () {\r\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\r\n\t };\r\n\t JSXParser.prototype.startJSX = function () {\r\n\t // Unwind the scanner before the lookahead token.\r\n\t this.scanner.index = this.startMarker.index;\r\n\t this.scanner.lineNumber = this.startMarker.line;\r\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\r\n\t };\r\n\t JSXParser.prototype.finishJSX = function () {\r\n\t // Prime the next lookahead.\r\n\t this.nextToken();\r\n\t };\r\n\t JSXParser.prototype.reenterJSX = function () {\r\n\t this.startJSX();\r\n\t this.expectJSX('}');\r\n\t // Pop the closing '}' added from the lookahead.\r\n\t if (this.config.tokens) {\r\n\t this.tokens.pop();\r\n\t }\r\n\t };\r\n\t JSXParser.prototype.createJSXNode = function () {\r\n\t this.collectComments();\r\n\t return {\r\n\t index: this.scanner.index,\r\n\t line: this.scanner.lineNumber,\r\n\t column: this.scanner.index - this.scanner.lineStart\r\n\t };\r\n\t };\r\n\t JSXParser.prototype.createJSXChildNode = function () {\r\n\t return {\r\n\t index: this.scanner.index,\r\n\t line: this.scanner.lineNumber,\r\n\t column: this.scanner.index - this.scanner.lineStart\r\n\t };\r\n\t };\r\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\r\n\t var result = '&';\r\n\t var valid = true;\r\n\t var terminated = false;\r\n\t var numeric = false;\r\n\t var hex = false;\r\n\t while (!this.scanner.eof() && valid && !terminated) {\r\n\t var ch = this.scanner.source[this.scanner.index];\r\n\t if (ch === quote) {\r\n\t break;\r\n\t }\r\n\t terminated = (ch === ';');\r\n\t result += ch;\r\n\t ++this.scanner.index;\r\n\t if (!terminated) {\r\n\t switch (result.length) {\r\n\t case 2:\r\n\t // e.g. '{'\r\n\t numeric = (ch === '#');\r\n\t break;\r\n\t case 3:\r\n\t if (numeric) {\r\n\t // e.g. 'A'\r\n\t hex = (ch === 'x');\r\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\r\n\t numeric = numeric && !hex;\r\n\t }\r\n\t break;\r\n\t default:\r\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\r\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t if (valid && terminated && result.length > 2) {\r\n\t // e.g. 'A' becomes just '#x41'\r\n\t var str = result.substr(1, result.length - 2);\r\n\t if (numeric && str.length > 1) {\r\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\r\n\t }\r\n\t else if (hex && str.length > 2) {\r\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\r\n\t }\r\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\r\n\t result = xhtml_entities_1.XHTMLEntities[str];\r\n\t }\r\n\t }\r\n\t return result;\r\n\t };\r\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\r\n\t JSXParser.prototype.lexJSX = function () {\r\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\r\n\t // < > / : = { }\r\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\r\n\t var value = this.scanner.source[this.scanner.index++];\r\n\t return {\r\n\t type: 7 /* Punctuator */,\r\n\t value: value,\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: this.scanner.index - 1,\r\n\t end: this.scanner.index\r\n\t };\r\n\t }\r\n\t // \" '\r\n\t if (cp === 34 || cp === 39) {\r\n\t var start = this.scanner.index;\r\n\t var quote = this.scanner.source[this.scanner.index++];\r\n\t var str = '';\r\n\t while (!this.scanner.eof()) {\r\n\t var ch = this.scanner.source[this.scanner.index++];\r\n\t if (ch === quote) {\r\n\t break;\r\n\t }\r\n\t else if (ch === '&') {\r\n\t str += this.scanXHTMLEntity(quote);\r\n\t }\r\n\t else {\r\n\t str += ch;\r\n\t }\r\n\t }\r\n\t return {\r\n\t type: 8 /* StringLiteral */,\r\n\t value: str,\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: start,\r\n\t end: this.scanner.index\r\n\t };\r\n\t }\r\n\t // ... or .\r\n\t if (cp === 46) {\r\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\r\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\r\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\r\n\t var start = this.scanner.index;\r\n\t this.scanner.index += value.length;\r\n\t return {\r\n\t type: 7 /* Punctuator */,\r\n\t value: value,\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: start,\r\n\t end: this.scanner.index\r\n\t };\r\n\t }\r\n\t // `\r\n\t if (cp === 96) {\r\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\r\n\t return {\r\n\t type: 10 /* Template */,\r\n\t value: '',\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: this.scanner.index,\r\n\t end: this.scanner.index\r\n\t };\r\n\t }\r\n\t // Identifer can not contain backslash (char code 92).\r\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\r\n\t var start = this.scanner.index;\r\n\t ++this.scanner.index;\r\n\t while (!this.scanner.eof()) {\r\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\r\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\r\n\t ++this.scanner.index;\r\n\t }\r\n\t else if (ch === 45) {\r\n\t // Hyphen (char code 45) can be part of an identifier.\r\n\t ++this.scanner.index;\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t var id = this.scanner.source.slice(start, this.scanner.index);\r\n\t return {\r\n\t type: 100 /* Identifier */,\r\n\t value: id,\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: start,\r\n\t end: this.scanner.index\r\n\t };\r\n\t }\r\n\t return this.scanner.lex();\r\n\t };\r\n\t JSXParser.prototype.nextJSXToken = function () {\r\n\t this.collectComments();\r\n\t this.startMarker.index = this.scanner.index;\r\n\t this.startMarker.line = this.scanner.lineNumber;\r\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t var token = this.lexJSX();\r\n\t this.lastMarker.index = this.scanner.index;\r\n\t this.lastMarker.line = this.scanner.lineNumber;\r\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t if (this.config.tokens) {\r\n\t this.tokens.push(this.convertToken(token));\r\n\t }\r\n\t return token;\r\n\t };\r\n\t JSXParser.prototype.nextJSXText = function () {\r\n\t this.startMarker.index = this.scanner.index;\r\n\t this.startMarker.line = this.scanner.lineNumber;\r\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t var start = this.scanner.index;\r\n\t var text = '';\r\n\t while (!this.scanner.eof()) {\r\n\t var ch = this.scanner.source[this.scanner.index];\r\n\t if (ch === '{' || ch === '<') {\r\n\t break;\r\n\t }\r\n\t ++this.scanner.index;\r\n\t text += ch;\r\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\r\n\t ++this.scanner.lineNumber;\r\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\r\n\t ++this.scanner.index;\r\n\t }\r\n\t this.scanner.lineStart = this.scanner.index;\r\n\t }\r\n\t }\r\n\t this.lastMarker.index = this.scanner.index;\r\n\t this.lastMarker.line = this.scanner.lineNumber;\r\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t var token = {\r\n\t type: 101 /* Text */,\r\n\t value: text,\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: this.scanner.lineStart,\r\n\t start: start,\r\n\t end: this.scanner.index\r\n\t };\r\n\t if ((text.length > 0) && this.config.tokens) {\r\n\t this.tokens.push(this.convertToken(token));\r\n\t }\r\n\t return token;\r\n\t };\r\n\t JSXParser.prototype.peekJSXToken = function () {\r\n\t var state = this.scanner.saveState();\r\n\t this.scanner.scanComments();\r\n\t var next = this.lexJSX();\r\n\t this.scanner.restoreState(state);\r\n\t return next;\r\n\t };\r\n\t // Expect the next JSX token to match the specified punctuator.\r\n\t // If not, an exception will be thrown.\r\n\t JSXParser.prototype.expectJSX = function (value) {\r\n\t var token = this.nextJSXToken();\r\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t };\r\n\t // Return true if the next JSX token matches the specified punctuator.\r\n\t JSXParser.prototype.matchJSX = function (value) {\r\n\t var next = this.peekJSXToken();\r\n\t return next.type === 7 /* Punctuator */ && next.value === value;\r\n\t };\r\n\t JSXParser.prototype.parseJSXIdentifier = function () {\r\n\t var node = this.createJSXNode();\r\n\t var token = this.nextJSXToken();\r\n\t if (token.type !== 100 /* Identifier */) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\r\n\t };\r\n\t JSXParser.prototype.parseJSXElementName = function () {\r\n\t var node = this.createJSXNode();\r\n\t var elementName = this.parseJSXIdentifier();\r\n\t if (this.matchJSX(':')) {\r\n\t var namespace = elementName;\r\n\t this.expectJSX(':');\r\n\t var name_1 = this.parseJSXIdentifier();\r\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\r\n\t }\r\n\t else if (this.matchJSX('.')) {\r\n\t while (this.matchJSX('.')) {\r\n\t var object = elementName;\r\n\t this.expectJSX('.');\r\n\t var property = this.parseJSXIdentifier();\r\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\r\n\t }\r\n\t }\r\n\t return elementName;\r\n\t };\r\n\t JSXParser.prototype.parseJSXAttributeName = function () {\r\n\t var node = this.createJSXNode();\r\n\t var attributeName;\r\n\t var identifier = this.parseJSXIdentifier();\r\n\t if (this.matchJSX(':')) {\r\n\t var namespace = identifier;\r\n\t this.expectJSX(':');\r\n\t var name_2 = this.parseJSXIdentifier();\r\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\r\n\t }\r\n\t else {\r\n\t attributeName = identifier;\r\n\t }\r\n\t return attributeName;\r\n\t };\r\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\r\n\t var node = this.createJSXNode();\r\n\t var token = this.nextJSXToken();\r\n\t if (token.type !== 8 /* StringLiteral */) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t var raw = this.getTokenRaw(token);\r\n\t return this.finalize(node, new Node.Literal(token.value, raw));\r\n\t };\r\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\r\n\t var node = this.createJSXNode();\r\n\t this.expectJSX('{');\r\n\t this.finishJSX();\r\n\t if (this.match('}')) {\r\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\r\n\t }\r\n\t var expression = this.parseAssignmentExpression();\r\n\t this.reenterJSX();\r\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\r\n\t };\r\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\r\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\r\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\r\n\t };\r\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\r\n\t var node = this.createJSXNode();\r\n\t var name = this.parseJSXAttributeName();\r\n\t var value = null;\r\n\t if (this.matchJSX('=')) {\r\n\t this.expectJSX('=');\r\n\t value = this.parseJSXAttributeValue();\r\n\t }\r\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\r\n\t };\r\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\r\n\t var node = this.createJSXNode();\r\n\t this.expectJSX('{');\r\n\t this.expectJSX('...');\r\n\t this.finishJSX();\r\n\t var argument = this.parseAssignmentExpression();\r\n\t this.reenterJSX();\r\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\r\n\t };\r\n\t JSXParser.prototype.parseJSXAttributes = function () {\r\n\t var attributes = [];\r\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\r\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\r\n\t this.parseJSXNameValueAttribute();\r\n\t attributes.push(attribute);\r\n\t }\r\n\t return attributes;\r\n\t };\r\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\r\n\t var node = this.createJSXNode();\r\n\t this.expectJSX('<');\r\n\t var name = this.parseJSXElementName();\r\n\t var attributes = this.parseJSXAttributes();\r\n\t var selfClosing = this.matchJSX('/');\r\n\t if (selfClosing) {\r\n\t this.expectJSX('/');\r\n\t }\r\n\t this.expectJSX('>');\r\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\r\n\t };\r\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\r\n\t var node = this.createJSXNode();\r\n\t this.expectJSX('<');\r\n\t if (this.matchJSX('/')) {\r\n\t this.expectJSX('/');\r\n\t var name_3 = this.parseJSXElementName();\r\n\t this.expectJSX('>');\r\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\r\n\t }\r\n\t var name = this.parseJSXElementName();\r\n\t var attributes = this.parseJSXAttributes();\r\n\t var selfClosing = this.matchJSX('/');\r\n\t if (selfClosing) {\r\n\t this.expectJSX('/');\r\n\t }\r\n\t this.expectJSX('>');\r\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\r\n\t };\r\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\r\n\t var node = this.createJSXChildNode();\r\n\t this.collectComments();\r\n\t this.lastMarker.index = this.scanner.index;\r\n\t this.lastMarker.line = this.scanner.lineNumber;\r\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\r\n\t };\r\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\r\n\t var node = this.createJSXNode();\r\n\t this.expectJSX('{');\r\n\t var expression;\r\n\t if (this.matchJSX('}')) {\r\n\t expression = this.parseJSXEmptyExpression();\r\n\t this.expectJSX('}');\r\n\t }\r\n\t else {\r\n\t this.finishJSX();\r\n\t expression = this.parseAssignmentExpression();\r\n\t this.reenterJSX();\r\n\t }\r\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\r\n\t };\r\n\t JSXParser.prototype.parseJSXChildren = function () {\r\n\t var children = [];\r\n\t while (!this.scanner.eof()) {\r\n\t var node = this.createJSXChildNode();\r\n\t var token = this.nextJSXText();\r\n\t if (token.start < token.end) {\r\n\t var raw = this.getTokenRaw(token);\r\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\r\n\t children.push(child);\r\n\t }\r\n\t if (this.scanner.source[this.scanner.index] === '{') {\r\n\t var container = this.parseJSXExpressionContainer();\r\n\t children.push(container);\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t return children;\r\n\t };\r\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\r\n\t var stack = [];\r\n\t while (!this.scanner.eof()) {\r\n\t el.children = el.children.concat(this.parseJSXChildren());\r\n\t var node = this.createJSXChildNode();\r\n\t var element = this.parseJSXBoundaryElement();\r\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\r\n\t var opening = element;\r\n\t if (opening.selfClosing) {\r\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\r\n\t el.children.push(child);\r\n\t }\r\n\t else {\r\n\t stack.push(el);\r\n\t el = { node: node, opening: opening, closing: null, children: [] };\r\n\t }\r\n\t }\r\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\r\n\t el.closing = element;\r\n\t var open_1 = getQualifiedElementName(el.opening.name);\r\n\t var close_1 = getQualifiedElementName(el.closing.name);\r\n\t if (open_1 !== close_1) {\r\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\r\n\t }\r\n\t if (stack.length > 0) {\r\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\r\n\t el = stack[stack.length - 1];\r\n\t el.children.push(child);\r\n\t stack.pop();\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t return el;\r\n\t };\r\n\t JSXParser.prototype.parseJSXElement = function () {\r\n\t var node = this.createJSXNode();\r\n\t var opening = this.parseJSXOpeningElement();\r\n\t var children = [];\r\n\t var closing = null;\r\n\t if (!opening.selfClosing) {\r\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\r\n\t children = el.children;\r\n\t closing = el.closing;\r\n\t }\r\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\r\n\t };\r\n\t JSXParser.prototype.parseJSXRoot = function () {\r\n\t // Pop the opening '<' added from the lookahead.\r\n\t if (this.config.tokens) {\r\n\t this.tokens.pop();\r\n\t }\r\n\t this.startJSX();\r\n\t var element = this.parseJSXElement();\r\n\t this.finishJSX();\r\n\t return element;\r\n\t };\r\n\t JSXParser.prototype.isStartOfExpression = function () {\r\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\r\n\t };\r\n\t return JSXParser;\r\n\t}(parser_1.Parser));\r\n\texports.JSXParser = JSXParser;\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t// See also tools/generate-unicode-regex.js.\r\n\tvar Regex = {\r\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\r\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\r\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\r\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\r\n\t};\r\n\texports.Character = {\r\n\t /* tslint:disable:no-bitwise */\r\n\t fromCodePoint: function (cp) {\r\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\r\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\r\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\r\n\t },\r\n\t // https://tc39.github.io/ecma262/#sec-white-space\r\n\t isWhiteSpace: function (cp) {\r\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\r\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\r\n\t },\r\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\r\n\t isLineTerminator: function (cp) {\r\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\r\n\t },\r\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\r\n\t isIdentifierStart: function (cp) {\r\n\t return (cp === 0x24) || (cp === 0x5F) ||\r\n\t (cp >= 0x41 && cp <= 0x5A) ||\r\n\t (cp >= 0x61 && cp <= 0x7A) ||\r\n\t (cp === 0x5C) ||\r\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\r\n\t },\r\n\t isIdentifierPart: function (cp) {\r\n\t return (cp === 0x24) || (cp === 0x5F) ||\r\n\t (cp >= 0x41 && cp <= 0x5A) ||\r\n\t (cp >= 0x61 && cp <= 0x7A) ||\r\n\t (cp >= 0x30 && cp <= 0x39) ||\r\n\t (cp === 0x5C) ||\r\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\r\n\t },\r\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\r\n\t isDecimalDigit: function (cp) {\r\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\r\n\t },\r\n\t isHexDigit: function (cp) {\r\n\t return (cp >= 0x30 && cp <= 0x39) ||\r\n\t (cp >= 0x41 && cp <= 0x46) ||\r\n\t (cp >= 0x61 && cp <= 0x66); // a..f\r\n\t },\r\n\t isOctalDigit: function (cp) {\r\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\r\n\t }\r\n\t};\r\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar jsx_syntax_1 = __webpack_require__(6);\r\n\t/* tslint:disable:max-classes-per-file */\r\n\tvar JSXClosingElement = (function () {\r\n\t function JSXClosingElement(name) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\r\n\t this.name = name;\r\n\t }\r\n\t return JSXClosingElement;\r\n\t}());\r\n\texports.JSXClosingElement = JSXClosingElement;\r\n\tvar JSXElement = (function () {\r\n\t function JSXElement(openingElement, children, closingElement) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\r\n\t this.openingElement = openingElement;\r\n\t this.children = children;\r\n\t this.closingElement = closingElement;\r\n\t }\r\n\t return JSXElement;\r\n\t}());\r\n\texports.JSXElement = JSXElement;\r\n\tvar JSXEmptyExpression = (function () {\r\n\t function JSXEmptyExpression() {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\r\n\t }\r\n\t return JSXEmptyExpression;\r\n\t}());\r\n\texports.JSXEmptyExpression = JSXEmptyExpression;\r\n\tvar JSXExpressionContainer = (function () {\r\n\t function JSXExpressionContainer(expression) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\r\n\t this.expression = expression;\r\n\t }\r\n\t return JSXExpressionContainer;\r\n\t}());\r\n\texports.JSXExpressionContainer = JSXExpressionContainer;\r\n\tvar JSXIdentifier = (function () {\r\n\t function JSXIdentifier(name) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\r\n\t this.name = name;\r\n\t }\r\n\t return JSXIdentifier;\r\n\t}());\r\n\texports.JSXIdentifier = JSXIdentifier;\r\n\tvar JSXMemberExpression = (function () {\r\n\t function JSXMemberExpression(object, property) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\r\n\t this.object = object;\r\n\t this.property = property;\r\n\t }\r\n\t return JSXMemberExpression;\r\n\t}());\r\n\texports.JSXMemberExpression = JSXMemberExpression;\r\n\tvar JSXAttribute = (function () {\r\n\t function JSXAttribute(name, value) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\r\n\t this.name = name;\r\n\t this.value = value;\r\n\t }\r\n\t return JSXAttribute;\r\n\t}());\r\n\texports.JSXAttribute = JSXAttribute;\r\n\tvar JSXNamespacedName = (function () {\r\n\t function JSXNamespacedName(namespace, name) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\r\n\t this.namespace = namespace;\r\n\t this.name = name;\r\n\t }\r\n\t return JSXNamespacedName;\r\n\t}());\r\n\texports.JSXNamespacedName = JSXNamespacedName;\r\n\tvar JSXOpeningElement = (function () {\r\n\t function JSXOpeningElement(name, selfClosing, attributes) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\r\n\t this.name = name;\r\n\t this.selfClosing = selfClosing;\r\n\t this.attributes = attributes;\r\n\t }\r\n\t return JSXOpeningElement;\r\n\t}());\r\n\texports.JSXOpeningElement = JSXOpeningElement;\r\n\tvar JSXSpreadAttribute = (function () {\r\n\t function JSXSpreadAttribute(argument) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\r\n\t this.argument = argument;\r\n\t }\r\n\t return JSXSpreadAttribute;\r\n\t}());\r\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\r\n\tvar JSXText = (function () {\r\n\t function JSXText(value, raw) {\r\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\r\n\t this.value = value;\r\n\t this.raw = raw;\r\n\t }\r\n\t return JSXText;\r\n\t}());\r\n\texports.JSXText = JSXText;\r\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.JSXSyntax = {\r\n\t JSXAttribute: 'JSXAttribute',\r\n\t JSXClosingElement: 'JSXClosingElement',\r\n\t JSXElement: 'JSXElement',\r\n\t JSXEmptyExpression: 'JSXEmptyExpression',\r\n\t JSXExpressionContainer: 'JSXExpressionContainer',\r\n\t JSXIdentifier: 'JSXIdentifier',\r\n\t JSXMemberExpression: 'JSXMemberExpression',\r\n\t JSXNamespacedName: 'JSXNamespacedName',\r\n\t JSXOpeningElement: 'JSXOpeningElement',\r\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\r\n\t JSXText: 'JSXText'\r\n\t};\r\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar syntax_1 = __webpack_require__(2);\r\n\t/* tslint:disable:max-classes-per-file */\r\n\tvar ArrayExpression = (function () {\r\n\t function ArrayExpression(elements) {\r\n\t this.type = syntax_1.Syntax.ArrayExpression;\r\n\t this.elements = elements;\r\n\t }\r\n\t return ArrayExpression;\r\n\t}());\r\n\texports.ArrayExpression = ArrayExpression;\r\n\tvar ArrayPattern = (function () {\r\n\t function ArrayPattern(elements) {\r\n\t this.type = syntax_1.Syntax.ArrayPattern;\r\n\t this.elements = elements;\r\n\t }\r\n\t return ArrayPattern;\r\n\t}());\r\n\texports.ArrayPattern = ArrayPattern;\r\n\tvar ArrowFunctionExpression = (function () {\r\n\t function ArrowFunctionExpression(params, body, expression) {\r\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\r\n\t this.id = null;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = false;\r\n\t this.expression = expression;\r\n\t this.async = false;\r\n\t }\r\n\t return ArrowFunctionExpression;\r\n\t}());\r\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\r\n\tvar AssignmentExpression = (function () {\r\n\t function AssignmentExpression(operator, left, right) {\r\n\t this.type = syntax_1.Syntax.AssignmentExpression;\r\n\t this.operator = operator;\r\n\t this.left = left;\r\n\t this.right = right;\r\n\t }\r\n\t return AssignmentExpression;\r\n\t}());\r\n\texports.AssignmentExpression = AssignmentExpression;\r\n\tvar AssignmentPattern = (function () {\r\n\t function AssignmentPattern(left, right) {\r\n\t this.type = syntax_1.Syntax.AssignmentPattern;\r\n\t this.left = left;\r\n\t this.right = right;\r\n\t }\r\n\t return AssignmentPattern;\r\n\t}());\r\n\texports.AssignmentPattern = AssignmentPattern;\r\n\tvar AsyncArrowFunctionExpression = (function () {\r\n\t function AsyncArrowFunctionExpression(params, body, expression) {\r\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\r\n\t this.id = null;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = false;\r\n\t this.expression = expression;\r\n\t this.async = true;\r\n\t }\r\n\t return AsyncArrowFunctionExpression;\r\n\t}());\r\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\r\n\tvar AsyncFunctionDeclaration = (function () {\r\n\t function AsyncFunctionDeclaration(id, params, body) {\r\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\r\n\t this.id = id;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = false;\r\n\t this.expression = false;\r\n\t this.async = true;\r\n\t }\r\n\t return AsyncFunctionDeclaration;\r\n\t}());\r\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\r\n\tvar AsyncFunctionExpression = (function () {\r\n\t function AsyncFunctionExpression(id, params, body) {\r\n\t this.type = syntax_1.Syntax.FunctionExpression;\r\n\t this.id = id;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = false;\r\n\t this.expression = false;\r\n\t this.async = true;\r\n\t }\r\n\t return AsyncFunctionExpression;\r\n\t}());\r\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\r\n\tvar AwaitExpression = (function () {\r\n\t function AwaitExpression(argument) {\r\n\t this.type = syntax_1.Syntax.AwaitExpression;\r\n\t this.argument = argument;\r\n\t }\r\n\t return AwaitExpression;\r\n\t}());\r\n\texports.AwaitExpression = AwaitExpression;\r\n\tvar BinaryExpression = (function () {\r\n\t function BinaryExpression(operator, left, right) {\r\n\t var logical = (operator === '||' || operator === '&&');\r\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\r\n\t this.operator = operator;\r\n\t this.left = left;\r\n\t this.right = right;\r\n\t }\r\n\t return BinaryExpression;\r\n\t}());\r\n\texports.BinaryExpression = BinaryExpression;\r\n\tvar BlockStatement = (function () {\r\n\t function BlockStatement(body) {\r\n\t this.type = syntax_1.Syntax.BlockStatement;\r\n\t this.body = body;\r\n\t }\r\n\t return BlockStatement;\r\n\t}());\r\n\texports.BlockStatement = BlockStatement;\r\n\tvar BreakStatement = (function () {\r\n\t function BreakStatement(label) {\r\n\t this.type = syntax_1.Syntax.BreakStatement;\r\n\t this.label = label;\r\n\t }\r\n\t return BreakStatement;\r\n\t}());\r\n\texports.BreakStatement = BreakStatement;\r\n\tvar CallExpression = (function () {\r\n\t function CallExpression(callee, args) {\r\n\t this.type = syntax_1.Syntax.CallExpression;\r\n\t this.callee = callee;\r\n\t this.arguments = args;\r\n\t }\r\n\t return CallExpression;\r\n\t}());\r\n\texports.CallExpression = CallExpression;\r\n\tvar CatchClause = (function () {\r\n\t function CatchClause(param, body) {\r\n\t this.type = syntax_1.Syntax.CatchClause;\r\n\t this.param = param;\r\n\t this.body = body;\r\n\t }\r\n\t return CatchClause;\r\n\t}());\r\n\texports.CatchClause = CatchClause;\r\n\tvar ClassBody = (function () {\r\n\t function ClassBody(body) {\r\n\t this.type = syntax_1.Syntax.ClassBody;\r\n\t this.body = body;\r\n\t }\r\n\t return ClassBody;\r\n\t}());\r\n\texports.ClassBody = ClassBody;\r\n\tvar ClassDeclaration = (function () {\r\n\t function ClassDeclaration(id, superClass, body) {\r\n\t this.type = syntax_1.Syntax.ClassDeclaration;\r\n\t this.id = id;\r\n\t this.superClass = superClass;\r\n\t this.body = body;\r\n\t }\r\n\t return ClassDeclaration;\r\n\t}());\r\n\texports.ClassDeclaration = ClassDeclaration;\r\n\tvar ClassExpression = (function () {\r\n\t function ClassExpression(id, superClass, body) {\r\n\t this.type = syntax_1.Syntax.ClassExpression;\r\n\t this.id = id;\r\n\t this.superClass = superClass;\r\n\t this.body = body;\r\n\t }\r\n\t return ClassExpression;\r\n\t}());\r\n\texports.ClassExpression = ClassExpression;\r\n\tvar ComputedMemberExpression = (function () {\r\n\t function ComputedMemberExpression(object, property) {\r\n\t this.type = syntax_1.Syntax.MemberExpression;\r\n\t this.computed = true;\r\n\t this.object = object;\r\n\t this.property = property;\r\n\t }\r\n\t return ComputedMemberExpression;\r\n\t}());\r\n\texports.ComputedMemberExpression = ComputedMemberExpression;\r\n\tvar ConditionalExpression = (function () {\r\n\t function ConditionalExpression(test, consequent, alternate) {\r\n\t this.type = syntax_1.Syntax.ConditionalExpression;\r\n\t this.test = test;\r\n\t this.consequent = consequent;\r\n\t this.alternate = alternate;\r\n\t }\r\n\t return ConditionalExpression;\r\n\t}());\r\n\texports.ConditionalExpression = ConditionalExpression;\r\n\tvar ContinueStatement = (function () {\r\n\t function ContinueStatement(label) {\r\n\t this.type = syntax_1.Syntax.ContinueStatement;\r\n\t this.label = label;\r\n\t }\r\n\t return ContinueStatement;\r\n\t}());\r\n\texports.ContinueStatement = ContinueStatement;\r\n\tvar DebuggerStatement = (function () {\r\n\t function DebuggerStatement() {\r\n\t this.type = syntax_1.Syntax.DebuggerStatement;\r\n\t }\r\n\t return DebuggerStatement;\r\n\t}());\r\n\texports.DebuggerStatement = DebuggerStatement;\r\n\tvar Directive = (function () {\r\n\t function Directive(expression, directive) {\r\n\t this.type = syntax_1.Syntax.ExpressionStatement;\r\n\t this.expression = expression;\r\n\t this.directive = directive;\r\n\t }\r\n\t return Directive;\r\n\t}());\r\n\texports.Directive = Directive;\r\n\tvar DoWhileStatement = (function () {\r\n\t function DoWhileStatement(body, test) {\r\n\t this.type = syntax_1.Syntax.DoWhileStatement;\r\n\t this.body = body;\r\n\t this.test = test;\r\n\t }\r\n\t return DoWhileStatement;\r\n\t}());\r\n\texports.DoWhileStatement = DoWhileStatement;\r\n\tvar EmptyStatement = (function () {\r\n\t function EmptyStatement() {\r\n\t this.type = syntax_1.Syntax.EmptyStatement;\r\n\t }\r\n\t return EmptyStatement;\r\n\t}());\r\n\texports.EmptyStatement = EmptyStatement;\r\n\tvar ExportAllDeclaration = (function () {\r\n\t function ExportAllDeclaration(source) {\r\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\r\n\t this.source = source;\r\n\t }\r\n\t return ExportAllDeclaration;\r\n\t}());\r\n\texports.ExportAllDeclaration = ExportAllDeclaration;\r\n\tvar ExportDefaultDeclaration = (function () {\r\n\t function ExportDefaultDeclaration(declaration) {\r\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\r\n\t this.declaration = declaration;\r\n\t }\r\n\t return ExportDefaultDeclaration;\r\n\t}());\r\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\r\n\tvar ExportNamedDeclaration = (function () {\r\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\r\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\r\n\t this.declaration = declaration;\r\n\t this.specifiers = specifiers;\r\n\t this.source = source;\r\n\t }\r\n\t return ExportNamedDeclaration;\r\n\t}());\r\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\r\n\tvar ExportSpecifier = (function () {\r\n\t function ExportSpecifier(local, exported) {\r\n\t this.type = syntax_1.Syntax.ExportSpecifier;\r\n\t this.exported = exported;\r\n\t this.local = local;\r\n\t }\r\n\t return ExportSpecifier;\r\n\t}());\r\n\texports.ExportSpecifier = ExportSpecifier;\r\n\tvar ExpressionStatement = (function () {\r\n\t function ExpressionStatement(expression) {\r\n\t this.type = syntax_1.Syntax.ExpressionStatement;\r\n\t this.expression = expression;\r\n\t }\r\n\t return ExpressionStatement;\r\n\t}());\r\n\texports.ExpressionStatement = ExpressionStatement;\r\n\tvar ForInStatement = (function () {\r\n\t function ForInStatement(left, right, body) {\r\n\t this.type = syntax_1.Syntax.ForInStatement;\r\n\t this.left = left;\r\n\t this.right = right;\r\n\t this.body = body;\r\n\t this.each = false;\r\n\t }\r\n\t return ForInStatement;\r\n\t}());\r\n\texports.ForInStatement = ForInStatement;\r\n\tvar ForOfStatement = (function () {\r\n\t function ForOfStatement(left, right, body) {\r\n\t this.type = syntax_1.Syntax.ForOfStatement;\r\n\t this.left = left;\r\n\t this.right = right;\r\n\t this.body = body;\r\n\t }\r\n\t return ForOfStatement;\r\n\t}());\r\n\texports.ForOfStatement = ForOfStatement;\r\n\tvar ForStatement = (function () {\r\n\t function ForStatement(init, test, update, body) {\r\n\t this.type = syntax_1.Syntax.ForStatement;\r\n\t this.init = init;\r\n\t this.test = test;\r\n\t this.update = update;\r\n\t this.body = body;\r\n\t }\r\n\t return ForStatement;\r\n\t}());\r\n\texports.ForStatement = ForStatement;\r\n\tvar FunctionDeclaration = (function () {\r\n\t function FunctionDeclaration(id, params, body, generator) {\r\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\r\n\t this.id = id;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = generator;\r\n\t this.expression = false;\r\n\t this.async = false;\r\n\t }\r\n\t return FunctionDeclaration;\r\n\t}());\r\n\texports.FunctionDeclaration = FunctionDeclaration;\r\n\tvar FunctionExpression = (function () {\r\n\t function FunctionExpression(id, params, body, generator) {\r\n\t this.type = syntax_1.Syntax.FunctionExpression;\r\n\t this.id = id;\r\n\t this.params = params;\r\n\t this.body = body;\r\n\t this.generator = generator;\r\n\t this.expression = false;\r\n\t this.async = false;\r\n\t }\r\n\t return FunctionExpression;\r\n\t}());\r\n\texports.FunctionExpression = FunctionExpression;\r\n\tvar Identifier = (function () {\r\n\t function Identifier(name) {\r\n\t this.type = syntax_1.Syntax.Identifier;\r\n\t this.name = name;\r\n\t }\r\n\t return Identifier;\r\n\t}());\r\n\texports.Identifier = Identifier;\r\n\tvar IfStatement = (function () {\r\n\t function IfStatement(test, consequent, alternate) {\r\n\t this.type = syntax_1.Syntax.IfStatement;\r\n\t this.test = test;\r\n\t this.consequent = consequent;\r\n\t this.alternate = alternate;\r\n\t }\r\n\t return IfStatement;\r\n\t}());\r\n\texports.IfStatement = IfStatement;\r\n\tvar ImportDeclaration = (function () {\r\n\t function ImportDeclaration(specifiers, source) {\r\n\t this.type = syntax_1.Syntax.ImportDeclaration;\r\n\t this.specifiers = specifiers;\r\n\t this.source = source;\r\n\t }\r\n\t return ImportDeclaration;\r\n\t}());\r\n\texports.ImportDeclaration = ImportDeclaration;\r\n\tvar ImportDefaultSpecifier = (function () {\r\n\t function ImportDefaultSpecifier(local) {\r\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\r\n\t this.local = local;\r\n\t }\r\n\t return ImportDefaultSpecifier;\r\n\t}());\r\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\r\n\tvar ImportNamespaceSpecifier = (function () {\r\n\t function ImportNamespaceSpecifier(local) {\r\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\r\n\t this.local = local;\r\n\t }\r\n\t return ImportNamespaceSpecifier;\r\n\t}());\r\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\r\n\tvar ImportSpecifier = (function () {\r\n\t function ImportSpecifier(local, imported) {\r\n\t this.type = syntax_1.Syntax.ImportSpecifier;\r\n\t this.local = local;\r\n\t this.imported = imported;\r\n\t }\r\n\t return ImportSpecifier;\r\n\t}());\r\n\texports.ImportSpecifier = ImportSpecifier;\r\n\tvar LabeledStatement = (function () {\r\n\t function LabeledStatement(label, body) {\r\n\t this.type = syntax_1.Syntax.LabeledStatement;\r\n\t this.label = label;\r\n\t this.body = body;\r\n\t }\r\n\t return LabeledStatement;\r\n\t}());\r\n\texports.LabeledStatement = LabeledStatement;\r\n\tvar Literal = (function () {\r\n\t function Literal(value, raw) {\r\n\t this.type = syntax_1.Syntax.Literal;\r\n\t this.value = value;\r\n\t this.raw = raw;\r\n\t }\r\n\t return Literal;\r\n\t}());\r\n\texports.Literal = Literal;\r\n\tvar MetaProperty = (function () {\r\n\t function MetaProperty(meta, property) {\r\n\t this.type = syntax_1.Syntax.MetaProperty;\r\n\t this.meta = meta;\r\n\t this.property = property;\r\n\t }\r\n\t return MetaProperty;\r\n\t}());\r\n\texports.MetaProperty = MetaProperty;\r\n\tvar MethodDefinition = (function () {\r\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\r\n\t this.type = syntax_1.Syntax.MethodDefinition;\r\n\t this.key = key;\r\n\t this.computed = computed;\r\n\t this.value = value;\r\n\t this.kind = kind;\r\n\t this.static = isStatic;\r\n\t }\r\n\t return MethodDefinition;\r\n\t}());\r\n\texports.MethodDefinition = MethodDefinition;\r\n\tvar Module = (function () {\r\n\t function Module(body) {\r\n\t this.type = syntax_1.Syntax.Program;\r\n\t this.body = body;\r\n\t this.sourceType = 'module';\r\n\t }\r\n\t return Module;\r\n\t}());\r\n\texports.Module = Module;\r\n\tvar NewExpression = (function () {\r\n\t function NewExpression(callee, args) {\r\n\t this.type = syntax_1.Syntax.NewExpression;\r\n\t this.callee = callee;\r\n\t this.arguments = args;\r\n\t }\r\n\t return NewExpression;\r\n\t}());\r\n\texports.NewExpression = NewExpression;\r\n\tvar ObjectExpression = (function () {\r\n\t function ObjectExpression(properties) {\r\n\t this.type = syntax_1.Syntax.ObjectExpression;\r\n\t this.properties = properties;\r\n\t }\r\n\t return ObjectExpression;\r\n\t}());\r\n\texports.ObjectExpression = ObjectExpression;\r\n\tvar ObjectPattern = (function () {\r\n\t function ObjectPattern(properties) {\r\n\t this.type = syntax_1.Syntax.ObjectPattern;\r\n\t this.properties = properties;\r\n\t }\r\n\t return ObjectPattern;\r\n\t}());\r\n\texports.ObjectPattern = ObjectPattern;\r\n\tvar Property = (function () {\r\n\t function Property(kind, key, computed, value, method, shorthand) {\r\n\t this.type = syntax_1.Syntax.Property;\r\n\t this.key = key;\r\n\t this.computed = computed;\r\n\t this.value = value;\r\n\t this.kind = kind;\r\n\t this.method = method;\r\n\t this.shorthand = shorthand;\r\n\t }\r\n\t return Property;\r\n\t}());\r\n\texports.Property = Property;\r\n\tvar RegexLiteral = (function () {\r\n\t function RegexLiteral(value, raw, pattern, flags) {\r\n\t this.type = syntax_1.Syntax.Literal;\r\n\t this.value = value;\r\n\t this.raw = raw;\r\n\t this.regex = { pattern: pattern, flags: flags };\r\n\t }\r\n\t return RegexLiteral;\r\n\t}());\r\n\texports.RegexLiteral = RegexLiteral;\r\n\tvar RestElement = (function () {\r\n\t function RestElement(argument) {\r\n\t this.type = syntax_1.Syntax.RestElement;\r\n\t this.argument = argument;\r\n\t }\r\n\t return RestElement;\r\n\t}());\r\n\texports.RestElement = RestElement;\r\n\tvar ReturnStatement = (function () {\r\n\t function ReturnStatement(argument) {\r\n\t this.type = syntax_1.Syntax.ReturnStatement;\r\n\t this.argument = argument;\r\n\t }\r\n\t return ReturnStatement;\r\n\t}());\r\n\texports.ReturnStatement = ReturnStatement;\r\n\tvar Script = (function () {\r\n\t function Script(body) {\r\n\t this.type = syntax_1.Syntax.Program;\r\n\t this.body = body;\r\n\t this.sourceType = 'script';\r\n\t }\r\n\t return Script;\r\n\t}());\r\n\texports.Script = Script;\r\n\tvar SequenceExpression = (function () {\r\n\t function SequenceExpression(expressions) {\r\n\t this.type = syntax_1.Syntax.SequenceExpression;\r\n\t this.expressions = expressions;\r\n\t }\r\n\t return SequenceExpression;\r\n\t}());\r\n\texports.SequenceExpression = SequenceExpression;\r\n\tvar SpreadElement = (function () {\r\n\t function SpreadElement(argument) {\r\n\t this.type = syntax_1.Syntax.SpreadElement;\r\n\t this.argument = argument;\r\n\t }\r\n\t return SpreadElement;\r\n\t}());\r\n\texports.SpreadElement = SpreadElement;\r\n\tvar StaticMemberExpression = (function () {\r\n\t function StaticMemberExpression(object, property) {\r\n\t this.type = syntax_1.Syntax.MemberExpression;\r\n\t this.computed = false;\r\n\t this.object = object;\r\n\t this.property = property;\r\n\t }\r\n\t return StaticMemberExpression;\r\n\t}());\r\n\texports.StaticMemberExpression = StaticMemberExpression;\r\n\tvar Super = (function () {\r\n\t function Super() {\r\n\t this.type = syntax_1.Syntax.Super;\r\n\t }\r\n\t return Super;\r\n\t}());\r\n\texports.Super = Super;\r\n\tvar SwitchCase = (function () {\r\n\t function SwitchCase(test, consequent) {\r\n\t this.type = syntax_1.Syntax.SwitchCase;\r\n\t this.test = test;\r\n\t this.consequent = consequent;\r\n\t }\r\n\t return SwitchCase;\r\n\t}());\r\n\texports.SwitchCase = SwitchCase;\r\n\tvar SwitchStatement = (function () {\r\n\t function SwitchStatement(discriminant, cases) {\r\n\t this.type = syntax_1.Syntax.SwitchStatement;\r\n\t this.discriminant = discriminant;\r\n\t this.cases = cases;\r\n\t }\r\n\t return SwitchStatement;\r\n\t}());\r\n\texports.SwitchStatement = SwitchStatement;\r\n\tvar TaggedTemplateExpression = (function () {\r\n\t function TaggedTemplateExpression(tag, quasi) {\r\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\r\n\t this.tag = tag;\r\n\t this.quasi = quasi;\r\n\t }\r\n\t return TaggedTemplateExpression;\r\n\t}());\r\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\r\n\tvar TemplateElement = (function () {\r\n\t function TemplateElement(value, tail) {\r\n\t this.type = syntax_1.Syntax.TemplateElement;\r\n\t this.value = value;\r\n\t this.tail = tail;\r\n\t }\r\n\t return TemplateElement;\r\n\t}());\r\n\texports.TemplateElement = TemplateElement;\r\n\tvar TemplateLiteral = (function () {\r\n\t function TemplateLiteral(quasis, expressions) {\r\n\t this.type = syntax_1.Syntax.TemplateLiteral;\r\n\t this.quasis = quasis;\r\n\t this.expressions = expressions;\r\n\t }\r\n\t return TemplateLiteral;\r\n\t}());\r\n\texports.TemplateLiteral = TemplateLiteral;\r\n\tvar ThisExpression = (function () {\r\n\t function ThisExpression() {\r\n\t this.type = syntax_1.Syntax.ThisExpression;\r\n\t }\r\n\t return ThisExpression;\r\n\t}());\r\n\texports.ThisExpression = ThisExpression;\r\n\tvar ThrowStatement = (function () {\r\n\t function ThrowStatement(argument) {\r\n\t this.type = syntax_1.Syntax.ThrowStatement;\r\n\t this.argument = argument;\r\n\t }\r\n\t return ThrowStatement;\r\n\t}());\r\n\texports.ThrowStatement = ThrowStatement;\r\n\tvar TryStatement = (function () {\r\n\t function TryStatement(block, handler, finalizer) {\r\n\t this.type = syntax_1.Syntax.TryStatement;\r\n\t this.block = block;\r\n\t this.handler = handler;\r\n\t this.finalizer = finalizer;\r\n\t }\r\n\t return TryStatement;\r\n\t}());\r\n\texports.TryStatement = TryStatement;\r\n\tvar UnaryExpression = (function () {\r\n\t function UnaryExpression(operator, argument) {\r\n\t this.type = syntax_1.Syntax.UnaryExpression;\r\n\t this.operator = operator;\r\n\t this.argument = argument;\r\n\t this.prefix = true;\r\n\t }\r\n\t return UnaryExpression;\r\n\t}());\r\n\texports.UnaryExpression = UnaryExpression;\r\n\tvar UpdateExpression = (function () {\r\n\t function UpdateExpression(operator, argument, prefix) {\r\n\t this.type = syntax_1.Syntax.UpdateExpression;\r\n\t this.operator = operator;\r\n\t this.argument = argument;\r\n\t this.prefix = prefix;\r\n\t }\r\n\t return UpdateExpression;\r\n\t}());\r\n\texports.UpdateExpression = UpdateExpression;\r\n\tvar VariableDeclaration = (function () {\r\n\t function VariableDeclaration(declarations, kind) {\r\n\t this.type = syntax_1.Syntax.VariableDeclaration;\r\n\t this.declarations = declarations;\r\n\t this.kind = kind;\r\n\t }\r\n\t return VariableDeclaration;\r\n\t}());\r\n\texports.VariableDeclaration = VariableDeclaration;\r\n\tvar VariableDeclarator = (function () {\r\n\t function VariableDeclarator(id, init) {\r\n\t this.type = syntax_1.Syntax.VariableDeclarator;\r\n\t this.id = id;\r\n\t this.init = init;\r\n\t }\r\n\t return VariableDeclarator;\r\n\t}());\r\n\texports.VariableDeclarator = VariableDeclarator;\r\n\tvar WhileStatement = (function () {\r\n\t function WhileStatement(test, body) {\r\n\t this.type = syntax_1.Syntax.WhileStatement;\r\n\t this.test = test;\r\n\t this.body = body;\r\n\t }\r\n\t return WhileStatement;\r\n\t}());\r\n\texports.WhileStatement = WhileStatement;\r\n\tvar WithStatement = (function () {\r\n\t function WithStatement(object, body) {\r\n\t this.type = syntax_1.Syntax.WithStatement;\r\n\t this.object = object;\r\n\t this.body = body;\r\n\t }\r\n\t return WithStatement;\r\n\t}());\r\n\texports.WithStatement = WithStatement;\r\n\tvar YieldExpression = (function () {\r\n\t function YieldExpression(argument, delegate) {\r\n\t this.type = syntax_1.Syntax.YieldExpression;\r\n\t this.argument = argument;\r\n\t this.delegate = delegate;\r\n\t }\r\n\t return YieldExpression;\r\n\t}());\r\n\texports.YieldExpression = YieldExpression;\r\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar assert_1 = __webpack_require__(9);\r\n\tvar error_handler_1 = __webpack_require__(10);\r\n\tvar messages_1 = __webpack_require__(11);\r\n\tvar Node = __webpack_require__(7);\r\n\tvar scanner_1 = __webpack_require__(12);\r\n\tvar syntax_1 = __webpack_require__(2);\r\n\tvar token_1 = __webpack_require__(13);\r\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\r\n\tvar Parser = (function () {\r\n\t function Parser(code, options, delegate) {\r\n\t if (options === void 0) { options = {}; }\r\n\t this.config = {\r\n\t range: (typeof options.range === 'boolean') && options.range,\r\n\t loc: (typeof options.loc === 'boolean') && options.loc,\r\n\t source: null,\r\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\r\n\t comment: (typeof options.comment === 'boolean') && options.comment,\r\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\r\n\t };\r\n\t if (this.config.loc && options.source && options.source !== null) {\r\n\t this.config.source = String(options.source);\r\n\t }\r\n\t this.delegate = delegate;\r\n\t this.errorHandler = new error_handler_1.ErrorHandler();\r\n\t this.errorHandler.tolerant = this.config.tolerant;\r\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\r\n\t this.scanner.trackComment = this.config.comment;\r\n\t this.operatorPrecedence = {\r\n\t ')': 0,\r\n\t ';': 0,\r\n\t ',': 0,\r\n\t '=': 0,\r\n\t ']': 0,\r\n\t '||': 1,\r\n\t '&&': 2,\r\n\t '|': 3,\r\n\t '^': 4,\r\n\t '&': 5,\r\n\t '==': 6,\r\n\t '!=': 6,\r\n\t '===': 6,\r\n\t '!==': 6,\r\n\t '<': 7,\r\n\t '>': 7,\r\n\t '<=': 7,\r\n\t '>=': 7,\r\n\t '<<': 8,\r\n\t '>>': 8,\r\n\t '>>>': 8,\r\n\t '+': 9,\r\n\t '-': 9,\r\n\t '*': 11,\r\n\t '/': 11,\r\n\t '%': 11\r\n\t };\r\n\t this.lookahead = {\r\n\t type: 2 /* EOF */,\r\n\t value: '',\r\n\t lineNumber: this.scanner.lineNumber,\r\n\t lineStart: 0,\r\n\t start: 0,\r\n\t end: 0\r\n\t };\r\n\t this.hasLineTerminator = false;\r\n\t this.context = {\r\n\t isModule: false,\r\n\t await: false,\r\n\t allowIn: true,\r\n\t allowStrictDirective: true,\r\n\t allowYield: true,\r\n\t firstCoverInitializedNameError: null,\r\n\t isAssignmentTarget: false,\r\n\t isBindingElement: false,\r\n\t inFunctionBody: false,\r\n\t inIteration: false,\r\n\t inSwitch: false,\r\n\t labelSet: {},\r\n\t strict: false\r\n\t };\r\n\t this.tokens = [];\r\n\t this.startMarker = {\r\n\t index: 0,\r\n\t line: this.scanner.lineNumber,\r\n\t column: 0\r\n\t };\r\n\t this.lastMarker = {\r\n\t index: 0,\r\n\t line: this.scanner.lineNumber,\r\n\t column: 0\r\n\t };\r\n\t this.nextToken();\r\n\t this.lastMarker = {\r\n\t index: this.scanner.index,\r\n\t line: this.scanner.lineNumber,\r\n\t column: this.scanner.index - this.scanner.lineStart\r\n\t };\r\n\t }\r\n\t Parser.prototype.throwError = function (messageFormat) {\r\n\t var values = [];\r\n\t for (var _i = 1; _i < arguments.length; _i++) {\r\n\t values[_i - 1] = arguments[_i];\r\n\t }\r\n\t var args = Array.prototype.slice.call(arguments, 1);\r\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\r\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\r\n\t return args[idx];\r\n\t });\r\n\t var index = this.lastMarker.index;\r\n\t var line = this.lastMarker.line;\r\n\t var column = this.lastMarker.column + 1;\r\n\t throw this.errorHandler.createError(index, line, column, msg);\r\n\t };\r\n\t Parser.prototype.tolerateError = function (messageFormat) {\r\n\t var values = [];\r\n\t for (var _i = 1; _i < arguments.length; _i++) {\r\n\t values[_i - 1] = arguments[_i];\r\n\t }\r\n\t var args = Array.prototype.slice.call(arguments, 1);\r\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\r\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\r\n\t return args[idx];\r\n\t });\r\n\t var index = this.lastMarker.index;\r\n\t var line = this.scanner.lineNumber;\r\n\t var column = this.lastMarker.column + 1;\r\n\t this.errorHandler.tolerateError(index, line, column, msg);\r\n\t };\r\n\t // Throw an exception because of the token.\r\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\r\n\t var msg = message || messages_1.Messages.UnexpectedToken;\r\n\t var value;\r\n\t if (token) {\r\n\t if (!message) {\r\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\r\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\r\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\r\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\r\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\r\n\t messages_1.Messages.UnexpectedToken;\r\n\t if (token.type === 4 /* Keyword */) {\r\n\t if (this.scanner.isFutureReservedWord(token.value)) {\r\n\t msg = messages_1.Messages.UnexpectedReserved;\r\n\t }\r\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\r\n\t msg = messages_1.Messages.StrictReservedWord;\r\n\t }\r\n\t }\r\n\t }\r\n\t value = token.value;\r\n\t }\r\n\t else {\r\n\t value = 'ILLEGAL';\r\n\t }\r\n\t msg = msg.replace('%0', value);\r\n\t if (token && typeof token.lineNumber === 'number') {\r\n\t var index = token.start;\r\n\t var line = token.lineNumber;\r\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\r\n\t var column = token.start - lastMarkerLineStart + 1;\r\n\t return this.errorHandler.createError(index, line, column, msg);\r\n\t }\r\n\t else {\r\n\t var index = this.lastMarker.index;\r\n\t var line = this.lastMarker.line;\r\n\t var column = this.lastMarker.column + 1;\r\n\t return this.errorHandler.createError(index, line, column, msg);\r\n\t }\r\n\t };\r\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\r\n\t throw this.unexpectedTokenError(token, message);\r\n\t };\r\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\r\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\r\n\t };\r\n\t Parser.prototype.collectComments = function () {\r\n\t if (!this.config.comment) {\r\n\t this.scanner.scanComments();\r\n\t }\r\n\t else {\r\n\t var comments = this.scanner.scanComments();\r\n\t if (comments.length > 0 && this.delegate) {\r\n\t for (var i = 0; i < comments.length; ++i) {\r\n\t var e = comments[i];\r\n\t var node = void 0;\r\n\t node = {\r\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\r\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\r\n\t };\r\n\t if (this.config.range) {\r\n\t node.range = e.range;\r\n\t }\r\n\t if (this.config.loc) {\r\n\t node.loc = e.loc;\r\n\t }\r\n\t var metadata = {\r\n\t start: {\r\n\t line: e.loc.start.line,\r\n\t column: e.loc.start.column,\r\n\t offset: e.range[0]\r\n\t },\r\n\t end: {\r\n\t line: e.loc.end.line,\r\n\t column: e.loc.end.column,\r\n\t offset: e.range[1]\r\n\t }\r\n\t };\r\n\t this.delegate(node, metadata);\r\n\t }\r\n\t }\r\n\t }\r\n\t };\r\n\t // From internal representation to an external structure\r\n\t Parser.prototype.getTokenRaw = function (token) {\r\n\t return this.scanner.source.slice(token.start, token.end);\r\n\t };\r\n\t Parser.prototype.convertToken = function (token) {\r\n\t var t = {\r\n\t type: token_1.TokenName[token.type],\r\n\t value: this.getTokenRaw(token)\r\n\t };\r\n\t if (this.config.range) {\r\n\t t.range = [token.start, token.end];\r\n\t }\r\n\t if (this.config.loc) {\r\n\t t.loc = {\r\n\t start: {\r\n\t line: this.startMarker.line,\r\n\t column: this.startMarker.column\r\n\t },\r\n\t end: {\r\n\t line: this.scanner.lineNumber,\r\n\t column: this.scanner.index - this.scanner.lineStart\r\n\t }\r\n\t };\r\n\t }\r\n\t if (token.type === 9 /* RegularExpression */) {\r\n\t var pattern = token.pattern;\r\n\t var flags = token.flags;\r\n\t t.regex = { pattern: pattern, flags: flags };\r\n\t }\r\n\t return t;\r\n\t };\r\n\t Parser.prototype.nextToken = function () {\r\n\t var token = this.lookahead;\r\n\t this.lastMarker.index = this.scanner.index;\r\n\t this.lastMarker.line = this.scanner.lineNumber;\r\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t this.collectComments();\r\n\t if (this.scanner.index !== this.startMarker.index) {\r\n\t this.startMarker.index = this.scanner.index;\r\n\t this.startMarker.line = this.scanner.lineNumber;\r\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\r\n\t }\r\n\t var next = this.scanner.lex();\r\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\r\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\r\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\r\n\t next.type = 4 /* Keyword */;\r\n\t }\r\n\t }\r\n\t this.lookahead = next;\r\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\r\n\t this.tokens.push(this.convertToken(next));\r\n\t }\r\n\t return token;\r\n\t };\r\n\t Parser.prototype.nextRegexToken = function () {\r\n\t this.collectComments();\r\n\t var token = this.scanner.scanRegExp();\r\n\t if (this.config.tokens) {\r\n\t // Pop the previous token, '/' or '/='\r\n\t // This is added from the lookahead token.\r\n\t this.tokens.pop();\r\n\t this.tokens.push(this.convertToken(token));\r\n\t }\r\n\t // Prime the next lookahead.\r\n\t this.lookahead = token;\r\n\t this.nextToken();\r\n\t return token;\r\n\t };\r\n\t Parser.prototype.createNode = function () {\r\n\t return {\r\n\t index: this.startMarker.index,\r\n\t line: this.startMarker.line,\r\n\t column: this.startMarker.column\r\n\t };\r\n\t };\r\n\t Parser.prototype.startNode = function (token) {\r\n\t return {\r\n\t index: token.start,\r\n\t line: token.lineNumber,\r\n\t column: token.start - token.lineStart\r\n\t };\r\n\t };\r\n\t Parser.prototype.finalize = function (marker, node) {\r\n\t if (this.config.range) {\r\n\t node.range = [marker.index, this.lastMarker.index];\r\n\t }\r\n\t if (this.config.loc) {\r\n\t node.loc = {\r\n\t start: {\r\n\t line: marker.line,\r\n\t column: marker.column,\r\n\t },\r\n\t end: {\r\n\t line: this.lastMarker.line,\r\n\t column: this.lastMarker.column\r\n\t }\r\n\t };\r\n\t if (this.config.source) {\r\n\t node.loc.source = this.config.source;\r\n\t }\r\n\t }\r\n\t if (this.delegate) {\r\n\t var metadata = {\r\n\t start: {\r\n\t line: marker.line,\r\n\t column: marker.column,\r\n\t offset: marker.index\r\n\t },\r\n\t end: {\r\n\t line: this.lastMarker.line,\r\n\t column: this.lastMarker.column,\r\n\t offset: this.lastMarker.index\r\n\t }\r\n\t };\r\n\t this.delegate(node, metadata);\r\n\t }\r\n\t return node;\r\n\t };\r\n\t // Expect the next token to match the specified punctuator.\r\n\t // If not, an exception will be thrown.\r\n\t Parser.prototype.expect = function (value) {\r\n\t var token = this.nextToken();\r\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t };\r\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\r\n\t Parser.prototype.expectCommaSeparator = function () {\r\n\t if (this.config.tolerant) {\r\n\t var token = this.lookahead;\r\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\r\n\t this.nextToken();\r\n\t }\r\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\r\n\t this.nextToken();\r\n\t this.tolerateUnexpectedToken(token);\r\n\t }\r\n\t else {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.expect(',');\r\n\t }\r\n\t };\r\n\t // Expect the next token to match the specified keyword.\r\n\t // If not, an exception will be thrown.\r\n\t Parser.prototype.expectKeyword = function (keyword) {\r\n\t var token = this.nextToken();\r\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t };\r\n\t // Return true if the next token matches the specified punctuator.\r\n\t Parser.prototype.match = function (value) {\r\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\r\n\t };\r\n\t // Return true if the next token matches the specified keyword\r\n\t Parser.prototype.matchKeyword = function (keyword) {\r\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\r\n\t };\r\n\t // Return true if the next token matches the specified contextual keyword\r\n\t // (where an identifier is sometimes a keyword depending on the context)\r\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\r\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\r\n\t };\r\n\t // Return true if the next token is an assignment operator\r\n\t Parser.prototype.matchAssign = function () {\r\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\r\n\t return false;\r\n\t }\r\n\t var op = this.lookahead.value;\r\n\t return op === '=' ||\r\n\t op === '*=' ||\r\n\t op === '**=' ||\r\n\t op === '/=' ||\r\n\t op === '%=' ||\r\n\t op === '+=' ||\r\n\t op === '-=' ||\r\n\t op === '<<=' ||\r\n\t op === '>>=' ||\r\n\t op === '>>>=' ||\r\n\t op === '&=' ||\r\n\t op === '^=' ||\r\n\t op === '|=';\r\n\t };\r\n\t // Cover grammar support.\r\n\t //\r\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\r\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\r\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\r\n\t //\r\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\r\n\t // after the outermost pair is closed. They are:\r\n\t //\r\n\t // 1. AssignmentExpression\r\n\t // 2. BindingElements\r\n\t // 3. AssignmentTargets\r\n\t //\r\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\r\n\t // binding element or assignment target.\r\n\t //\r\n\t // The three productions have the relationship:\r\n\t //\r\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\r\n\t //\r\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\r\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\r\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\r\n\t //\r\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\r\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\r\n\t // the CoverInitializedName check is conducted.\r\n\t //\r\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\r\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\r\n\t // pattern. The CoverInitializedName check is deferred.\r\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\r\n\t var previousIsBindingElement = this.context.isBindingElement;\r\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\r\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\r\n\t this.context.isBindingElement = true;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.context.firstCoverInitializedNameError = null;\r\n\t var result = parseFunction.call(this);\r\n\t if (this.context.firstCoverInitializedNameError !== null) {\r\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\r\n\t }\r\n\t this.context.isBindingElement = previousIsBindingElement;\r\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\r\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\r\n\t return result;\r\n\t };\r\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\r\n\t var previousIsBindingElement = this.context.isBindingElement;\r\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\r\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\r\n\t this.context.isBindingElement = true;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.context.firstCoverInitializedNameError = null;\r\n\t var result = parseFunction.call(this);\r\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\r\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\r\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\r\n\t return result;\r\n\t };\r\n\t Parser.prototype.consumeSemicolon = function () {\r\n\t if (this.match(';')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else if (!this.hasLineTerminator) {\r\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t this.lastMarker.index = this.startMarker.index;\r\n\t this.lastMarker.line = this.startMarker.line;\r\n\t this.lastMarker.column = this.startMarker.column;\r\n\t }\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\r\n\t Parser.prototype.parsePrimaryExpression = function () {\r\n\t var node = this.createNode();\r\n\t var expr;\r\n\t var token, raw;\r\n\t switch (this.lookahead.type) {\r\n\t case 3 /* Identifier */:\r\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\r\n\t this.tolerateUnexpectedToken(this.lookahead);\r\n\t }\r\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\r\n\t break;\r\n\t case 6 /* NumericLiteral */:\r\n\t case 8 /* StringLiteral */:\r\n\t if (this.context.strict && this.lookahead.octal) {\r\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\r\n\t }\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t token = this.nextToken();\r\n\t raw = this.getTokenRaw(token);\r\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\r\n\t break;\r\n\t case 1 /* BooleanLiteral */:\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t token = this.nextToken();\r\n\t raw = this.getTokenRaw(token);\r\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\r\n\t break;\r\n\t case 5 /* NullLiteral */:\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t token = this.nextToken();\r\n\t raw = this.getTokenRaw(token);\r\n\t expr = this.finalize(node, new Node.Literal(null, raw));\r\n\t break;\r\n\t case 10 /* Template */:\r\n\t expr = this.parseTemplateLiteral();\r\n\t break;\r\n\t case 7 /* Punctuator */:\r\n\t switch (this.lookahead.value) {\r\n\t case '(':\r\n\t this.context.isBindingElement = false;\r\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\r\n\t break;\r\n\t case '[':\r\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\r\n\t break;\r\n\t case '{':\r\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\r\n\t break;\r\n\t case '/':\r\n\t case '/=':\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t this.scanner.index = this.startMarker.index;\r\n\t token = this.nextRegexToken();\r\n\t raw = this.getTokenRaw(token);\r\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\r\n\t break;\r\n\t default:\r\n\t expr = this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t break;\r\n\t case 4 /* Keyword */:\r\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\r\n\t expr = this.parseIdentifierName();\r\n\t }\r\n\t else if (!this.context.strict && this.matchKeyword('let')) {\r\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\r\n\t }\r\n\t else {\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t if (this.matchKeyword('function')) {\r\n\t expr = this.parseFunctionExpression();\r\n\t }\r\n\t else if (this.matchKeyword('this')) {\r\n\t this.nextToken();\r\n\t expr = this.finalize(node, new Node.ThisExpression());\r\n\t }\r\n\t else if (this.matchKeyword('class')) {\r\n\t expr = this.parseClassExpression();\r\n\t }\r\n\t else {\r\n\t expr = this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t }\r\n\t break;\r\n\t default:\r\n\t expr = this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\r\n\t Parser.prototype.parseSpreadElement = function () {\r\n\t var node = this.createNode();\r\n\t this.expect('...');\r\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\r\n\t return this.finalize(node, new Node.SpreadElement(arg));\r\n\t };\r\n\t Parser.prototype.parseArrayInitializer = function () {\r\n\t var node = this.createNode();\r\n\t var elements = [];\r\n\t this.expect('[');\r\n\t while (!this.match(']')) {\r\n\t if (this.match(',')) {\r\n\t this.nextToken();\r\n\t elements.push(null);\r\n\t }\r\n\t else if (this.match('...')) {\r\n\t var element = this.parseSpreadElement();\r\n\t if (!this.match(']')) {\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t this.expect(',');\r\n\t }\r\n\t elements.push(element);\r\n\t }\r\n\t else {\r\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\r\n\t if (!this.match(']')) {\r\n\t this.expect(',');\r\n\t }\r\n\t }\r\n\t }\r\n\t this.expect(']');\r\n\t return this.finalize(node, new Node.ArrayExpression(elements));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\r\n\t Parser.prototype.parsePropertyMethod = function (params) {\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t var previousStrict = this.context.strict;\r\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\r\n\t this.context.allowStrictDirective = params.simple;\r\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\r\n\t if (this.context.strict && params.firstRestricted) {\r\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\r\n\t }\r\n\t if (this.context.strict && params.stricted) {\r\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\r\n\t }\r\n\t this.context.strict = previousStrict;\r\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\r\n\t return body;\r\n\t };\r\n\t Parser.prototype.parsePropertyMethodFunction = function () {\r\n\t var isGenerator = false;\r\n\t var node = this.createNode();\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = false;\r\n\t var params = this.parseFormalParameters();\r\n\t var method = this.parsePropertyMethod(params);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\r\n\t };\r\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\r\n\t var node = this.createNode();\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t var previousAwait = this.context.await;\r\n\t this.context.allowYield = false;\r\n\t this.context.await = true;\r\n\t var params = this.parseFormalParameters();\r\n\t var method = this.parsePropertyMethod(params);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t this.context.await = previousAwait;\r\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\r\n\t };\r\n\t Parser.prototype.parseObjectPropertyKey = function () {\r\n\t var node = this.createNode();\r\n\t var token = this.nextToken();\r\n\t var key;\r\n\t switch (token.type) {\r\n\t case 8 /* StringLiteral */:\r\n\t case 6 /* NumericLiteral */:\r\n\t if (this.context.strict && token.octal) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\r\n\t }\r\n\t var raw = this.getTokenRaw(token);\r\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\r\n\t break;\r\n\t case 3 /* Identifier */:\r\n\t case 1 /* BooleanLiteral */:\r\n\t case 5 /* NullLiteral */:\r\n\t case 4 /* Keyword */:\r\n\t key = this.finalize(node, new Node.Identifier(token.value));\r\n\t break;\r\n\t case 7 /* Punctuator */:\r\n\t if (token.value === '[') {\r\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t this.expect(']');\r\n\t }\r\n\t else {\r\n\t key = this.throwUnexpectedToken(token);\r\n\t }\r\n\t break;\r\n\t default:\r\n\t key = this.throwUnexpectedToken(token);\r\n\t }\r\n\t return key;\r\n\t };\r\n\t Parser.prototype.isPropertyKey = function (key, value) {\r\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\r\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\r\n\t };\r\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\r\n\t var node = this.createNode();\r\n\t var token = this.lookahead;\r\n\t var kind;\r\n\t var key = null;\r\n\t var value = null;\r\n\t var computed = false;\r\n\t var method = false;\r\n\t var shorthand = false;\r\n\t var isAsync = false;\r\n\t if (token.type === 3 /* Identifier */) {\r\n\t var id = token.value;\r\n\t this.nextToken();\r\n\t computed = this.match('[');\r\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\r\n\t !this.match(':') && !this.match('(') && !this.match('*');\r\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\r\n\t }\r\n\t else if (this.match('*')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else {\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t }\r\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\r\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\r\n\t kind = 'get';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t this.context.allowYield = false;\r\n\t value = this.parseGetterMethod();\r\n\t }\r\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\r\n\t kind = 'set';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t value = this.parseSetterMethod();\r\n\t }\r\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\r\n\t kind = 'init';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t value = this.parseGeneratorMethod();\r\n\t method = true;\r\n\t }\r\n\t else {\r\n\t if (!key) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t kind = 'init';\r\n\t if (this.match(':') && !isAsync) {\r\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\r\n\t if (hasProto.value) {\r\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\r\n\t }\r\n\t hasProto.value = true;\r\n\t }\r\n\t this.nextToken();\r\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\r\n\t }\r\n\t else if (this.match('(')) {\r\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\r\n\t method = true;\r\n\t }\r\n\t else if (token.type === 3 /* Identifier */) {\r\n\t var id = this.finalize(node, new Node.Identifier(token.value));\r\n\t if (this.match('=')) {\r\n\t this.context.firstCoverInitializedNameError = this.lookahead;\r\n\t this.nextToken();\r\n\t shorthand = true;\r\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\r\n\t }\r\n\t else {\r\n\t shorthand = true;\r\n\t value = id;\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t }\r\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\r\n\t };\r\n\t Parser.prototype.parseObjectInitializer = function () {\r\n\t var node = this.createNode();\r\n\t this.expect('{');\r\n\t var properties = [];\r\n\t var hasProto = { value: false };\r\n\t while (!this.match('}')) {\r\n\t properties.push(this.parseObjectProperty(hasProto));\r\n\t if (!this.match('}')) {\r\n\t this.expectCommaSeparator();\r\n\t }\r\n\t }\r\n\t this.expect('}');\r\n\t return this.finalize(node, new Node.ObjectExpression(properties));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-template-literals\r\n\t Parser.prototype.parseTemplateHead = function () {\r\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\r\n\t var node = this.createNode();\r\n\t var token = this.nextToken();\r\n\t var raw = token.value;\r\n\t var cooked = token.cooked;\r\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\r\n\t };\r\n\t Parser.prototype.parseTemplateElement = function () {\r\n\t if (this.lookahead.type !== 10 /* Template */) {\r\n\t this.throwUnexpectedToken();\r\n\t }\r\n\t var node = this.createNode();\r\n\t var token = this.nextToken();\r\n\t var raw = token.value;\r\n\t var cooked = token.cooked;\r\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\r\n\t };\r\n\t Parser.prototype.parseTemplateLiteral = function () {\r\n\t var node = this.createNode();\r\n\t var expressions = [];\r\n\t var quasis = [];\r\n\t var quasi = this.parseTemplateHead();\r\n\t quasis.push(quasi);\r\n\t while (!quasi.tail) {\r\n\t expressions.push(this.parseExpression());\r\n\t quasi = this.parseTemplateElement();\r\n\t quasis.push(quasi);\r\n\t }\r\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\r\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\r\n\t switch (expr.type) {\r\n\t case syntax_1.Syntax.Identifier:\r\n\t case syntax_1.Syntax.MemberExpression:\r\n\t case syntax_1.Syntax.RestElement:\r\n\t case syntax_1.Syntax.AssignmentPattern:\r\n\t break;\r\n\t case syntax_1.Syntax.SpreadElement:\r\n\t expr.type = syntax_1.Syntax.RestElement;\r\n\t this.reinterpretExpressionAsPattern(expr.argument);\r\n\t break;\r\n\t case syntax_1.Syntax.ArrayExpression:\r\n\t expr.type = syntax_1.Syntax.ArrayPattern;\r\n\t for (var i = 0; i < expr.elements.length; i++) {\r\n\t if (expr.elements[i] !== null) {\r\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\r\n\t }\r\n\t }\r\n\t break;\r\n\t case syntax_1.Syntax.ObjectExpression:\r\n\t expr.type = syntax_1.Syntax.ObjectPattern;\r\n\t for (var i = 0; i < expr.properties.length; i++) {\r\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\r\n\t }\r\n\t break;\r\n\t case syntax_1.Syntax.AssignmentExpression:\r\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\r\n\t delete expr.operator;\r\n\t this.reinterpretExpressionAsPattern(expr.left);\r\n\t break;\r\n\t default:\r\n\t // Allow other node type for tolerant parsing.\r\n\t break;\r\n\t }\r\n\t };\r\n\t Parser.prototype.parseGroupExpression = function () {\r\n\t var expr;\r\n\t this.expect('(');\r\n\t if (this.match(')')) {\r\n\t this.nextToken();\r\n\t if (!this.match('=>')) {\r\n\t this.expect('=>');\r\n\t }\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: [],\r\n\t async: false\r\n\t };\r\n\t }\r\n\t else {\r\n\t var startToken = this.lookahead;\r\n\t var params = [];\r\n\t if (this.match('...')) {\r\n\t expr = this.parseRestElement(params);\r\n\t this.expect(')');\r\n\t if (!this.match('=>')) {\r\n\t this.expect('=>');\r\n\t }\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: [expr],\r\n\t async: false\r\n\t };\r\n\t }\r\n\t else {\r\n\t var arrow = false;\r\n\t this.context.isBindingElement = true;\r\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\r\n\t if (this.match(',')) {\r\n\t var expressions = [];\r\n\t this.context.isAssignmentTarget = false;\r\n\t expressions.push(expr);\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t if (!this.match(',')) {\r\n\t break;\r\n\t }\r\n\t this.nextToken();\r\n\t if (this.match(')')) {\r\n\t this.nextToken();\r\n\t for (var i = 0; i < expressions.length; i++) {\r\n\t this.reinterpretExpressionAsPattern(expressions[i]);\r\n\t }\r\n\t arrow = true;\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: expressions,\r\n\t async: false\r\n\t };\r\n\t }\r\n\t else if (this.match('...')) {\r\n\t if (!this.context.isBindingElement) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t expressions.push(this.parseRestElement(params));\r\n\t this.expect(')');\r\n\t if (!this.match('=>')) {\r\n\t this.expect('=>');\r\n\t }\r\n\t this.context.isBindingElement = false;\r\n\t for (var i = 0; i < expressions.length; i++) {\r\n\t this.reinterpretExpressionAsPattern(expressions[i]);\r\n\t }\r\n\t arrow = true;\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: expressions,\r\n\t async: false\r\n\t };\r\n\t }\r\n\t else {\r\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\r\n\t }\r\n\t if (arrow) {\r\n\t break;\r\n\t }\r\n\t }\r\n\t if (!arrow) {\r\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\r\n\t }\r\n\t }\r\n\t if (!arrow) {\r\n\t this.expect(')');\r\n\t if (this.match('=>')) {\r\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\r\n\t arrow = true;\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: [expr],\r\n\t async: false\r\n\t };\r\n\t }\r\n\t if (!arrow) {\r\n\t if (!this.context.isBindingElement) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\r\n\t for (var i = 0; i < expr.expressions.length; i++) {\r\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.reinterpretExpressionAsPattern(expr);\r\n\t }\r\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: parameters,\r\n\t async: false\r\n\t };\r\n\t }\r\n\t }\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t }\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\r\n\t Parser.prototype.parseArguments = function () {\r\n\t this.expect('(');\r\n\t var args = [];\r\n\t if (!this.match(')')) {\r\n\t while (true) {\r\n\t var expr = this.match('...') ? this.parseSpreadElement() :\r\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t args.push(expr);\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t this.expectCommaSeparator();\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t this.expect(')');\r\n\t return args;\r\n\t };\r\n\t Parser.prototype.isIdentifierName = function (token) {\r\n\t return token.type === 3 /* Identifier */ ||\r\n\t token.type === 4 /* Keyword */ ||\r\n\t token.type === 1 /* BooleanLiteral */ ||\r\n\t token.type === 5 /* NullLiteral */;\r\n\t };\r\n\t Parser.prototype.parseIdentifierName = function () {\r\n\t var node = this.createNode();\r\n\t var token = this.nextToken();\r\n\t if (!this.isIdentifierName(token)) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t return this.finalize(node, new Node.Identifier(token.value));\r\n\t };\r\n\t Parser.prototype.parseNewExpression = function () {\r\n\t var node = this.createNode();\r\n\t var id = this.parseIdentifierName();\r\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\r\n\t var expr;\r\n\t if (this.match('.')) {\r\n\t this.nextToken();\r\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\r\n\t var property = this.parseIdentifierName();\r\n\t expr = new Node.MetaProperty(id, property);\r\n\t }\r\n\t else {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t }\r\n\t else {\r\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\r\n\t var args = this.match('(') ? this.parseArguments() : [];\r\n\t expr = new Node.NewExpression(callee, args);\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t return this.finalize(node, expr);\r\n\t };\r\n\t Parser.prototype.parseAsyncArgument = function () {\r\n\t var arg = this.parseAssignmentExpression();\r\n\t this.context.firstCoverInitializedNameError = null;\r\n\t return arg;\r\n\t };\r\n\t Parser.prototype.parseAsyncArguments = function () {\r\n\t this.expect('(');\r\n\t var args = [];\r\n\t if (!this.match(')')) {\r\n\t while (true) {\r\n\t var expr = this.match('...') ? this.parseSpreadElement() :\r\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\r\n\t args.push(expr);\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t this.expectCommaSeparator();\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t this.expect(')');\r\n\t return args;\r\n\t };\r\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\r\n\t var startToken = this.lookahead;\r\n\t var maybeAsync = this.matchContextualKeyword('async');\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = true;\r\n\t var expr;\r\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\r\n\t expr = this.createNode();\r\n\t this.nextToken();\r\n\t expr = this.finalize(expr, new Node.Super());\r\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t }\r\n\t else {\r\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\r\n\t }\r\n\t while (true) {\r\n\t if (this.match('.')) {\r\n\t this.context.isBindingElement = false;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.expect('.');\r\n\t var property = this.parseIdentifierName();\r\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\r\n\t }\r\n\t else if (this.match('(')) {\r\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\r\n\t this.context.isBindingElement = false;\r\n\t this.context.isAssignmentTarget = false;\r\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\r\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\r\n\t if (asyncArrow && this.match('=>')) {\r\n\t for (var i = 0; i < args.length; ++i) {\r\n\t this.reinterpretExpressionAsPattern(args[i]);\r\n\t }\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: args,\r\n\t async: true\r\n\t };\r\n\t }\r\n\t }\r\n\t else if (this.match('[')) {\r\n\t this.context.isBindingElement = false;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.expect('[');\r\n\t var property = this.isolateCoverGrammar(this.parseExpression);\r\n\t this.expect(']');\r\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\r\n\t }\r\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\r\n\t var quasi = this.parseTemplateLiteral();\r\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t this.context.allowIn = previousAllowIn;\r\n\t return expr;\r\n\t };\r\n\t Parser.prototype.parseSuper = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('super');\r\n\t if (!this.match('[') && !this.match('.')) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t return this.finalize(node, new Node.Super());\r\n\t };\r\n\t Parser.prototype.parseLeftHandSideExpression = function () {\r\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\r\n\t var node = this.startNode(this.lookahead);\r\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\r\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\r\n\t while (true) {\r\n\t if (this.match('[')) {\r\n\t this.context.isBindingElement = false;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.expect('[');\r\n\t var property = this.isolateCoverGrammar(this.parseExpression);\r\n\t this.expect(']');\r\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\r\n\t }\r\n\t else if (this.match('.')) {\r\n\t this.context.isBindingElement = false;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.expect('.');\r\n\t var property = this.parseIdentifierName();\r\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\r\n\t }\r\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\r\n\t var quasi = this.parseTemplateLiteral();\r\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\r\n\t Parser.prototype.parseUpdateExpression = function () {\r\n\t var expr;\r\n\t var startToken = this.lookahead;\r\n\t if (this.match('++') || this.match('--')) {\r\n\t var node = this.startNode(startToken);\r\n\t var token = this.nextToken();\r\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\r\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\r\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\r\n\t }\r\n\t if (!this.context.isAssignmentTarget) {\r\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\r\n\t }\r\n\t var prefix = true;\r\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t else {\r\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\r\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\r\n\t if (this.match('++') || this.match('--')) {\r\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\r\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\r\n\t }\r\n\t if (!this.context.isAssignmentTarget) {\r\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\r\n\t }\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t var operator = this.nextToken().value;\r\n\t var prefix = false;\r\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\r\n\t }\r\n\t }\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\r\n\t Parser.prototype.parseAwaitExpression = function () {\r\n\t var node = this.createNode();\r\n\t this.nextToken();\r\n\t var argument = this.parseUnaryExpression();\r\n\t return this.finalize(node, new Node.AwaitExpression(argument));\r\n\t };\r\n\t Parser.prototype.parseUnaryExpression = function () {\r\n\t var expr;\r\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\r\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\r\n\t var node = this.startNode(this.lookahead);\r\n\t var token = this.nextToken();\r\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\r\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\r\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\r\n\t this.tolerateError(messages_1.Messages.StrictDelete);\r\n\t }\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\r\n\t expr = this.parseAwaitExpression();\r\n\t }\r\n\t else {\r\n\t expr = this.parseUpdateExpression();\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t Parser.prototype.parseExponentiationExpression = function () {\r\n\t var startToken = this.lookahead;\r\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\r\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\r\n\t this.nextToken();\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t var left = expr;\r\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\r\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\r\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\r\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\r\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\r\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\r\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\r\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\r\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\r\n\t Parser.prototype.binaryPrecedence = function (token) {\r\n\t var op = token.value;\r\n\t var precedence;\r\n\t if (token.type === 7 /* Punctuator */) {\r\n\t precedence = this.operatorPrecedence[op] || 0;\r\n\t }\r\n\t else if (token.type === 4 /* Keyword */) {\r\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\r\n\t }\r\n\t else {\r\n\t precedence = 0;\r\n\t }\r\n\t return precedence;\r\n\t };\r\n\t Parser.prototype.parseBinaryExpression = function () {\r\n\t var startToken = this.lookahead;\r\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\r\n\t var token = this.lookahead;\r\n\t var prec = this.binaryPrecedence(token);\r\n\t if (prec > 0) {\r\n\t this.nextToken();\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t var markers = [startToken, this.lookahead];\r\n\t var left = expr;\r\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\r\n\t var stack = [left, token.value, right];\r\n\t var precedences = [prec];\r\n\t while (true) {\r\n\t prec = this.binaryPrecedence(this.lookahead);\r\n\t if (prec <= 0) {\r\n\t break;\r\n\t }\r\n\t // Reduce: make a binary expression from the three topmost entries.\r\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\r\n\t right = stack.pop();\r\n\t var operator = stack.pop();\r\n\t precedences.pop();\r\n\t left = stack.pop();\r\n\t markers.pop();\r\n\t var node = this.startNode(markers[markers.length - 1]);\r\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\r\n\t }\r\n\t // Shift.\r\n\t stack.push(this.nextToken().value);\r\n\t precedences.push(prec);\r\n\t markers.push(this.lookahead);\r\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\r\n\t }\r\n\t // Final reduce to clean-up the stack.\r\n\t var i = stack.length - 1;\r\n\t expr = stack[i];\r\n\t markers.pop();\r\n\t while (i > 1) {\r\n\t var node = this.startNode(markers.pop());\r\n\t var operator = stack[i - 1];\r\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\r\n\t i -= 2;\r\n\t }\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\r\n\t Parser.prototype.parseConditionalExpression = function () {\r\n\t var startToken = this.lookahead;\r\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\r\n\t if (this.match('?')) {\r\n\t this.nextToken();\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = true;\r\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t this.context.allowIn = previousAllowIn;\r\n\t this.expect(':');\r\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\r\n\t Parser.prototype.checkPatternParam = function (options, param) {\r\n\t switch (param.type) {\r\n\t case syntax_1.Syntax.Identifier:\r\n\t this.validateParam(options, param, param.name);\r\n\t break;\r\n\t case syntax_1.Syntax.RestElement:\r\n\t this.checkPatternParam(options, param.argument);\r\n\t break;\r\n\t case syntax_1.Syntax.AssignmentPattern:\r\n\t this.checkPatternParam(options, param.left);\r\n\t break;\r\n\t case syntax_1.Syntax.ArrayPattern:\r\n\t for (var i = 0; i < param.elements.length; i++) {\r\n\t if (param.elements[i] !== null) {\r\n\t this.checkPatternParam(options, param.elements[i]);\r\n\t }\r\n\t }\r\n\t break;\r\n\t case syntax_1.Syntax.ObjectPattern:\r\n\t for (var i = 0; i < param.properties.length; i++) {\r\n\t this.checkPatternParam(options, param.properties[i].value);\r\n\t }\r\n\t break;\r\n\t default:\r\n\t break;\r\n\t }\r\n\t options.simple = options.simple && (param instanceof Node.Identifier);\r\n\t };\r\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\r\n\t var params = [expr];\r\n\t var options;\r\n\t var asyncArrow = false;\r\n\t switch (expr.type) {\r\n\t case syntax_1.Syntax.Identifier:\r\n\t break;\r\n\t case ArrowParameterPlaceHolder:\r\n\t params = expr.params;\r\n\t asyncArrow = expr.async;\r\n\t break;\r\n\t default:\r\n\t return null;\r\n\t }\r\n\t options = {\r\n\t simple: true,\r\n\t paramSet: {}\r\n\t };\r\n\t for (var i = 0; i < params.length; ++i) {\r\n\t var param = params[i];\r\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\r\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\r\n\t if (param.right.argument) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t param.right.type = syntax_1.Syntax.Identifier;\r\n\t param.right.name = 'yield';\r\n\t delete param.right.argument;\r\n\t delete param.right.delegate;\r\n\t }\r\n\t }\r\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t this.checkPatternParam(options, param);\r\n\t params[i] = param;\r\n\t }\r\n\t if (this.context.strict || !this.context.allowYield) {\r\n\t for (var i = 0; i < params.length; ++i) {\r\n\t var param = params[i];\r\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t }\r\n\t }\r\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\r\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\r\n\t this.throwUnexpectedToken(token, options.message);\r\n\t }\r\n\t return {\r\n\t simple: options.simple,\r\n\t params: params,\r\n\t stricted: options.stricted,\r\n\t firstRestricted: options.firstRestricted,\r\n\t message: options.message\r\n\t };\r\n\t };\r\n\t Parser.prototype.parseAssignmentExpression = function () {\r\n\t var expr;\r\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\r\n\t expr = this.parseYieldExpression();\r\n\t }\r\n\t else {\r\n\t var startToken = this.lookahead;\r\n\t var token = startToken;\r\n\t expr = this.parseConditionalExpression();\r\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\r\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\r\n\t var arg = this.parsePrimaryExpression();\r\n\t this.reinterpretExpressionAsPattern(arg);\r\n\t expr = {\r\n\t type: ArrowParameterPlaceHolder,\r\n\t params: [arg],\r\n\t async: true\r\n\t };\r\n\t }\r\n\t }\r\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\r\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t var isAsync = expr.async;\r\n\t var list = this.reinterpretAsCoverFormalsList(expr);\r\n\t if (list) {\r\n\t if (this.hasLineTerminator) {\r\n\t this.tolerateUnexpectedToken(this.lookahead);\r\n\t }\r\n\t this.context.firstCoverInitializedNameError = null;\r\n\t var previousStrict = this.context.strict;\r\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\r\n\t this.context.allowStrictDirective = list.simple;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t var previousAwait = this.context.await;\r\n\t this.context.allowYield = true;\r\n\t this.context.await = isAsync;\r\n\t var node = this.startNode(startToken);\r\n\t this.expect('=>');\r\n\t var body = void 0;\r\n\t if (this.match('{')) {\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = true;\r\n\t body = this.parseFunctionSourceElements();\r\n\t this.context.allowIn = previousAllowIn;\r\n\t }\r\n\t else {\r\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t }\r\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\r\n\t if (this.context.strict && list.firstRestricted) {\r\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\r\n\t }\r\n\t if (this.context.strict && list.stricted) {\r\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\r\n\t }\r\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\r\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\r\n\t this.context.strict = previousStrict;\r\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\r\n\t this.context.allowYield = previousAllowYield;\r\n\t this.context.await = previousAwait;\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (this.matchAssign()) {\r\n\t if (!this.context.isAssignmentTarget) {\r\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\r\n\t }\r\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\r\n\t var id = expr;\r\n\t if (this.scanner.isRestrictedWord(id.name)) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\r\n\t }\r\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\r\n\t }\r\n\t }\r\n\t if (!this.match('=')) {\r\n\t this.context.isAssignmentTarget = false;\r\n\t this.context.isBindingElement = false;\r\n\t }\r\n\t else {\r\n\t this.reinterpretExpressionAsPattern(expr);\r\n\t }\r\n\t token = this.nextToken();\r\n\t var operator = token.value;\r\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\r\n\t this.context.firstCoverInitializedNameError = null;\r\n\t }\r\n\t }\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\r\n\t Parser.prototype.parseExpression = function () {\r\n\t var startToken = this.lookahead;\r\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t if (this.match(',')) {\r\n\t var expressions = [];\r\n\t expressions.push(expr);\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t if (!this.match(',')) {\r\n\t break;\r\n\t }\r\n\t this.nextToken();\r\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\r\n\t }\r\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\r\n\t }\r\n\t return expr;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-block\r\n\t Parser.prototype.parseStatementListItem = function () {\r\n\t var statement;\r\n\t this.context.isAssignmentTarget = true;\r\n\t this.context.isBindingElement = true;\r\n\t if (this.lookahead.type === 4 /* Keyword */) {\r\n\t switch (this.lookahead.value) {\r\n\t case 'export':\r\n\t if (!this.context.isModule) {\r\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\r\n\t }\r\n\t statement = this.parseExportDeclaration();\r\n\t break;\r\n\t case 'import':\r\n\t if (!this.context.isModule) {\r\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\r\n\t }\r\n\t statement = this.parseImportDeclaration();\r\n\t break;\r\n\t case 'const':\r\n\t statement = this.parseLexicalDeclaration({ inFor: false });\r\n\t break;\r\n\t case 'function':\r\n\t statement = this.parseFunctionDeclaration();\r\n\t break;\r\n\t case 'class':\r\n\t statement = this.parseClassDeclaration();\r\n\t break;\r\n\t case 'let':\r\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\r\n\t break;\r\n\t default:\r\n\t statement = this.parseStatement();\r\n\t break;\r\n\t }\r\n\t }\r\n\t else {\r\n\t statement = this.parseStatement();\r\n\t }\r\n\t return statement;\r\n\t };\r\n\t Parser.prototype.parseBlock = function () {\r\n\t var node = this.createNode();\r\n\t this.expect('{');\r\n\t var block = [];\r\n\t while (true) {\r\n\t if (this.match('}')) {\r\n\t break;\r\n\t }\r\n\t block.push(this.parseStatementListItem());\r\n\t }\r\n\t this.expect('}');\r\n\t return this.finalize(node, new Node.BlockStatement(block));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\r\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\r\n\t var node = this.createNode();\r\n\t var params = [];\r\n\t var id = this.parsePattern(params, kind);\r\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\r\n\t if (this.scanner.isRestrictedWord(id.name)) {\r\n\t this.tolerateError(messages_1.Messages.StrictVarName);\r\n\t }\r\n\t }\r\n\t var init = null;\r\n\t if (kind === 'const') {\r\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\r\n\t if (this.match('=')) {\r\n\t this.nextToken();\r\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t }\r\n\t else {\r\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\r\n\t }\r\n\t }\r\n\t }\r\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\r\n\t this.expect('=');\r\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t }\r\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\r\n\t };\r\n\t Parser.prototype.parseBindingList = function (kind, options) {\r\n\t var list = [this.parseLexicalBinding(kind, options)];\r\n\t while (this.match(',')) {\r\n\t this.nextToken();\r\n\t list.push(this.parseLexicalBinding(kind, options));\r\n\t }\r\n\t return list;\r\n\t };\r\n\t Parser.prototype.isLexicalDeclaration = function () {\r\n\t var state = this.scanner.saveState();\r\n\t this.scanner.scanComments();\r\n\t var next = this.scanner.lex();\r\n\t this.scanner.restoreState(state);\r\n\t return (next.type === 3 /* Identifier */) ||\r\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\r\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\r\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\r\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\r\n\t };\r\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\r\n\t var node = this.createNode();\r\n\t var kind = this.nextToken().value;\r\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\r\n\t var declarations = this.parseBindingList(kind, options);\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\r\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\r\n\t var node = this.createNode();\r\n\t this.expect('...');\r\n\t var arg = this.parsePattern(params, kind);\r\n\t return this.finalize(node, new Node.RestElement(arg));\r\n\t };\r\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\r\n\t var node = this.createNode();\r\n\t this.expect('[');\r\n\t var elements = [];\r\n\t while (!this.match(']')) {\r\n\t if (this.match(',')) {\r\n\t this.nextToken();\r\n\t elements.push(null);\r\n\t }\r\n\t else {\r\n\t if (this.match('...')) {\r\n\t elements.push(this.parseBindingRestElement(params, kind));\r\n\t break;\r\n\t }\r\n\t else {\r\n\t elements.push(this.parsePatternWithDefault(params, kind));\r\n\t }\r\n\t if (!this.match(']')) {\r\n\t this.expect(',');\r\n\t }\r\n\t }\r\n\t }\r\n\t this.expect(']');\r\n\t return this.finalize(node, new Node.ArrayPattern(elements));\r\n\t };\r\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\r\n\t var node = this.createNode();\r\n\t var computed = false;\r\n\t var shorthand = false;\r\n\t var method = false;\r\n\t var key;\r\n\t var value;\r\n\t if (this.lookahead.type === 3 /* Identifier */) {\r\n\t var keyToken = this.lookahead;\r\n\t key = this.parseVariableIdentifier();\r\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\r\n\t if (this.match('=')) {\r\n\t params.push(keyToken);\r\n\t shorthand = true;\r\n\t this.nextToken();\r\n\t var expr = this.parseAssignmentExpression();\r\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\r\n\t }\r\n\t else if (!this.match(':')) {\r\n\t params.push(keyToken);\r\n\t shorthand = true;\r\n\t value = init;\r\n\t }\r\n\t else {\r\n\t this.expect(':');\r\n\t value = this.parsePatternWithDefault(params, kind);\r\n\t }\r\n\t }\r\n\t else {\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t this.expect(':');\r\n\t value = this.parsePatternWithDefault(params, kind);\r\n\t }\r\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\r\n\t };\r\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\r\n\t var node = this.createNode();\r\n\t var properties = [];\r\n\t this.expect('{');\r\n\t while (!this.match('}')) {\r\n\t properties.push(this.parsePropertyPattern(params, kind));\r\n\t if (!this.match('}')) {\r\n\t this.expect(',');\r\n\t }\r\n\t }\r\n\t this.expect('}');\r\n\t return this.finalize(node, new Node.ObjectPattern(properties));\r\n\t };\r\n\t Parser.prototype.parsePattern = function (params, kind) {\r\n\t var pattern;\r\n\t if (this.match('[')) {\r\n\t pattern = this.parseArrayPattern(params, kind);\r\n\t }\r\n\t else if (this.match('{')) {\r\n\t pattern = this.parseObjectPattern(params, kind);\r\n\t }\r\n\t else {\r\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\r\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\r\n\t }\r\n\t params.push(this.lookahead);\r\n\t pattern = this.parseVariableIdentifier(kind);\r\n\t }\r\n\t return pattern;\r\n\t };\r\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\r\n\t var startToken = this.lookahead;\r\n\t var pattern = this.parsePattern(params, kind);\r\n\t if (this.match('=')) {\r\n\t this.nextToken();\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = true;\r\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\r\n\t }\r\n\t return pattern;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\r\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\r\n\t var node = this.createNode();\r\n\t var token = this.nextToken();\r\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\r\n\t if (this.context.strict) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\r\n\t }\r\n\t else if (!this.context.allowYield) {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t }\r\n\t else if (token.type !== 3 /* Identifier */) {\r\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\r\n\t }\r\n\t else {\r\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\r\n\t this.throwUnexpectedToken(token);\r\n\t }\r\n\t }\r\n\t }\r\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\r\n\t this.tolerateUnexpectedToken(token);\r\n\t }\r\n\t return this.finalize(node, new Node.Identifier(token.value));\r\n\t };\r\n\t Parser.prototype.parseVariableDeclaration = function (options) {\r\n\t var node = this.createNode();\r\n\t var params = [];\r\n\t var id = this.parsePattern(params, 'var');\r\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\r\n\t if (this.scanner.isRestrictedWord(id.name)) {\r\n\t this.tolerateError(messages_1.Messages.StrictVarName);\r\n\t }\r\n\t }\r\n\t var init = null;\r\n\t if (this.match('=')) {\r\n\t this.nextToken();\r\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\r\n\t }\r\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\r\n\t this.expect('=');\r\n\t }\r\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\r\n\t };\r\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\r\n\t var opt = { inFor: options.inFor };\r\n\t var list = [];\r\n\t list.push(this.parseVariableDeclaration(opt));\r\n\t while (this.match(',')) {\r\n\t this.nextToken();\r\n\t list.push(this.parseVariableDeclaration(opt));\r\n\t }\r\n\t return list;\r\n\t };\r\n\t Parser.prototype.parseVariableStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('var');\r\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\r\n\t Parser.prototype.parseEmptyStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expect(';');\r\n\t return this.finalize(node, new Node.EmptyStatement());\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\r\n\t Parser.prototype.parseExpressionStatement = function () {\r\n\t var node = this.createNode();\r\n\t var expr = this.parseExpression();\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-if-statement\r\n\t Parser.prototype.parseIfClause = function () {\r\n\t if (this.context.strict && this.matchKeyword('function')) {\r\n\t this.tolerateError(messages_1.Messages.StrictFunction);\r\n\t }\r\n\t return this.parseStatement();\r\n\t };\r\n\t Parser.prototype.parseIfStatement = function () {\r\n\t var node = this.createNode();\r\n\t var consequent;\r\n\t var alternate = null;\r\n\t this.expectKeyword('if');\r\n\t this.expect('(');\r\n\t var test = this.parseExpression();\r\n\t if (!this.match(')') && this.config.tolerant) {\r\n\t this.tolerateUnexpectedToken(this.nextToken());\r\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\r\n\t }\r\n\t else {\r\n\t this.expect(')');\r\n\t consequent = this.parseIfClause();\r\n\t if (this.matchKeyword('else')) {\r\n\t this.nextToken();\r\n\t alternate = this.parseIfClause();\r\n\t }\r\n\t }\r\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\r\n\t Parser.prototype.parseDoWhileStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('do');\r\n\t var previousInIteration = this.context.inIteration;\r\n\t this.context.inIteration = true;\r\n\t var body = this.parseStatement();\r\n\t this.context.inIteration = previousInIteration;\r\n\t this.expectKeyword('while');\r\n\t this.expect('(');\r\n\t var test = this.parseExpression();\r\n\t if (!this.match(')') && this.config.tolerant) {\r\n\t this.tolerateUnexpectedToken(this.nextToken());\r\n\t }\r\n\t else {\r\n\t this.expect(')');\r\n\t if (this.match(';')) {\r\n\t this.nextToken();\r\n\t }\r\n\t }\r\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-while-statement\r\n\t Parser.prototype.parseWhileStatement = function () {\r\n\t var node = this.createNode();\r\n\t var body;\r\n\t this.expectKeyword('while');\r\n\t this.expect('(');\r\n\t var test = this.parseExpression();\r\n\t if (!this.match(')') && this.config.tolerant) {\r\n\t this.tolerateUnexpectedToken(this.nextToken());\r\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\r\n\t }\r\n\t else {\r\n\t this.expect(')');\r\n\t var previousInIteration = this.context.inIteration;\r\n\t this.context.inIteration = true;\r\n\t body = this.parseStatement();\r\n\t this.context.inIteration = previousInIteration;\r\n\t }\r\n\t return this.finalize(node, new Node.WhileStatement(test, body));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-for-statement\r\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\r\n\t Parser.prototype.parseForStatement = function () {\r\n\t var init = null;\r\n\t var test = null;\r\n\t var update = null;\r\n\t var forIn = true;\r\n\t var left, right;\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('for');\r\n\t this.expect('(');\r\n\t if (this.match(';')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else {\r\n\t if (this.matchKeyword('var')) {\r\n\t init = this.createNode();\r\n\t this.nextToken();\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = false;\r\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\r\n\t this.context.allowIn = previousAllowIn;\r\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\r\n\t var decl = declarations[0];\r\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\r\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\r\n\t }\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\r\n\t this.nextToken();\r\n\t left = init;\r\n\t right = this.parseExpression();\r\n\t init = null;\r\n\t }\r\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\r\n\t this.nextToken();\r\n\t left = init;\r\n\t right = this.parseAssignmentExpression();\r\n\t init = null;\r\n\t forIn = false;\r\n\t }\r\n\t else {\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\r\n\t this.expect(';');\r\n\t }\r\n\t }\r\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\r\n\t init = this.createNode();\r\n\t var kind = this.nextToken().value;\r\n\t if (!this.context.strict && this.lookahead.value === 'in') {\r\n\t init = this.finalize(init, new Node.Identifier(kind));\r\n\t this.nextToken();\r\n\t left = init;\r\n\t right = this.parseExpression();\r\n\t init = null;\r\n\t }\r\n\t else {\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = false;\r\n\t var declarations = this.parseBindingList(kind, { inFor: true });\r\n\t this.context.allowIn = previousAllowIn;\r\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\r\n\t this.nextToken();\r\n\t left = init;\r\n\t right = this.parseExpression();\r\n\t init = null;\r\n\t }\r\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\r\n\t this.nextToken();\r\n\t left = init;\r\n\t right = this.parseAssignmentExpression();\r\n\t init = null;\r\n\t forIn = false;\r\n\t }\r\n\t else {\r\n\t this.consumeSemicolon();\r\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t var initStartToken = this.lookahead;\r\n\t var previousAllowIn = this.context.allowIn;\r\n\t this.context.allowIn = false;\r\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\r\n\t this.context.allowIn = previousAllowIn;\r\n\t if (this.matchKeyword('in')) {\r\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\r\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\r\n\t }\r\n\t this.nextToken();\r\n\t this.reinterpretExpressionAsPattern(init);\r\n\t left = init;\r\n\t right = this.parseExpression();\r\n\t init = null;\r\n\t }\r\n\t else if (this.matchContextualKeyword('of')) {\r\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\r\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\r\n\t }\r\n\t this.nextToken();\r\n\t this.reinterpretExpressionAsPattern(init);\r\n\t left = init;\r\n\t right = this.parseAssignmentExpression();\r\n\t init = null;\r\n\t forIn = false;\r\n\t }\r\n\t else {\r\n\t if (this.match(',')) {\r\n\t var initSeq = [init];\r\n\t while (this.match(',')) {\r\n\t this.nextToken();\r\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\r\n\t }\r\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\r\n\t }\r\n\t this.expect(';');\r\n\t }\r\n\t }\r\n\t }\r\n\t if (typeof left === 'undefined') {\r\n\t if (!this.match(';')) {\r\n\t test = this.parseExpression();\r\n\t }\r\n\t this.expect(';');\r\n\t if (!this.match(')')) {\r\n\t update = this.parseExpression();\r\n\t }\r\n\t }\r\n\t var body;\r\n\t if (!this.match(')') && this.config.tolerant) {\r\n\t this.tolerateUnexpectedToken(this.nextToken());\r\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\r\n\t }\r\n\t else {\r\n\t this.expect(')');\r\n\t var previousInIteration = this.context.inIteration;\r\n\t this.context.inIteration = true;\r\n\t body = this.isolateCoverGrammar(this.parseStatement);\r\n\t this.context.inIteration = previousInIteration;\r\n\t }\r\n\t return (typeof left === 'undefined') ?\r\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\r\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\r\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\r\n\t Parser.prototype.parseContinueStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('continue');\r\n\t var label = null;\r\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\r\n\t var id = this.parseVariableIdentifier();\r\n\t label = id;\r\n\t var key = '$' + id.name;\r\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\r\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\r\n\t }\r\n\t }\r\n\t this.consumeSemicolon();\r\n\t if (label === null && !this.context.inIteration) {\r\n\t this.throwError(messages_1.Messages.IllegalContinue);\r\n\t }\r\n\t return this.finalize(node, new Node.ContinueStatement(label));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-break-statement\r\n\t Parser.prototype.parseBreakStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('break');\r\n\t var label = null;\r\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\r\n\t var id = this.parseVariableIdentifier();\r\n\t var key = '$' + id.name;\r\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\r\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\r\n\t }\r\n\t label = id;\r\n\t }\r\n\t this.consumeSemicolon();\r\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\r\n\t this.throwError(messages_1.Messages.IllegalBreak);\r\n\t }\r\n\t return this.finalize(node, new Node.BreakStatement(label));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-return-statement\r\n\t Parser.prototype.parseReturnStatement = function () {\r\n\t if (!this.context.inFunctionBody) {\r\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\r\n\t }\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('return');\r\n\t var hasArgument = !this.match(';') && !this.match('}') &&\r\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */;\r\n\t var argument = hasArgument ? this.parseExpression() : null;\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.ReturnStatement(argument));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-with-statement\r\n\t Parser.prototype.parseWithStatement = function () {\r\n\t if (this.context.strict) {\r\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\r\n\t }\r\n\t var node = this.createNode();\r\n\t var body;\r\n\t this.expectKeyword('with');\r\n\t this.expect('(');\r\n\t var object = this.parseExpression();\r\n\t if (!this.match(')') && this.config.tolerant) {\r\n\t this.tolerateUnexpectedToken(this.nextToken());\r\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\r\n\t }\r\n\t else {\r\n\t this.expect(')');\r\n\t body = this.parseStatement();\r\n\t }\r\n\t return this.finalize(node, new Node.WithStatement(object, body));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\r\n\t Parser.prototype.parseSwitchCase = function () {\r\n\t var node = this.createNode();\r\n\t var test;\r\n\t if (this.matchKeyword('default')) {\r\n\t this.nextToken();\r\n\t test = null;\r\n\t }\r\n\t else {\r\n\t this.expectKeyword('case');\r\n\t test = this.parseExpression();\r\n\t }\r\n\t this.expect(':');\r\n\t var consequent = [];\r\n\t while (true) {\r\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\r\n\t break;\r\n\t }\r\n\t consequent.push(this.parseStatementListItem());\r\n\t }\r\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\r\n\t };\r\n\t Parser.prototype.parseSwitchStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('switch');\r\n\t this.expect('(');\r\n\t var discriminant = this.parseExpression();\r\n\t this.expect(')');\r\n\t var previousInSwitch = this.context.inSwitch;\r\n\t this.context.inSwitch = true;\r\n\t var cases = [];\r\n\t var defaultFound = false;\r\n\t this.expect('{');\r\n\t while (true) {\r\n\t if (this.match('}')) {\r\n\t break;\r\n\t }\r\n\t var clause = this.parseSwitchCase();\r\n\t if (clause.test === null) {\r\n\t if (defaultFound) {\r\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\r\n\t }\r\n\t defaultFound = true;\r\n\t }\r\n\t cases.push(clause);\r\n\t }\r\n\t this.expect('}');\r\n\t this.context.inSwitch = previousInSwitch;\r\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\r\n\t Parser.prototype.parseLabelledStatement = function () {\r\n\t var node = this.createNode();\r\n\t var expr = this.parseExpression();\r\n\t var statement;\r\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\r\n\t this.nextToken();\r\n\t var id = expr;\r\n\t var key = '$' + id.name;\r\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\r\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\r\n\t }\r\n\t this.context.labelSet[key] = true;\r\n\t var body = void 0;\r\n\t if (this.matchKeyword('class')) {\r\n\t this.tolerateUnexpectedToken(this.lookahead);\r\n\t body = this.parseClassDeclaration();\r\n\t }\r\n\t else if (this.matchKeyword('function')) {\r\n\t var token = this.lookahead;\r\n\t var declaration = this.parseFunctionDeclaration();\r\n\t if (this.context.strict) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\r\n\t }\r\n\t else if (declaration.generator) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\r\n\t }\r\n\t body = declaration;\r\n\t }\r\n\t else {\r\n\t body = this.parseStatement();\r\n\t }\r\n\t delete this.context.labelSet[key];\r\n\t statement = new Node.LabeledStatement(id, body);\r\n\t }\r\n\t else {\r\n\t this.consumeSemicolon();\r\n\t statement = new Node.ExpressionStatement(expr);\r\n\t }\r\n\t return this.finalize(node, statement);\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\r\n\t Parser.prototype.parseThrowStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('throw');\r\n\t if (this.hasLineTerminator) {\r\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\r\n\t }\r\n\t var argument = this.parseExpression();\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.ThrowStatement(argument));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-try-statement\r\n\t Parser.prototype.parseCatchClause = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('catch');\r\n\t this.expect('(');\r\n\t if (this.match(')')) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t var params = [];\r\n\t var param = this.parsePattern(params);\r\n\t var paramMap = {};\r\n\t for (var i = 0; i < params.length; i++) {\r\n\t var key = '$' + params[i].value;\r\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\r\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\r\n\t }\r\n\t paramMap[key] = true;\r\n\t }\r\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\r\n\t if (this.scanner.isRestrictedWord(param.name)) {\r\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\r\n\t }\r\n\t }\r\n\t this.expect(')');\r\n\t var body = this.parseBlock();\r\n\t return this.finalize(node, new Node.CatchClause(param, body));\r\n\t };\r\n\t Parser.prototype.parseFinallyClause = function () {\r\n\t this.expectKeyword('finally');\r\n\t return this.parseBlock();\r\n\t };\r\n\t Parser.prototype.parseTryStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('try');\r\n\t var block = this.parseBlock();\r\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\r\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\r\n\t if (!handler && !finalizer) {\r\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\r\n\t }\r\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\r\n\t Parser.prototype.parseDebuggerStatement = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('debugger');\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.DebuggerStatement());\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\r\n\t Parser.prototype.parseStatement = function () {\r\n\t var statement;\r\n\t switch (this.lookahead.type) {\r\n\t case 1 /* BooleanLiteral */:\r\n\t case 5 /* NullLiteral */:\r\n\t case 6 /* NumericLiteral */:\r\n\t case 8 /* StringLiteral */:\r\n\t case 10 /* Template */:\r\n\t case 9 /* RegularExpression */:\r\n\t statement = this.parseExpressionStatement();\r\n\t break;\r\n\t case 7 /* Punctuator */:\r\n\t var value = this.lookahead.value;\r\n\t if (value === '{') {\r\n\t statement = this.parseBlock();\r\n\t }\r\n\t else if (value === '(') {\r\n\t statement = this.parseExpressionStatement();\r\n\t }\r\n\t else if (value === ';') {\r\n\t statement = this.parseEmptyStatement();\r\n\t }\r\n\t else {\r\n\t statement = this.parseExpressionStatement();\r\n\t }\r\n\t break;\r\n\t case 3 /* Identifier */:\r\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\r\n\t break;\r\n\t case 4 /* Keyword */:\r\n\t switch (this.lookahead.value) {\r\n\t case 'break':\r\n\t statement = this.parseBreakStatement();\r\n\t break;\r\n\t case 'continue':\r\n\t statement = this.parseContinueStatement();\r\n\t break;\r\n\t case 'debugger':\r\n\t statement = this.parseDebuggerStatement();\r\n\t break;\r\n\t case 'do':\r\n\t statement = this.parseDoWhileStatement();\r\n\t break;\r\n\t case 'for':\r\n\t statement = this.parseForStatement();\r\n\t break;\r\n\t case 'function':\r\n\t statement = this.parseFunctionDeclaration();\r\n\t break;\r\n\t case 'if':\r\n\t statement = this.parseIfStatement();\r\n\t break;\r\n\t case 'return':\r\n\t statement = this.parseReturnStatement();\r\n\t break;\r\n\t case 'switch':\r\n\t statement = this.parseSwitchStatement();\r\n\t break;\r\n\t case 'throw':\r\n\t statement = this.parseThrowStatement();\r\n\t break;\r\n\t case 'try':\r\n\t statement = this.parseTryStatement();\r\n\t break;\r\n\t case 'var':\r\n\t statement = this.parseVariableStatement();\r\n\t break;\r\n\t case 'while':\r\n\t statement = this.parseWhileStatement();\r\n\t break;\r\n\t case 'with':\r\n\t statement = this.parseWithStatement();\r\n\t break;\r\n\t default:\r\n\t statement = this.parseExpressionStatement();\r\n\t break;\r\n\t }\r\n\t break;\r\n\t default:\r\n\t statement = this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t return statement;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\r\n\t Parser.prototype.parseFunctionSourceElements = function () {\r\n\t var node = this.createNode();\r\n\t this.expect('{');\r\n\t var body = this.parseDirectivePrologues();\r\n\t var previousLabelSet = this.context.labelSet;\r\n\t var previousInIteration = this.context.inIteration;\r\n\t var previousInSwitch = this.context.inSwitch;\r\n\t var previousInFunctionBody = this.context.inFunctionBody;\r\n\t this.context.labelSet = {};\r\n\t this.context.inIteration = false;\r\n\t this.context.inSwitch = false;\r\n\t this.context.inFunctionBody = true;\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t if (this.match('}')) {\r\n\t break;\r\n\t }\r\n\t body.push(this.parseStatementListItem());\r\n\t }\r\n\t this.expect('}');\r\n\t this.context.labelSet = previousLabelSet;\r\n\t this.context.inIteration = previousInIteration;\r\n\t this.context.inSwitch = previousInSwitch;\r\n\t this.context.inFunctionBody = previousInFunctionBody;\r\n\t return this.finalize(node, new Node.BlockStatement(body));\r\n\t };\r\n\t Parser.prototype.validateParam = function (options, param, name) {\r\n\t var key = '$' + name;\r\n\t if (this.context.strict) {\r\n\t if (this.scanner.isRestrictedWord(name)) {\r\n\t options.stricted = param;\r\n\t options.message = messages_1.Messages.StrictParamName;\r\n\t }\r\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\r\n\t options.stricted = param;\r\n\t options.message = messages_1.Messages.StrictParamDupe;\r\n\t }\r\n\t }\r\n\t else if (!options.firstRestricted) {\r\n\t if (this.scanner.isRestrictedWord(name)) {\r\n\t options.firstRestricted = param;\r\n\t options.message = messages_1.Messages.StrictParamName;\r\n\t }\r\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\r\n\t options.firstRestricted = param;\r\n\t options.message = messages_1.Messages.StrictReservedWord;\r\n\t }\r\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\r\n\t options.stricted = param;\r\n\t options.message = messages_1.Messages.StrictParamDupe;\r\n\t }\r\n\t }\r\n\t /* istanbul ignore next */\r\n\t if (typeof Object.defineProperty === 'function') {\r\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\r\n\t }\r\n\t else {\r\n\t options.paramSet[key] = true;\r\n\t }\r\n\t };\r\n\t Parser.prototype.parseRestElement = function (params) {\r\n\t var node = this.createNode();\r\n\t this.expect('...');\r\n\t var arg = this.parsePattern(params);\r\n\t if (this.match('=')) {\r\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\r\n\t }\r\n\t if (!this.match(')')) {\r\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\r\n\t }\r\n\t return this.finalize(node, new Node.RestElement(arg));\r\n\t };\r\n\t Parser.prototype.parseFormalParameter = function (options) {\r\n\t var params = [];\r\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\r\n\t for (var i = 0; i < params.length; i++) {\r\n\t this.validateParam(options, params[i], params[i].value);\r\n\t }\r\n\t options.simple = options.simple && (param instanceof Node.Identifier);\r\n\t options.params.push(param);\r\n\t };\r\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\r\n\t var options;\r\n\t options = {\r\n\t simple: true,\r\n\t params: [],\r\n\t firstRestricted: firstRestricted\r\n\t };\r\n\t this.expect('(');\r\n\t if (!this.match(')')) {\r\n\t options.paramSet = {};\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t this.parseFormalParameter(options);\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t this.expect(',');\r\n\t if (this.match(')')) {\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t this.expect(')');\r\n\t return {\r\n\t simple: options.simple,\r\n\t params: options.params,\r\n\t stricted: options.stricted,\r\n\t firstRestricted: options.firstRestricted,\r\n\t message: options.message\r\n\t };\r\n\t };\r\n\t Parser.prototype.matchAsyncFunction = function () {\r\n\t var match = this.matchContextualKeyword('async');\r\n\t if (match) {\r\n\t var state = this.scanner.saveState();\r\n\t this.scanner.scanComments();\r\n\t var next = this.scanner.lex();\r\n\t this.scanner.restoreState(state);\r\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\r\n\t }\r\n\t return match;\r\n\t };\r\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\r\n\t var node = this.createNode();\r\n\t var isAsync = this.matchContextualKeyword('async');\r\n\t if (isAsync) {\r\n\t this.nextToken();\r\n\t }\r\n\t this.expectKeyword('function');\r\n\t var isGenerator = isAsync ? false : this.match('*');\r\n\t if (isGenerator) {\r\n\t this.nextToken();\r\n\t }\r\n\t var message;\r\n\t var id = null;\r\n\t var firstRestricted = null;\r\n\t if (!identifierIsOptional || !this.match('(')) {\r\n\t var token = this.lookahead;\r\n\t id = this.parseVariableIdentifier();\r\n\t if (this.context.strict) {\r\n\t if (this.scanner.isRestrictedWord(token.value)) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (this.scanner.isRestrictedWord(token.value)) {\r\n\t firstRestricted = token;\r\n\t message = messages_1.Messages.StrictFunctionName;\r\n\t }\r\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\r\n\t firstRestricted = token;\r\n\t message = messages_1.Messages.StrictReservedWord;\r\n\t }\r\n\t }\r\n\t }\r\n\t var previousAllowAwait = this.context.await;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.await = isAsync;\r\n\t this.context.allowYield = !isGenerator;\r\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\r\n\t var params = formalParameters.params;\r\n\t var stricted = formalParameters.stricted;\r\n\t firstRestricted = formalParameters.firstRestricted;\r\n\t if (formalParameters.message) {\r\n\t message = formalParameters.message;\r\n\t }\r\n\t var previousStrict = this.context.strict;\r\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\r\n\t this.context.allowStrictDirective = formalParameters.simple;\r\n\t var body = this.parseFunctionSourceElements();\r\n\t if (this.context.strict && firstRestricted) {\r\n\t this.throwUnexpectedToken(firstRestricted, message);\r\n\t }\r\n\t if (this.context.strict && stricted) {\r\n\t this.tolerateUnexpectedToken(stricted, message);\r\n\t }\r\n\t this.context.strict = previousStrict;\r\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\r\n\t this.context.await = previousAllowAwait;\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\r\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\r\n\t };\r\n\t Parser.prototype.parseFunctionExpression = function () {\r\n\t var node = this.createNode();\r\n\t var isAsync = this.matchContextualKeyword('async');\r\n\t if (isAsync) {\r\n\t this.nextToken();\r\n\t }\r\n\t this.expectKeyword('function');\r\n\t var isGenerator = isAsync ? false : this.match('*');\r\n\t if (isGenerator) {\r\n\t this.nextToken();\r\n\t }\r\n\t var message;\r\n\t var id = null;\r\n\t var firstRestricted;\r\n\t var previousAllowAwait = this.context.await;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.await = isAsync;\r\n\t this.context.allowYield = !isGenerator;\r\n\t if (!this.match('(')) {\r\n\t var token = this.lookahead;\r\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\r\n\t if (this.context.strict) {\r\n\t if (this.scanner.isRestrictedWord(token.value)) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (this.scanner.isRestrictedWord(token.value)) {\r\n\t firstRestricted = token;\r\n\t message = messages_1.Messages.StrictFunctionName;\r\n\t }\r\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\r\n\t firstRestricted = token;\r\n\t message = messages_1.Messages.StrictReservedWord;\r\n\t }\r\n\t }\r\n\t }\r\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\r\n\t var params = formalParameters.params;\r\n\t var stricted = formalParameters.stricted;\r\n\t firstRestricted = formalParameters.firstRestricted;\r\n\t if (formalParameters.message) {\r\n\t message = formalParameters.message;\r\n\t }\r\n\t var previousStrict = this.context.strict;\r\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\r\n\t this.context.allowStrictDirective = formalParameters.simple;\r\n\t var body = this.parseFunctionSourceElements();\r\n\t if (this.context.strict && firstRestricted) {\r\n\t this.throwUnexpectedToken(firstRestricted, message);\r\n\t }\r\n\t if (this.context.strict && stricted) {\r\n\t this.tolerateUnexpectedToken(stricted, message);\r\n\t }\r\n\t this.context.strict = previousStrict;\r\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\r\n\t this.context.await = previousAllowAwait;\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\r\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\r\n\t Parser.prototype.parseDirective = function () {\r\n\t var token = this.lookahead;\r\n\t var node = this.createNode();\r\n\t var expr = this.parseExpression();\r\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\r\n\t };\r\n\t Parser.prototype.parseDirectivePrologues = function () {\r\n\t var firstRestricted = null;\r\n\t var body = [];\r\n\t while (true) {\r\n\t var token = this.lookahead;\r\n\t if (token.type !== 8 /* StringLiteral */) {\r\n\t break;\r\n\t }\r\n\t var statement = this.parseDirective();\r\n\t body.push(statement);\r\n\t var directive = statement.directive;\r\n\t if (typeof directive !== 'string') {\r\n\t break;\r\n\t }\r\n\t if (directive === 'use strict') {\r\n\t this.context.strict = true;\r\n\t if (firstRestricted) {\r\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\r\n\t }\r\n\t if (!this.context.allowStrictDirective) {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (!firstRestricted && token.octal) {\r\n\t firstRestricted = token;\r\n\t }\r\n\t }\r\n\t }\r\n\t return body;\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\r\n\t Parser.prototype.qualifiedPropertyName = function (token) {\r\n\t switch (token.type) {\r\n\t case 3 /* Identifier */:\r\n\t case 8 /* StringLiteral */:\r\n\t case 1 /* BooleanLiteral */:\r\n\t case 5 /* NullLiteral */:\r\n\t case 6 /* NumericLiteral */:\r\n\t case 4 /* Keyword */:\r\n\t return true;\r\n\t case 7 /* Punctuator */:\r\n\t return token.value === '[';\r\n\t default:\r\n\t break;\r\n\t }\r\n\t return false;\r\n\t };\r\n\t Parser.prototype.parseGetterMethod = function () {\r\n\t var node = this.createNode();\r\n\t var isGenerator = false;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = false;\r\n\t var formalParameters = this.parseFormalParameters();\r\n\t if (formalParameters.params.length > 0) {\r\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\r\n\t }\r\n\t var method = this.parsePropertyMethod(formalParameters);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\r\n\t };\r\n\t Parser.prototype.parseSetterMethod = function () {\r\n\t var node = this.createNode();\r\n\t var isGenerator = false;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = false;\r\n\t var formalParameters = this.parseFormalParameters();\r\n\t if (formalParameters.params.length !== 1) {\r\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\r\n\t }\r\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\r\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\r\n\t }\r\n\t var method = this.parsePropertyMethod(formalParameters);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\r\n\t };\r\n\t Parser.prototype.parseGeneratorMethod = function () {\r\n\t var node = this.createNode();\r\n\t var isGenerator = true;\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = true;\r\n\t var params = this.parseFormalParameters();\r\n\t this.context.allowYield = false;\r\n\t var method = this.parsePropertyMethod(params);\r\n\t this.context.allowYield = previousAllowYield;\r\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\r\n\t Parser.prototype.isStartOfExpression = function () {\r\n\t var start = true;\r\n\t var value = this.lookahead.value;\r\n\t switch (this.lookahead.type) {\r\n\t case 7 /* Punctuator */:\r\n\t start = (value === '[') || (value === '(') || (value === '{') ||\r\n\t (value === '+') || (value === '-') ||\r\n\t (value === '!') || (value === '~') ||\r\n\t (value === '++') || (value === '--') ||\r\n\t (value === '/') || (value === '/='); // regular expression literal\r\n\t break;\r\n\t case 4 /* Keyword */:\r\n\t start = (value === 'class') || (value === 'delete') ||\r\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\r\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\r\n\t (value === 'void') || (value === 'yield');\r\n\t break;\r\n\t default:\r\n\t break;\r\n\t }\r\n\t return start;\r\n\t };\r\n\t Parser.prototype.parseYieldExpression = function () {\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('yield');\r\n\t var argument = null;\r\n\t var delegate = false;\r\n\t if (!this.hasLineTerminator) {\r\n\t var previousAllowYield = this.context.allowYield;\r\n\t this.context.allowYield = false;\r\n\t delegate = this.match('*');\r\n\t if (delegate) {\r\n\t this.nextToken();\r\n\t argument = this.parseAssignmentExpression();\r\n\t }\r\n\t else if (this.isStartOfExpression()) {\r\n\t argument = this.parseAssignmentExpression();\r\n\t }\r\n\t this.context.allowYield = previousAllowYield;\r\n\t }\r\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\r\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\r\n\t var token = this.lookahead;\r\n\t var node = this.createNode();\r\n\t var kind = '';\r\n\t var key = null;\r\n\t var value = null;\r\n\t var computed = false;\r\n\t var method = false;\r\n\t var isStatic = false;\r\n\t var isAsync = false;\r\n\t if (this.match('*')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else {\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t var id = key;\r\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\r\n\t token = this.lookahead;\r\n\t isStatic = true;\r\n\t computed = this.match('[');\r\n\t if (this.match('*')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else {\r\n\t key = this.parseObjectPropertyKey();\r\n\t }\r\n\t }\r\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\r\n\t var punctuator = this.lookahead.value;\r\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\r\n\t isAsync = true;\r\n\t token = this.lookahead;\r\n\t key = this.parseObjectPropertyKey();\r\n\t if (token.type === 3 /* Identifier */) {\r\n\t if (token.value === 'get' || token.value === 'set') {\r\n\t this.tolerateUnexpectedToken(token);\r\n\t }\r\n\t else if (token.value === 'constructor') {\r\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\r\n\t if (token.type === 3 /* Identifier */) {\r\n\t if (token.value === 'get' && lookaheadPropertyKey) {\r\n\t kind = 'get';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t this.context.allowYield = false;\r\n\t value = this.parseGetterMethod();\r\n\t }\r\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\r\n\t kind = 'set';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t value = this.parseSetterMethod();\r\n\t }\r\n\t }\r\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\r\n\t kind = 'init';\r\n\t computed = this.match('[');\r\n\t key = this.parseObjectPropertyKey();\r\n\t value = this.parseGeneratorMethod();\r\n\t method = true;\r\n\t }\r\n\t if (!kind && key && this.match('(')) {\r\n\t kind = 'init';\r\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\r\n\t method = true;\r\n\t }\r\n\t if (!kind) {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t if (kind === 'init') {\r\n\t kind = 'method';\r\n\t }\r\n\t if (!computed) {\r\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\r\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\r\n\t }\r\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\r\n\t if (kind !== 'method' || !method || (value && value.generator)) {\r\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\r\n\t }\r\n\t if (hasConstructor.value) {\r\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\r\n\t }\r\n\t else {\r\n\t hasConstructor.value = true;\r\n\t }\r\n\t kind = 'constructor';\r\n\t }\r\n\t }\r\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\r\n\t };\r\n\t Parser.prototype.parseClassElementList = function () {\r\n\t var body = [];\r\n\t var hasConstructor = { value: false };\r\n\t this.expect('{');\r\n\t while (!this.match('}')) {\r\n\t if (this.match(';')) {\r\n\t this.nextToken();\r\n\t }\r\n\t else {\r\n\t body.push(this.parseClassElement(hasConstructor));\r\n\t }\r\n\t }\r\n\t this.expect('}');\r\n\t return body;\r\n\t };\r\n\t Parser.prototype.parseClassBody = function () {\r\n\t var node = this.createNode();\r\n\t var elementList = this.parseClassElementList();\r\n\t return this.finalize(node, new Node.ClassBody(elementList));\r\n\t };\r\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\r\n\t var node = this.createNode();\r\n\t var previousStrict = this.context.strict;\r\n\t this.context.strict = true;\r\n\t this.expectKeyword('class');\r\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\r\n\t var superClass = null;\r\n\t if (this.matchKeyword('extends')) {\r\n\t this.nextToken();\r\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\r\n\t }\r\n\t var classBody = this.parseClassBody();\r\n\t this.context.strict = previousStrict;\r\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\r\n\t };\r\n\t Parser.prototype.parseClassExpression = function () {\r\n\t var node = this.createNode();\r\n\t var previousStrict = this.context.strict;\r\n\t this.context.strict = true;\r\n\t this.expectKeyword('class');\r\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\r\n\t var superClass = null;\r\n\t if (this.matchKeyword('extends')) {\r\n\t this.nextToken();\r\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\r\n\t }\r\n\t var classBody = this.parseClassBody();\r\n\t this.context.strict = previousStrict;\r\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-scripts\r\n\t // https://tc39.github.io/ecma262/#sec-modules\r\n\t Parser.prototype.parseModule = function () {\r\n\t this.context.strict = true;\r\n\t this.context.isModule = true;\r\n\t var node = this.createNode();\r\n\t var body = this.parseDirectivePrologues();\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t body.push(this.parseStatementListItem());\r\n\t }\r\n\t return this.finalize(node, new Node.Module(body));\r\n\t };\r\n\t Parser.prototype.parseScript = function () {\r\n\t var node = this.createNode();\r\n\t var body = this.parseDirectivePrologues();\r\n\t while (this.lookahead.type !== 2 /* EOF */) {\r\n\t body.push(this.parseStatementListItem());\r\n\t }\r\n\t return this.finalize(node, new Node.Script(body));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-imports\r\n\t Parser.prototype.parseModuleSpecifier = function () {\r\n\t var node = this.createNode();\r\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\r\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\r\n\t }\r\n\t var token = this.nextToken();\r\n\t var raw = this.getTokenRaw(token);\r\n\t return this.finalize(node, new Node.Literal(token.value, raw));\r\n\t };\r\n\t // import {} ...;\r\n\t Parser.prototype.parseImportSpecifier = function () {\r\n\t var node = this.createNode();\r\n\t var imported;\r\n\t var local;\r\n\t if (this.lookahead.type === 3 /* Identifier */) {\r\n\t imported = this.parseVariableIdentifier();\r\n\t local = imported;\r\n\t if (this.matchContextualKeyword('as')) {\r\n\t this.nextToken();\r\n\t local = this.parseVariableIdentifier();\r\n\t }\r\n\t }\r\n\t else {\r\n\t imported = this.parseIdentifierName();\r\n\t local = imported;\r\n\t if (this.matchContextualKeyword('as')) {\r\n\t this.nextToken();\r\n\t local = this.parseVariableIdentifier();\r\n\t }\r\n\t else {\r\n\t this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t }\r\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\r\n\t };\r\n\t // {foo, bar as bas}\r\n\t Parser.prototype.parseNamedImports = function () {\r\n\t this.expect('{');\r\n\t var specifiers = [];\r\n\t while (!this.match('}')) {\r\n\t specifiers.push(this.parseImportSpecifier());\r\n\t if (!this.match('}')) {\r\n\t this.expect(',');\r\n\t }\r\n\t }\r\n\t this.expect('}');\r\n\t return specifiers;\r\n\t };\r\n\t // import ...;\r\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\r\n\t var node = this.createNode();\r\n\t var local = this.parseIdentifierName();\r\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\r\n\t };\r\n\t // import <* as foo> ...;\r\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\r\n\t var node = this.createNode();\r\n\t this.expect('*');\r\n\t if (!this.matchContextualKeyword('as')) {\r\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\r\n\t }\r\n\t this.nextToken();\r\n\t var local = this.parseIdentifierName();\r\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\r\n\t };\r\n\t Parser.prototype.parseImportDeclaration = function () {\r\n\t if (this.context.inFunctionBody) {\r\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\r\n\t }\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('import');\r\n\t var src;\r\n\t var specifiers = [];\r\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\r\n\t // import 'foo';\r\n\t src = this.parseModuleSpecifier();\r\n\t }\r\n\t else {\r\n\t if (this.match('{')) {\r\n\t // import {bar}\r\n\t specifiers = specifiers.concat(this.parseNamedImports());\r\n\t }\r\n\t else if (this.match('*')) {\r\n\t // import * as foo\r\n\t specifiers.push(this.parseImportNamespaceSpecifier());\r\n\t }\r\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\r\n\t // import foo\r\n\t specifiers.push(this.parseImportDefaultSpecifier());\r\n\t if (this.match(',')) {\r\n\t this.nextToken();\r\n\t if (this.match('*')) {\r\n\t // import foo, * as foo\r\n\t specifiers.push(this.parseImportNamespaceSpecifier());\r\n\t }\r\n\t else if (this.match('{')) {\r\n\t // import foo, {bar}\r\n\t specifiers = specifiers.concat(this.parseNamedImports());\r\n\t }\r\n\t else {\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t }\r\n\t }\r\n\t else {\r\n\t this.throwUnexpectedToken(this.nextToken());\r\n\t }\r\n\t if (!this.matchContextualKeyword('from')) {\r\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\r\n\t this.throwError(message, this.lookahead.value);\r\n\t }\r\n\t this.nextToken();\r\n\t src = this.parseModuleSpecifier();\r\n\t }\r\n\t this.consumeSemicolon();\r\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-exports\r\n\t Parser.prototype.parseExportSpecifier = function () {\r\n\t var node = this.createNode();\r\n\t var local = this.parseIdentifierName();\r\n\t var exported = local;\r\n\t if (this.matchContextualKeyword('as')) {\r\n\t this.nextToken();\r\n\t exported = this.parseIdentifierName();\r\n\t }\r\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\r\n\t };\r\n\t Parser.prototype.parseExportDeclaration = function () {\r\n\t if (this.context.inFunctionBody) {\r\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\r\n\t }\r\n\t var node = this.createNode();\r\n\t this.expectKeyword('export');\r\n\t var exportDeclaration;\r\n\t if (this.matchKeyword('default')) {\r\n\t // export default ...\r\n\t this.nextToken();\r\n\t if (this.matchKeyword('function')) {\r\n\t // export default function foo () {}\r\n\t // export default function () {}\r\n\t var declaration = this.parseFunctionDeclaration(true);\r\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\r\n\t }\r\n\t else if (this.matchKeyword('class')) {\r\n\t // export default class foo {}\r\n\t var declaration = this.parseClassDeclaration(true);\r\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\r\n\t }\r\n\t else if (this.matchContextualKeyword('async')) {\r\n\t // export default async function f () {}\r\n\t // export default async function () {}\r\n\t // export default async x => x\r\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\r\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\r\n\t }\r\n\t else {\r\n\t if (this.matchContextualKeyword('from')) {\r\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\r\n\t }\r\n\t // export default {};\r\n\t // export default [];\r\n\t // export default (1 + 2);\r\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\r\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\r\n\t this.consumeSemicolon();\r\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\r\n\t }\r\n\t }\r\n\t else if (this.match('*')) {\r\n\t // export * from 'foo';\r\n\t this.nextToken();\r\n\t if (!this.matchContextualKeyword('from')) {\r\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\r\n\t this.throwError(message, this.lookahead.value);\r\n\t }\r\n\t this.nextToken();\r\n\t var src = this.parseModuleSpecifier();\r\n\t this.consumeSemicolon();\r\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\r\n\t }\r\n\t else if (this.lookahead.type === 4 /* Keyword */) {\r\n\t // export var f = 1;\r\n\t var declaration = void 0;\r\n\t switch (this.lookahead.value) {\r\n\t case 'let':\r\n\t case 'const':\r\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\r\n\t break;\r\n\t case 'var':\r\n\t case 'class':\r\n\t case 'function':\r\n\t declaration = this.parseStatementListItem();\r\n\t break;\r\n\t default:\r\n\t this.throwUnexpectedToken(this.lookahead);\r\n\t }\r\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\r\n\t }\r\n\t else if (this.matchAsyncFunction()) {\r\n\t var declaration = this.parseFunctionDeclaration();\r\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\r\n\t }\r\n\t else {\r\n\t var specifiers = [];\r\n\t var source = null;\r\n\t var isExportFromIdentifier = false;\r\n\t this.expect('{');\r\n\t while (!this.match('}')) {\r\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\r\n\t specifiers.push(this.parseExportSpecifier());\r\n\t if (!this.match('}')) {\r\n\t this.expect(',');\r\n\t }\r\n\t }\r\n\t this.expect('}');\r\n\t if (this.matchContextualKeyword('from')) {\r\n\t // export {default} from 'foo';\r\n\t // export {foo} from 'foo';\r\n\t this.nextToken();\r\n\t source = this.parseModuleSpecifier();\r\n\t this.consumeSemicolon();\r\n\t }\r\n\t else if (isExportFromIdentifier) {\r\n\t // export {default}; // missing fromClause\r\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\r\n\t this.throwError(message, this.lookahead.value);\r\n\t }\r\n\t else {\r\n\t // export {foo};\r\n\t this.consumeSemicolon();\r\n\t }\r\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\r\n\t }\r\n\t return exportDeclaration;\r\n\t };\r\n\t return Parser;\r\n\t}());\r\n\texports.Parser = Parser;\r\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t// Ensure the condition is true, otherwise throw an error.\r\n\t// This is only to have a better contract semantic, i.e. another safety net\r\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\r\n\t// Do NOT use this to enforce a certain condition on any user input.\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tfunction assert(condition, message) {\r\n\t /* istanbul ignore if */\r\n\t if (!condition) {\r\n\t throw new Error('ASSERT: ' + message);\r\n\t }\r\n\t}\r\n\texports.assert = assert;\r\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t/* tslint:disable:max-classes-per-file */\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar ErrorHandler = (function () {\r\n\t function ErrorHandler() {\r\n\t this.errors = [];\r\n\t this.tolerant = false;\r\n\t }\r\n\t ErrorHandler.prototype.recordError = function (error) {\r\n\t this.errors.push(error);\r\n\t };\r\n\t ErrorHandler.prototype.tolerate = function (error) {\r\n\t if (this.tolerant) {\r\n\t this.recordError(error);\r\n\t }\r\n\t else {\r\n\t throw error;\r\n\t }\r\n\t };\r\n\t ErrorHandler.prototype.constructError = function (msg, column) {\r\n\t var error = new Error(msg);\r\n\t try {\r\n\t throw error;\r\n\t }\r\n\t catch (base) {\r\n\t /* istanbul ignore else */\r\n\t if (Object.create && Object.defineProperty) {\r\n\t error = Object.create(base);\r\n\t Object.defineProperty(error, 'column', { value: column });\r\n\t }\r\n\t }\r\n\t /* istanbul ignore next */\r\n\t return error;\r\n\t };\r\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\r\n\t var msg = 'Line ' + line + ': ' + description;\r\n\t var error = this.constructError(msg, col);\r\n\t error.index = index;\r\n\t error.lineNumber = line;\r\n\t error.description = description;\r\n\t return error;\r\n\t };\r\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\r\n\t throw this.createError(index, line, col, description);\r\n\t };\r\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\r\n\t var error = this.createError(index, line, col, description);\r\n\t if (this.tolerant) {\r\n\t this.recordError(error);\r\n\t }\r\n\t else {\r\n\t throw error;\r\n\t }\r\n\t };\r\n\t return ErrorHandler;\r\n\t}());\r\n\texports.ErrorHandler = ErrorHandler;\r\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t// Error messages should be identical to V8.\r\n\texports.Messages = {\r\n\t BadGetterArity: 'Getter must not have any formal parameters',\r\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\r\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\r\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\r\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\r\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\r\n\t DefaultRestParameter: 'Unexpected token =',\r\n\t DuplicateBinding: 'Duplicate binding %0',\r\n\t DuplicateConstructor: 'A class may only have one constructor',\r\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\r\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\r\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\r\n\t IllegalBreak: 'Illegal break statement',\r\n\t IllegalContinue: 'Illegal continue statement',\r\n\t IllegalExportDeclaration: 'Unexpected token',\r\n\t IllegalImportDeclaration: 'Unexpected token',\r\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\r\n\t IllegalReturn: 'Illegal return statement',\r\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\r\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\r\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\r\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\r\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\r\n\t InvalidModuleSpecifier: 'Unexpected token',\r\n\t InvalidRegExp: 'Invalid regular expression',\r\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\r\n\t MissingFromClause: 'Unexpected token',\r\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\r\n\t NewlineAfterThrow: 'Illegal newline after throw',\r\n\t NoAsAfterImportNamespace: 'Unexpected token',\r\n\t NoCatchOrFinally: 'Missing catch or finally after try',\r\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\r\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\r\n\t StaticPrototype: 'Classes may not have static property named prototype',\r\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\r\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\r\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\r\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\r\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\r\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\r\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\r\n\t StrictModeWith: 'Strict mode code may not include a with statement',\r\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\r\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\r\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\r\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\r\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\r\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\r\n\t UnexpectedEOS: 'Unexpected end of input',\r\n\t UnexpectedIdentifier: 'Unexpected identifier',\r\n\t UnexpectedNumber: 'Unexpected number',\r\n\t UnexpectedReserved: 'Unexpected reserved word',\r\n\t UnexpectedString: 'Unexpected string',\r\n\t UnexpectedTemplate: 'Unexpected quasi %0',\r\n\t UnexpectedToken: 'Unexpected token %0',\r\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\r\n\t UnknownLabel: 'Undefined label \\'%0\\'',\r\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\r\n\t};\r\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\tvar assert_1 = __webpack_require__(9);\r\n\tvar character_1 = __webpack_require__(4);\r\n\tvar messages_1 = __webpack_require__(11);\r\n\tfunction hexValue(ch) {\r\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\r\n\t}\r\n\tfunction octalValue(ch) {\r\n\t return '01234567'.indexOf(ch);\r\n\t}\r\n\tvar Scanner = (function () {\r\n\t function Scanner(code, handler) {\r\n\t this.source = code;\r\n\t this.errorHandler = handler;\r\n\t this.trackComment = false;\r\n\t this.length = code.length;\r\n\t this.index = 0;\r\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\r\n\t this.lineStart = 0;\r\n\t this.curlyStack = [];\r\n\t }\r\n\t Scanner.prototype.saveState = function () {\r\n\t return {\r\n\t index: this.index,\r\n\t lineNumber: this.lineNumber,\r\n\t lineStart: this.lineStart\r\n\t };\r\n\t };\r\n\t Scanner.prototype.restoreState = function (state) {\r\n\t this.index = state.index;\r\n\t this.lineNumber = state.lineNumber;\r\n\t this.lineStart = state.lineStart;\r\n\t };\r\n\t Scanner.prototype.eof = function () {\r\n\t return this.index >= this.length;\r\n\t };\r\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\r\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\r\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\r\n\t };\r\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\r\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\r\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\r\n\t };\r\n\t // https://tc39.github.io/ecma262/#sec-comments\r\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\r\n\t var comments = [];\r\n\t var start, loc;\r\n\t if (this.trackComment) {\r\n\t comments = [];\r\n\t start = this.index - offset;\r\n\t loc = {\r\n\t start: {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart - offset\r\n\t },\r\n\t end: {}\r\n\t };\r\n\t }\r\n\t while (!this.eof()) {\r\n\t var ch = this.source.charCodeAt(this.index);\r\n\t ++this.index;\r\n\t if (character_1.Character.isLineTerminator(ch)) {\r\n\t if (this.trackComment) {\r\n\t loc.end = {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart - 1\r\n\t };\r\n\t var entry = {\r\n\t multiLine: false,\r\n\t slice: [start + offset, this.index - 1],\r\n\t range: [start, this.index - 1],\r\n\t loc: loc\r\n\t };\r\n\t comments.push(entry);\r\n\t }\r\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\r\n\t ++this.index;\r\n\t }\r\n\t ++this.lineNumber;\r\n\t this.lineStart = this.index;\r\n\t return comments;\r\n\t }\r\n\t }\r\n\t if (this.trackComment) {\r\n\t loc.end = {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart\r\n\t };\r\n\t var entry = {\r\n\t multiLine: false,\r\n\t slice: [start + offset, this.index],\r\n\t range: [start, this.index],\r\n\t loc: loc\r\n\t };\r\n\t comments.push(entry);\r\n\t }\r\n\t return comments;\r\n\t };\r\n\t Scanner.prototype.skipMultiLineComment = function () {\r\n\t var comments = [];\r\n\t var start, loc;\r\n\t if (this.trackComment) {\r\n\t comments = [];\r\n\t start = this.index - 2;\r\n\t loc = {\r\n\t start: {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart - 2\r\n\t },\r\n\t end: {}\r\n\t };\r\n\t }\r\n\t while (!this.eof()) {\r\n\t var ch = this.source.charCodeAt(this.index);\r\n\t if (character_1.Character.isLineTerminator(ch)) {\r\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\r\n\t ++this.index;\r\n\t }\r\n\t ++this.lineNumber;\r\n\t ++this.index;\r\n\t this.lineStart = this.index;\r\n\t }\r\n\t else if (ch === 0x2A) {\r\n\t // Block comment ends with '*/'.\r\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\r\n\t this.index += 2;\r\n\t if (this.trackComment) {\r\n\t loc.end = {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart\r\n\t };\r\n\t var entry = {\r\n\t multiLine: true,\r\n\t slice: [start + 2, this.index - 2],\r\n\t range: [start, this.index],\r\n\t loc: loc\r\n\t };\r\n\t comments.push(entry);\r\n\t }\r\n\t return comments;\r\n\t }\r\n\t ++this.index;\r\n\t }\r\n\t else {\r\n\t ++this.index;\r\n\t }\r\n\t }\r\n\t // Ran off the end of the file - the whole thing is a comment\r\n\t if (this.trackComment) {\r\n\t loc.end = {\r\n\t line: this.lineNumber,\r\n\t column: this.index - this.lineStart\r\n\t };\r\n\t var entry = {\r\n\t multiLine: true,\r\n\t slice: [start + 2, this.index],\r\n\t range: [start, this.index],\r\n\t loc: loc\r\n\t };\r\n\t comments.push(entry);\r\n\t }\r\n\t this.tolerateUnexpectedToken();\r\n\t return comments;\r\n\t };\r\n\t Scanner.prototype.scanComments = function () {\r\n\t var comments;\r\n\t if (this.trackComment) {\r\n\t comments = [];\r\n\t }\r\n\t var start = (this.index === 0);\r\n\t while (!this.eof()) {\r\n\t var ch = this.source.charCodeAt(this.index);\r\n\t if (character_1.Character.isWhiteSpace(ch)) {\r\n\t ++this.index;\r\n\t }\r\n\t else if (character_1.Character.isLineTerminator(ch)) {\r\n\t ++this.index;\r\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\r\n\t ++this.index;\r\n\t }\r\n\t ++this.lineNumber;\r\n\t this.lineStart = this.index;\r\n\t start = true;\r\n\t }\r\n\t else if (ch === 0x2F) {\r\n\t ch = this.source.charCodeAt(this.index + 1);\r\n\t if (ch === 0x2F) {\r\n\t this.index += 2;\r\n\t var comment = this.skipSingleLineComment(2);\r\n\t if (this.trackComment) {\r\n\t comments = comments.concat(comment);\r\n\t }\r\n\t start = true;\r\n\t }\r\n\t else if (ch === 0x2A) {\r\n\t this.index += 2;\r\n\t var comment = this.skipMultiLineComment();\r\n\t if (this.trackComment) {\r\n\t comments = comments.concat(comment);\r\n\t }\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t else if (start && ch === 0x2D) {\r\n\t // U+003E is '>'\r\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\r\n\t // '-->' is a single-line comment\r\n\t this.index += 3;\r\n\t var comment = this.skipSingleLineComment(3);\r\n\t if (this.trackComment) {\r\n\t comments = comments.concat(comment);\r\n\t }\r\n\t }\r\n\t else {\r\n\t break;\r\n\t }\r\n\t }\r\n\t else if (ch === 0x3C) {\r\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\r\n\t this.index += 4; // `