diff --git a/core/src/views/UnsupportedBrowser.vue b/core/src/views/UnsupportedBrowser.vue index 7aa0346333295..e08d58de3b164 100644 --- a/core/src/views/UnsupportedBrowser.vue +++ b/core/src/views/UnsupportedBrowser.vue @@ -49,13 +49,14 @@ ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=48291522\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=1ef71ebe&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ef71ebe\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-1ef71ebe]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-1ef71ebe]{margin:0}.content-unsupported-browser .empty-content[data-v-1ef71ebe] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-1ef71ebe]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-1ef71ebe]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-1ef71ebe]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\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[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\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\\u09fc\\u09fe\\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-\\u0aff\\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-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\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\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\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\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\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\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\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[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(47976)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","_agents$id","_agents$id2","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","J","D","E","F","B","TC","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","w","y","z","H","UC","I","AB","q","r","s","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","AC","BC","CC","DC","VC","WC","XC","YC","EC","ZC","aC","bC","cC","FC","GC","dC","eC","HC","IC","fC","JC","KC","LC","MC","NC","gC","OC","PC","QC","hC","iC","jC","kC","lC","mC","RC","nC","oC","SC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-unsupported-browser.js?v=5b351bd8746cf455f656","mappings":"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E,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAA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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=48291522","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?ec62","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @copyright 2021 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2021 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2019 Christoph Wurst \n *\n * @author Christoph Wurst \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=48291522\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=4465c3af&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4465c3af\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-4465c3af]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-4465c3af]{margin:0}.content-unsupported-browser .empty-content[data-v-4465c3af] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-4465c3af]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-4465c3af]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-4465c3af]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\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[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\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\\u09fc\\u09fe\\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-\\u0aff\\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-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\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\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\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\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\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\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\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[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(46908)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","_agents$id","_agents$id2","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","J","D","E","F","B","TC","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","w","y","z","H","UC","I","AB","q","r","s","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","AC","BC","CC","DC","VC","WC","XC","YC","EC","ZC","aC","bC","cC","FC","GC","dC","eC","HC","IC","fC","JC","KC","LC","MC","NC","gC","OC","PC","QC","hC","iC","jC","kC","lC","mC","RC","nC","oC","SC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js deleted file mode 100644 index e1d71865bc8a2..0000000000000 --- a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js +++ /dev/null @@ -1,316 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_components_LegacyDialogPrompt_vue"],{ - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": -/*!******************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! - \******************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcTextField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcTextField.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcPasswordField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcPasswordField.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - name: 'LegacyDialogPrompt', - components: { - NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcTextField: _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcPasswordField: _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__["default"] - }, - props: { - name: { - type: String, - required: true - }, - text: { - type: String, - required: true - }, - isPassword: { - type: Boolean, - required: true - }, - inputName: { - type: String, - default: 'prompt-input' - } - }, - emits: ['close'], - data() { - return { - inputValue: '' - }; - }, - computed: { - buttons() { - return [{ - label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'No'), - callback: () => this.$emit('close', false, this.inputValue) - }, { - label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'Yes'), - type: 'primary', - callback: () => this.$emit('close', true, this.inputValue) - }]; - } - }, - mounted() { - this.$nextTick(() => { - var _this$$refs$input, _this$$refs$input$foc; - return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input); - }); - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("NcDialog", { - attrs: { - "dialog-classes": "legacy-prompt__dialog", - buttons: _vm.buttons, - name: _vm.name - }, - on: { - "update:open": function ($event) { - return _vm.$emit("close", false, _vm.inputValue); - } - } - }, [_c("p", { - staticClass: "legacy-prompt__text", - domProps: { - textContent: _vm._s(_vm.text) - } - }), _vm._v(" "), _vm.isPassword ? _c("NcPasswordField", { - ref: "input", - staticClass: "legacy-prompt__input", - attrs: { - autocomplete: "new-password", - label: _vm.name, - name: _vm.inputName, - value: _vm.inputValue - }, - on: { - "update:value": function ($event) { - _vm.inputValue = $event; - } - } - }) : _c("NcTextField", { - ref: "input", - staticClass: "legacy-prompt__input", - attrs: { - label: _vm.name, - name: _vm.inputName, - value: _vm.inputValue - }, - on: { - "update:value": function ($event) { - _vm.inputValue = $event; - } - } - })], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] { - margin-block: 0 0.75em; -} -.legacy-prompt__input[data-v-e8e6d9be] { - margin-block: 0 1em; -} -[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions { - min-width: calc(100% - 12px); - justify-content: space-between; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue": -/*!****************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "e8e6d9be", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "core/src/components/LegacyDialogPrompt.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": -/*!****************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": -/*!**********************************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! - \**********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); - - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!*************************************************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); - - -/***/ }) - -}]); -//# sourceMappingURL=core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map?v=0191abdcf4a0f3a53b42 \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map deleted file mode 100644 index b938c6643b2e2..0000000000000 --- a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js?v=0191abdcf4a0f3a53b42","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?9901","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?c3e8","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?4471","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?aa3c"],"sourcesContent":["import { translate as t } from '@nextcloud/l10n';\nimport { defineComponent } from 'vue';\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js';\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js';\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js';\nexport default defineComponent({\n name: 'LegacyDialogPrompt',\n components: {\n NcDialog,\n NcTextField,\n NcPasswordField\n },\n props: {\n name: {\n type: String,\n required: true\n },\n text: {\n type: String,\n required: true\n },\n isPassword: {\n type: Boolean,\n required: true\n },\n inputName: {\n type: String,\n default: 'prompt-input'\n }\n },\n emits: ['close'],\n data() {\n return {\n inputValue: ''\n };\n },\n computed: {\n buttons() {\n return [{\n label: t('core', 'No'),\n callback: () => this.$emit('close', false, this.inputValue)\n }, {\n label: t('core', 'Yes'),\n type: 'primary',\n callback: () => this.$emit('close', true, this.inputValue)\n }];\n }\n },\n mounted() {\n this.$nextTick(() => {\n var _this$$refs$input, _this$$refs$input$foc;\n return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input);\n });\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"NcDialog\", {\n attrs: {\n \"dialog-classes\": \"legacy-prompt__dialog\",\n buttons: _vm.buttons,\n name: _vm.name\n },\n on: {\n \"update:open\": function ($event) {\n return _vm.$emit(\"close\", false, _vm.inputValue);\n }\n }\n }, [_c(\"p\", {\n staticClass: \"legacy-prompt__text\",\n domProps: {\n textContent: _vm._s(_vm.text)\n }\n }), _vm._v(\" \"), _vm.isPassword ? _c(\"NcPasswordField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n autocomplete: \"new-password\",\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n }) : _c(\"NcTextField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] {\n margin-block: 0 0.75em;\n}\n.legacy-prompt__input[data-v-e8e6d9be] {\n margin-block: 0 1em;\n}\n[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions {\n min-width: calc(100% - 12px);\n justify-content: space-between;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"\nimport script from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nimport style0 from \"./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8e6d9be\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('e8e6d9be')) {\n api.createRecord('e8e6d9be', component.options)\n } else {\n api.reload('e8e6d9be', component.options)\n }\n module.hot.accept(\"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\", function () {\n api.rerender('e8e6d9be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"core/src/components/LegacyDialogPrompt.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"","export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"","export * from \"-!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js deleted file mode 100644 index 7861c7d8a3e63..0000000000000 --- a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js +++ /dev/null @@ -1,10902 +0,0 @@ -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_utils_RedirectUnsupportedBrowsers_js"],{ - -/***/ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@nextcloud/browserslist-config/browserlist.config.js ***! - \***************************************************************************/ -/***/ ((module) => { - -module.exports = [ - '>0.25%', - 'not op_mini all', - 'not dead', - 'Firefox ESR', -]; - - -/***/ }), - -/***/ "./core/src/logger.js": -/*!****************************!*\ - !*** ./core/src/logger.js ***! - \****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/logger */ "./node_modules/@nextcloud/logger/dist/index.js"); -/** - * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - - -const getLogger = user => { - if (user === null) { - return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').build(); - } - return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').setUid(user.uid).build(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getLogger((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)())); - -/***/ }), - -/***/ "./core/src/services/BrowserStorageService.js": -/*!****************************************************!*\ - !*** ./core/src/services/BrowserStorageService.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/browser-storage */ "./node_modules/@nextcloud/browser-storage/dist/index.js"); -/** - * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__.getBuilder)('core').clearOnLogout().persist().build()); - -/***/ }), - -/***/ "./core/src/services/BrowsersListService.js": -/*!**************************************************!*\ - !*** ./core/src/services/BrowsersListService.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ supportedBrowsers: () => (/* binding */ supportedBrowsers), -/* harmony export */ supportedBrowsersRegExp: () => (/* binding */ supportedBrowsersRegExp) -/* harmony export */ }); -/* harmony import */ var browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist-useragent-regexp */ "./node_modules/browserslist-useragent-regexp/dist/index.js"); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(browserslist__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/browserslist-config */ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js"); -/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__); -/** - * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - -// eslint-disable-next-line n/no-extraneous-import - - - -// Generate a regex that matches user agents to detect incompatible browsers -const supportedBrowsersRegExp = (0,browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__.getUserAgentRegex)({ - allowHigherVersions: true, - browsers: (_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default()) -}); -const supportedBrowsers = browserslist__WEBPACK_IMPORTED_MODULE_1___default()((_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default())); - -/***/ }), - -/***/ "./core/src/utils/RedirectUnsupportedBrowsers.js": -/*!*******************************************************!*\ - !*** ./core/src/utils/RedirectUnsupportedBrowsers.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ browserStorageKey: () => (/* binding */ browserStorageKey), -/* harmony export */ testSupportedBrowser: () => (/* binding */ testSupportedBrowser) -/* harmony export */ }); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/BrowsersListService.js */ "./core/src/services/BrowsersListService.js"); -/* harmony import */ var _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/BrowserStorageService.js */ "./core/src/services/BrowserStorageService.js"); -/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../logger.js */ "./core/src/logger.js"); -/* provided dependency */ var Buffer = __webpack_require__(/*! ./node_modules/buffer/index.js */ "./node_modules/buffer/index.js")["Buffer"]; -/** - * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - - - - -const browserStorageKey = 'unsupported-browser-ignore'; -const redirectPath = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/unsupported'); -const isBrowserOverridden = _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__["default"].getItem(browserStorageKey) === 'true'; - -/** - * Test the current browser user agent against our official browserslist config - * and redirect if unsupported - */ -const testSupportedBrowser = function () { - if (_services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__.supportedBrowsersRegExp.test(navigator.userAgent)) { - _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is officially supported ! 🚀'); - return; - } - - // If incompatible BUT ignored, let's keep going - if (isBrowserOverridden) { - _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is NOT supported but has been manually overridden ! ⚠️'); - return; - } - - // If incompatible, NOT overridden AND NOT already on the warning page, - // redirect to the unsupported warning page - if (window.location.pathname.indexOf(redirectPath) === -1) { - const redirectUrl = window.location.href.replace(window.location.origin, ''); - const base64Param = Buffer.from(redirectUrl).toString('base64'); - history.pushState(null, null, "".concat(redirectPath, "?redirect_url=").concat(base64Param)); - window.location.reload(); - } -}; - -/***/ }), - -/***/ "./node_modules/browserslist/browser.js": -/*!**********************************************!*\ - !*** ./node_modules/browserslist/browser.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") - -function noop() {} - -module.exports = { - loadQueries: function loadQueries() { - throw new BrowserslistError( - 'Sharable configs are not supported in client-side build of Browserslist' - ) - }, - - getStat: function getStat(opts) { - return opts.stats - }, - - loadConfig: function loadConfig(opts) { - if (opts.config) { - throw new BrowserslistError( - 'Browserslist config are not supported in client-side build' - ) - } - }, - - loadCountry: function loadCountry() { - throw new BrowserslistError( - 'Country statistics are not supported ' + - 'in client-side build of Browserslist' - ) - }, - - loadFeature: function loadFeature() { - throw new BrowserslistError( - 'Supports queries are not available in client-side build of Browserslist' - ) - }, - - currentNode: function currentNode(resolve, context) { - return resolve(['maintained node versions'], context)[0] - }, - - parseConfig: noop, - - readConfig: noop, - - findConfig: noop, - - clearCaches: noop, - - oldDataWarning: noop, - - env: {} -} - - -/***/ }), - -/***/ "./node_modules/browserslist/error.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/error.js ***! - \********************************************/ -/***/ ((module) => { - -function BrowserslistError(message) { - this.name = 'BrowserslistError' - this.message = message - this.browserslist = true - if (Error.captureStackTrace) { - Error.captureStackTrace(this, BrowserslistError) - } -} - -BrowserslistError.prototype = Error.prototype - -module.exports = BrowserslistError - - -/***/ }), - -/***/ "./node_modules/browserslist/index.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/index.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var jsReleases = __webpack_require__(/*! node-releases/data/processed/envs.json */ "./node_modules/node-releases/data/processed/envs.json") -var agents = (__webpack_require__(/*! caniuse-lite/dist/unpacker/agents */ "./node_modules/caniuse-lite/dist/unpacker/agents.js").agents) -var jsEOL = __webpack_require__(/*! node-releases/data/release-schedule/release-schedule.json */ "./node_modules/node-releases/data/release-schedule/release-schedule.json") -var path = __webpack_require__(/*! path */ "?3465") -var e2c = __webpack_require__(/*! electron-to-chromium/versions */ "./node_modules/electron-to-chromium/versions.js") - -var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") -var parse = __webpack_require__(/*! ./parse */ "./node_modules/browserslist/parse.js") -var env = __webpack_require__(/*! ./node */ "./node_modules/browserslist/browser.js") // Will load browser.js in webpack - -var YEAR = 365.259641 * 24 * 60 * 60 * 1000 -var ANDROID_EVERGREEN_FIRST = '37' -var OP_MOB_BLINK_FIRST = 14 - -// Helpers - -function isVersionsMatch(versionA, versionB) { - return (versionA + '.').indexOf(versionB + '.') === 0 -} - -function isEolReleased(name) { - var version = name.slice(1) - return browserslist.nodeVersions.some(function (i) { - return isVersionsMatch(i, version) - }) -} - -function normalize(versions) { - return versions.filter(function (version) { - return typeof version === 'string' - }) -} - -function normalizeElectron(version) { - var versionToUse = version - if (version.split('.').length === 3) { - versionToUse = version.split('.').slice(0, -1).join('.') - } - return versionToUse -} - -function nameMapper(name) { - return function mapName(version) { - return name + ' ' + version - } -} - -function getMajor(version) { - return parseInt(version.split('.')[0]) -} - -function getMajorVersions(released, number) { - if (released.length === 0) return [] - var majorVersions = uniq(released.map(getMajor)) - var minimum = majorVersions[majorVersions.length - number] - if (!minimum) { - return released - } - var selected = [] - for (var i = released.length - 1; i >= 0; i--) { - if (minimum > getMajor(released[i])) break - selected.unshift(released[i]) - } - return selected -} - -function uniq(array) { - var filtered = [] - for (var i = 0; i < array.length; i++) { - if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) - } - return filtered -} - -function fillUsage(result, name, data) { - for (var i in data) { - result[name + ' ' + i] = data[i] - } -} - -function generateFilter(sign, version) { - version = parseFloat(version) - if (sign === '>') { - return function (v) { - return parseFloat(v) > version - } - } else if (sign === '>=') { - return function (v) { - return parseFloat(v) >= version - } - } else if (sign === '<') { - return function (v) { - return parseFloat(v) < version - } - } else { - return function (v) { - return parseFloat(v) <= version - } - } -} - -function generateSemverFilter(sign, version) { - version = version.split('.').map(parseSimpleInt) - version[1] = version[1] || 0 - version[2] = version[2] || 0 - if (sign === '>') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) > 0 - } - } else if (sign === '>=') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) >= 0 - } - } else if (sign === '<') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) > 0 - } - } else { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) >= 0 - } - } -} - -function parseSimpleInt(x) { - return parseInt(x) -} - -function compare(a, b) { - if (a < b) return -1 - if (a > b) return +1 - return 0 -} - -function compareSemver(a, b) { - return ( - compare(parseInt(a[0]), parseInt(b[0])) || - compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || - compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) - ) -} - -// this follows the npm-like semver behavior -function semverFilterLoose(operator, range) { - range = range.split('.').map(parseSimpleInt) - if (typeof range[1] === 'undefined') { - range[1] = 'x' - } - // ignore any patch version because we only return minor versions - // range[2] = 'x' - switch (operator) { - case '<=': - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) <= 0 - } - case '>=': - default: - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) >= 0 - } - } -} - -// this follows the npm-like semver behavior -function compareSemverLoose(version, range) { - if (version[0] !== range[0]) { - return version[0] < range[0] ? -1 : +1 - } - if (range[1] === 'x') { - return 0 - } - if (version[1] !== range[1]) { - return version[1] < range[1] ? -1 : +1 - } - return 0 -} - -function resolveVersion(data, version) { - if (data.versions.indexOf(version) !== -1) { - return version - } else if (browserslist.versionAliases[data.name][version]) { - return browserslist.versionAliases[data.name][version] - } else { - return false - } -} - -function normalizeVersion(data, version) { - var resolved = resolveVersion(data, version) - if (resolved) { - return resolved - } else if (data.versions.length === 1) { - return data.versions[0] - } else { - return false - } -} - -function filterByYear(since, context) { - since = since / 1000 - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var versions = Object.keys(data.releaseDate).filter(function (v) { - var date = data.releaseDate[v] - return date !== null && date >= since - }) - return selected.concat(versions.map(nameMapper(data.name))) - }, []) -} - -function cloneData(data) { - return { - name: data.name, - versions: data.versions, - released: data.released, - releaseDate: data.releaseDate - } -} - -function byName(name, context) { - name = name.toLowerCase() - name = browserslist.aliases[name] || name - if (context.mobileToDesktop && browserslist.desktopNames[name]) { - var desktop = browserslist.data[browserslist.desktopNames[name]] - if (name === 'android') { - return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) - } else { - var cloned = cloneData(desktop) - cloned.name = name - return cloned - } - } - return browserslist.data[name] -} - -function normalizeAndroidVersions(androidVersions, chromeVersions) { - var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) - return androidVersions - .filter(function (version) { - return /^(?:[2-4]\.|[34]$)/.test(version) - }) - .concat(chromeVersions.slice(iFirstEvergreen)) -} - -function copyObject(obj) { - var copy = {} - for (var key in obj) { - copy[key] = obj[key] - } - return copy -} - -function normalizeAndroidData(android, chrome) { - android.released = normalizeAndroidVersions(android.released, chrome.released) - android.versions = normalizeAndroidVersions(android.versions, chrome.versions) - android.releaseDate = copyObject(android.releaseDate) - android.released.forEach(function (v) { - if (android.releaseDate[v] === undefined) { - android.releaseDate[v] = chrome.releaseDate[v] - } - }) - return android -} - -function checkName(name, context) { - var data = byName(name, context) - if (!data) throw new BrowserslistError('Unknown browser ' + name) - return data -} - -function unknownQuery(query) { - return new BrowserslistError( - 'Unknown browser query `' + - query + - '`. ' + - 'Maybe you are using old Browserslist or made typo in query.' - ) -} - -// Adjusts last X versions queries for some mobile browsers, -// where caniuse data jumps from a legacy version to the latest -function filterJumps(list, name, nVersions, context) { - var jump = 1 - switch (name) { - case 'android': - if (context.mobileToDesktop) return list - var released = browserslist.data.chrome.released - jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) - break - case 'op_mob': - var latest = browserslist.data.op_mob.released.slice(-1)[0] - jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 - break - default: - return list - } - if (nVersions <= jump) { - return list.slice(-1) - } - return list.slice(jump - 1 - nVersions) -} - -function isSupported(flags, withPartial) { - return ( - typeof flags === 'string' && - (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) - ) -} - -function resolve(queries, context) { - return parse(QUERIES, queries).reduce(function (result, node, index) { - if (node.not && index === 0) { - throw new BrowserslistError( - 'Write any browsers query (for instance, `defaults`) ' + - 'before `' + - node.query + - '`' - ) - } - var type = QUERIES[node.type] - var array = type.select.call(browserslist, context, node).map(function (j) { - var parts = j.split(' ') - if (parts[1] === '0') { - return parts[0] + ' ' + byName(parts[0], context).versions[0] - } else { - return j - } - }) - - if (node.compose === 'and') { - if (node.not) { - return result.filter(function (j) { - return array.indexOf(j) === -1 - }) - } else { - return result.filter(function (j) { - return array.indexOf(j) !== -1 - }) - } - } else { - if (node.not) { - var filter = {} - array.forEach(function (j) { - filter[j] = true - }) - return result.filter(function (j) { - return !filter[j] - }) - } - return result.concat(array) - } - }, []) -} - -function prepareOpts(opts) { - if (typeof opts === 'undefined') opts = {} - - if (typeof opts.path === 'undefined') { - opts.path = path.resolve ? path.resolve('.') : '.' - } - - return opts -} - -function prepareQueries(queries, opts) { - if (typeof queries === 'undefined' || queries === null) { - var config = browserslist.loadConfig(opts) - if (config) { - queries = config - } else { - queries = browserslist.defaults - } - } - - return queries -} - -function checkQueries(queries) { - if (!(typeof queries === 'string' || Array.isArray(queries))) { - throw new BrowserslistError( - 'Browser queries must be an array or string. Got ' + typeof queries + '.' - ) - } -} - -var cache = {} - -function browserslist(queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - - var context = { - ignoreUnknownVersions: opts.ignoreUnknownVersions, - dangerousExtend: opts.dangerousExtend, - mobileToDesktop: opts.mobileToDesktop, - path: opts.path, - env: opts.env - } - - env.oldDataWarning(browserslist.data) - var stats = env.getStat(opts, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - - var cacheKey = JSON.stringify([queries, context]) - if (cache[cacheKey]) return cache[cacheKey] - - var result = uniq(resolve(queries, context)).sort(function (name1, name2) { - name1 = name1.split(' ') - name2 = name2.split(' ') - if (name1[0] === name2[0]) { - // assumptions on caniuse data - // 1) version ranges never overlaps - // 2) if version is not a range, it never contains `-` - var version1 = name1[1].split('-')[0] - var version2 = name2[1].split('-')[0] - return compareSemver(version2.split('.'), version1.split('.')) - } else { - return compare(name1[0], name2[0]) - } - }) - if (!env.env.BROWSERSLIST_DISABLE_CACHE) { - cache[cacheKey] = result - } - return result -} - -browserslist.parse = function (queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - return parse(QUERIES, queries) -} - -// Will be filled by Can I Use data below -browserslist.cache = {} -browserslist.data = {} -browserslist.usage = { - global: {}, - custom: null -} - -// Default browsers query -browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] - -// Browser names aliases -browserslist.aliases = { - fx: 'firefox', - ff: 'firefox', - ios: 'ios_saf', - explorer: 'ie', - blackberry: 'bb', - explorermobile: 'ie_mob', - operamini: 'op_mini', - operamobile: 'op_mob', - chromeandroid: 'and_chr', - firefoxandroid: 'and_ff', - ucandroid: 'and_uc', - qqandroid: 'and_qq' -} - -// Can I Use only provides a few versions for some browsers (e.g. and_chr). -// Fallback to a similar browser for unknown versions -// Note op_mob is not included as its chromium versions are not in sync with Opera desktop -browserslist.desktopNames = { - and_chr: 'chrome', - and_ff: 'firefox', - ie_mob: 'ie', - android: 'chrome' // has extra processing logic -} - -// Aliases to work with joined versions like `ios_saf 7.0-7.1` -browserslist.versionAliases = {} - -browserslist.clearCaches = env.clearCaches -browserslist.parseConfig = env.parseConfig -browserslist.readConfig = env.readConfig -browserslist.findConfig = env.findConfig -browserslist.loadConfig = env.loadConfig - -browserslist.coverage = function (browsers, stats) { - var data - if (typeof stats === 'undefined') { - data = browserslist.usage.global - } else if (stats === 'my stats') { - var opts = {} - opts.path = path.resolve ? path.resolve('.') : '.' - var customStats = env.getStat(opts) - if (!customStats) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - data = {} - for (var browser in customStats) { - fillUsage(data, browser, customStats[browser]) - } - } else if (typeof stats === 'string') { - if (stats.length > 2) { - stats = stats.toLowerCase() - } else { - stats = stats.toUpperCase() - } - env.loadCountry(browserslist.usage, stats, browserslist.data) - data = browserslist.usage[stats] - } else { - if ('dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - data = {} - for (var name in stats) { - for (var version in stats[name]) { - data[name + ' ' + version] = stats[name][version] - } - } - } - - return browsers.reduce(function (all, i) { - var usage = data[i] - if (usage === undefined) { - usage = data[i.replace(/ \S+$/, ' 0')] - } - return all + (usage || 0) - }, 0) -} - -function nodeQuery(context, node) { - var matched = browserslist.nodeVersions.filter(function (i) { - return isVersionsMatch(i, node.version) - }) - if (matched.length === 0) { - if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of Node.js' - ) - } - } - return ['node ' + matched[matched.length - 1]] -} - -function sinceQuery(context, node) { - var year = parseInt(node.year) - var month = parseInt(node.month || '01') - 1 - var day = parseInt(node.day || '01') - return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) -} - -function coverQuery(context, node) { - var coverage = parseFloat(node.coverage) - var usage = browserslist.usage.global - if (node.place) { - if (node.place.match(/^my\s+stats$/i)) { - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - usage = context.customUsage - } else { - var place - if (node.place.length === 2) { - place = node.place.toUpperCase() - } else { - place = node.place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - usage = browserslist.usage[place] - } - } - var versions = Object.keys(usage).sort(function (a, b) { - return usage[b] - usage[a] - }) - var coveraged = 0 - var result = [] - var version - for (var i = 0; i < versions.length; i++) { - version = versions[i] - if (usage[version] === 0) break - coveraged += usage[version] - result.push(version) - if (coveraged >= coverage) break - } - return result -} - -var QUERIES = { - last_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+major\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = getMajorVersions(data.released, node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.released.slice(-node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_electron_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, - select: function (context, node) { - var validVersions = getMajorVersions(Object.keys(e2c), node.versions) - return validVersions.map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, - select: function (context, node) { - return getMajorVersions(browserslist.nodeVersions, node.versions).map( - function (version) { - return 'node ' + version - } - ) - } - }, - last_browser_major_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var validVersions = getMajorVersions(data.released, node.versions) - var list = validVersions.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - last_electron_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, - select: function (context, node) { - return Object.keys(e2c) - .slice(-node.versions) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+versions?$/i, - select: function (context, node) { - return browserslist.nodeVersions - .slice(-node.versions) - .map(function (version) { - return 'node ' + version - }) - } - }, - last_browser_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var list = data.released.slice(-node.versions).map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - unreleased_versions: { - matches: [], - regexp: /^unreleased\s+versions$/i, - select: function (context) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.versions.filter(function (v) { - return data.released.indexOf(v) === -1 - }) - list = list.map(nameMapper(data.name)) - return selected.concat(list) - }, []) - } - }, - unreleased_electron_versions: { - matches: [], - regexp: /^unreleased\s+electron\s+versions?$/i, - select: function () { - return [] - } - }, - unreleased_browser_versions: { - matches: ['browser'], - regexp: /^unreleased\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - return data.versions - .filter(function (v) { - return data.released.indexOf(v) === -1 - }) - .map(nameMapper(data.name)) - } - }, - last_years: { - matches: ['years'], - regexp: /^last\s+(\d*.?\d+)\s+years?$/i, - select: function (context, node) { - return filterByYear(Date.now() - YEAR * node.years, context) - } - }, - since_y: { - matches: ['year'], - regexp: /^since (\d+)$/i, - select: sinceQuery - }, - since_y_m: { - matches: ['year', 'month'], - regexp: /^since (\d+)-(\d+)$/i, - select: sinceQuery - }, - since_y_m_d: { - matches: ['year', 'month', 'day'], - regexp: /^since (\d+)-(\d+)-(\d+)$/i, - select: sinceQuery - }, - popularity: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var usage = browserslist.usage.global - return Object.keys(usage).reduce(function (result, version) { - if (node.sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_my_stats: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_config_stats: { - matches: ['sign', 'popularity', 'config'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var stats = env.loadStat(context, node.config, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_place: { - matches: ['sign', 'popularity', 'place'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var place = node.place - if (place.length === 2) { - place = place.toUpperCase() - } else { - place = place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - var usage = browserslist.usage[place] - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - cover: { - matches: ['coverage'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, - select: coverQuery - }, - cover_in: { - matches: ['coverage', 'place'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, - select: coverQuery - }, - supports: { - matches: ['supportType', 'feature'], - regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/, - select: function (context, node) { - env.loadFeature(browserslist.cache, node.feature) - var withPartial = node.supportType !== 'fully' - var features = browserslist.cache[node.feature] - var result = [] - for (var name in features) { - var data = byName(name, context) - // Only check desktop when latest released mobile has support - var checkDesktop = - context.mobileToDesktop && - name in browserslist.desktopNames && - isSupported(features[name][data.released.slice(-1)[0]], withPartial) - data.versions.forEach(function (version) { - var flags = features[name][version] - if (flags === undefined && checkDesktop) { - flags = features[browserslist.desktopNames[name]][version] - } - if (isSupported(flags, withPartial)) { - result.push(name + ' ' + version) - } - }) - } - return result - } - }, - electron_range: { - matches: ['from', 'to'], - regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var fromToUse = normalizeElectron(node.from) - var toToUse = normalizeElectron(node.to) - var from = parseFloat(node.from) - var to = parseFloat(node.to) - if (!e2c[fromToUse]) { - throw new BrowserslistError('Unknown version ' + from + ' of electron') - } - if (!e2c[toToUse]) { - throw new BrowserslistError('Unknown version ' + to + ' of electron') - } - return Object.keys(e2c) - .filter(function (i) { - var parsed = parseFloat(i) - return parsed >= from && parsed <= to - }) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_range: { - matches: ['from', 'to'], - regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(semverFilterLoose('>=', node.from)) - .filter(semverFilterLoose('<=', node.to)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_range: { - matches: ['browser', 'from', 'to'], - regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var from = parseFloat(normalizeVersion(data, node.from) || node.from) - var to = parseFloat(normalizeVersion(data, node.to) || node.to) - function filter(v) { - var parsed = parseFloat(v) - return parsed >= from && parsed <= to - } - return data.released.filter(filter).map(nameMapper(data.name)) - } - }, - electron_ray: { - matches: ['sign', 'version'], - regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - return Object.keys(e2c) - .filter(generateFilter(node.sign, versionToUse)) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_ray: { - matches: ['sign', 'version'], - regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(generateSemverFilter(node.sign, node.version)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_ray: { - matches: ['browser', 'sign', 'version'], - regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, - select: function (context, node) { - var version = node.version - var data = checkName(node.browser, context) - var alias = browserslist.versionAliases[data.name][version] - if (alias) version = alias - return data.released - .filter(generateFilter(node.sign, version)) - .map(function (v) { - return data.name + ' ' + v - }) - } - }, - firefox_esr: { - matches: [], - regexp: /^(firefox|ff|fx)\s+esr$/i, - select: function () { - return ['firefox 115'] - } - }, - opera_mini_all: { - matches: [], - regexp: /(operamini|op_mini)\s+all/i, - select: function () { - return ['op_mini all'] - } - }, - electron_version: { - matches: ['version'], - regexp: /^electron\s+([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - var chrome = e2c[versionToUse] - if (!chrome) { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of electron' - ) - } - return ['chrome ' + chrome] - } - }, - node_major_version: { - matches: ['version'], - regexp: /^node\s+(\d+)$/i, - select: nodeQuery - }, - node_minor_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+)$/i, - select: nodeQuery - }, - node_patch_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+\.\d+)$/i, - select: nodeQuery - }, - current_node: { - matches: [], - regexp: /^current\s+node$/i, - select: function (context) { - return [env.currentNode(resolve, context)] - } - }, - maintained_node: { - matches: [], - regexp: /^maintained\s+node\s+versions$/i, - select: function (context) { - var now = Date.now() - var queries = Object.keys(jsEOL) - .filter(function (key) { - return ( - now < Date.parse(jsEOL[key].end) && - now > Date.parse(jsEOL[key].start) && - isEolReleased(key) - ) - }) - .map(function (key) { - return 'node ' + key.slice(1) - }) - return resolve(queries, context) - } - }, - phantomjs_1_9: { - matches: [], - regexp: /^phantomjs\s+1.9$/i, - select: function () { - return ['safari 5'] - } - }, - phantomjs_2_1: { - matches: [], - regexp: /^phantomjs\s+2.1$/i, - select: function () { - return ['safari 6'] - } - }, - browser_version: { - matches: ['browser', 'version'], - regexp: /^(\w+)\s+(tp|[\d.]+)$/i, - select: function (context, node) { - var version = node.version - if (/^tp$/i.test(version)) version = 'TP' - var data = checkName(node.browser, context) - var alias = normalizeVersion(data, version) - if (alias) { - version = alias - } else { - if (version.indexOf('.') === -1) { - alias = version + '.0' - } else { - alias = version.replace(/\.0$/, '') - } - alias = normalizeVersion(data, alias) - if (alias) { - version = alias - } else if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + version + ' of ' + node.browser - ) - } - } - return [data.name + ' ' + version] - } - }, - browserslist_config: { - matches: [], - regexp: /^browserslist config$/i, - select: function (context) { - return browserslist(undefined, context) - } - }, - extends: { - matches: ['config'], - regexp: /^extends (.+)$/i, - select: function (context, node) { - return resolve(env.loadQueries(context, node.config), context) - } - }, - defaults: { - matches: [], - regexp: /^defaults$/i, - select: function (context) { - return resolve(browserslist.defaults, context) - } - }, - dead: { - matches: [], - regexp: /^dead$/i, - select: function (context) { - var dead = [ - 'Baidu >= 0', - 'ie <= 11', - 'ie_mob <= 11', - 'bb <= 10', - 'op_mob <= 12.1', - 'samsung 4' - ] - return resolve(dead, context) - } - }, - unknown: { - matches: [], - regexp: /^(\w+)$/i, - select: function (context, node) { - if (byName(node.query, context)) { - throw new BrowserslistError( - 'Specify versions in Browserslist query for browser ' + node.query - ) - } else { - throw unknownQuery(node.query) - } - } - } -} - -// Get and convert Can I Use data - -;(function () { - for (var name in agents) { - var browser = agents[name] - browserslist.data[name] = { - name: name, - versions: normalize(agents[name].versions), - released: normalize(agents[name].versions.slice(0, -3)), - releaseDate: agents[name].release_date - } - fillUsage(browserslist.usage.global, name, browser.usage_global) - - browserslist.versionAliases[name] = {} - for (var i = 0; i < browser.versions.length; i++) { - var full = browser.versions[i] - if (!full) continue - - if (full.indexOf('-') !== -1) { - var interval = full.split('-') - for (var j = 0; j < interval.length; j++) { - browserslist.versionAliases[name][interval[j]] = full - } - } - } - } - - browserslist.nodeVersions = jsReleases.map(function (release) { - return release.version - }) -})() - -module.exports = browserslist - - -/***/ }), - -/***/ "./node_modules/browserslist/parse.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/parse.js ***! - \********************************************/ -/***/ ((module) => { - -var AND_REGEXP = /^\s+and\s+(.*)/i -var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i - -function flatten(array) { - if (!Array.isArray(array)) return [array] - return array.reduce(function (a, b) { - return a.concat(flatten(b)) - }, []) -} - -function find(string, predicate) { - for (var n = 1, max = string.length; n <= max; n++) { - var parsed = string.substr(-n, n) - if (predicate(parsed, n, max)) { - return string.slice(0, -n) - } - } - return '' -} - -function matchQuery(all, query) { - var node = { query: query } - if (query.indexOf('not ') === 0) { - node.not = true - query = query.slice(4) - } - - for (var name in all) { - var type = all[name] - var match = query.match(type.regexp) - if (match) { - node.type = name - for (var i = 0; i < type.matches.length; i++) { - node[type.matches[i]] = match[i + 1] - } - return node - } - } - - node.type = 'unknown' - return node -} - -function matchBlock(all, string, qs) { - var node - return find(string, function (parsed, n, max) { - if (AND_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(AND_REGEXP)[1]) - node.compose = 'and' - qs.unshift(node) - return true - } else if (OR_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(OR_REGEXP)[1]) - node.compose = 'or' - qs.unshift(node) - return true - } else if (n === max) { - node = matchQuery(all, parsed.trim()) - node.compose = 'or' - qs.unshift(node) - return true - } - return false - }) -} - -module.exports = function parse(all, queries) { - if (!Array.isArray(queries)) queries = [queries] - return flatten( - queries.map(function (block) { - var qs = [] - do { - block = matchBlock(all, block, qs) - } while (block) - return qs - }) - ) -} - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/agents.js": -/*!**************************************************!*\ - !*** ./node_modules/caniuse-lite/data/agents.js ***! - \**************************************************/ -/***/ ((module) => { - -module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TC","J","D","E","F","A","B","","",""],E:"IE",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0.007984,"1":0.015968,"2":0.015968,"3":0.011976,"4":0.015968,"5":0.015968,"6":0.035928,"7":0.267464,"8":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","","",""],E:"Edge",F:{"0":1680825600,"1":1683158400,"2":1685664000,"3":1689897600,"4":1692576000,"5":1694649600,"6":1697155200,"7":1698969600,"8":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.003992,"1":0.007984,"2":0.011976,"3":0.467064,"4":0.003992,"5":0.007984,"6":0.087824,"7":0.227544,"8":0.231536,"9":0,UC:0,"7B":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,"8B":0.003992,kB:0,"9B":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,"1B":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:"moz",C:["UC","7B","WC","XC","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC","VC"],E:"Firefox",F:{"0":1681171200,"1":1683590400,"2":1686009600,"3":1688428800,"4":1690848000,"5":1693267200,"6":1695686400,"7":1698105600,"8":1700524800,"9":1308614400,UC:1161648000,"7B":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,"8B":1520985600,kB:1525824000,"9B":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,"0B":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,"1B":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{"0":0.075848,"1":0.15968,"2":0.115768,"3":0.07984,"4":0.263472,"5":0.195608,"6":0.467064,"7":2.4471,"8":15.8562,"9":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,"8B":0,kB:0.015968,"9B":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,"0B":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,"1B":0.015968,BC:0,CC:0,DC:0},B:"webkit",C:["","","","","","","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC"],E:"Chrome",F:{"0":1680566400,"1":1682985600,"2":1685404800,"3":1689724800,"4":1692057600,"5":1694476800,"6":1696896000,"7":1698710400,"8":1701993600,"9":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,"8B":1496707200,kB:1500940800,"9B":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,"0B":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,"1B":1708387200,BC:null,CC:null,DC:null}},E:{A:{"9":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,"2B":0.015968,"3B":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,"4B":0.043912,fC:0.2994,"5B":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,"6B":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","YC","EC","I","9","ZC","J","aC","D","bC","E","F","cC","A","FC","B","2B","C","3B","K","GC","L","dC","G","eC","HC","IC","4B","fC","5B","JC","KC","LC","MC","NC","gC","6B","OC","PC","QC","hC","iC",""],E:"Safari",F:{"9":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,"2B":1522281600,C:1537142400,"3B":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,"4B":1652745600,fC:1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,"6B":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,"2B":0,RC:0,nC:0,"3B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","F","jC","kC","lC","mC","B","2B","RC","nC","C","3B","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","","",""],E:"Opera",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,"2B":1302566400,RC:1309219200,nC:1323129600,C:1323129600,"3B":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,"0B":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:"o",B:"o",C:"o",jC:"o",kC:"o",lC:"o",mC:"o","2B":"o",RC:"o",nC:"o","3B":"o"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,"0C":0.267828,"1C":0.00451396,"2C":0.0496536,"3C":0.0135419,"4C":0.0601861,"5C":0.105326,"6C":0.160998,"7C":0.0692141,HC:0.0797466,IC:0.0932885,"4B":0.123382,"8C":0.961474,"5B":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,"9C":2.01925,"6B":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","EC","oC","SC","pC","qC","rC","E","sC","tC","uC","vC","wC","xC","yC","zC","0C","1C","2C","3C","4C","5C","6C","7C","HC","IC","4B","8C","5B","JC","KC","LC","MC","NC","9C","6B","OC","PC","QC","","",""],E:"Safari on iOS",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,"0C":1553472000,"1C":1568851200,"2C":1572220800,"3C":1580169600,"4C":1585008000,"5C":1600214400,"6C":1619395200,"7C":1632096000,HC:1639353600,IC:1647216000,"4B":1652659200,"8C":1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,"9C":1690156800,"6B":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","AD","","",""],E:"Opera Mini",F:{AD:1426464000}},I:{A:{"7B":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BD","CD","DD","7B","I","ED","SC","FD","GD","H","","",""],E:"Android Browser",F:{BD:1256515200,CD:1274313600,DD:1291593600,"7B":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,"2B":0,RC:0,"3B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","2B","RC","C","3B","u","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,"2B":1314835200,RC:1318291200,C:1330300800,"3B":1349740800,u:1673827200},D:{u:"webkit"}},L:{A:{H:40.5268},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1705968000}},M:{A:{"1B":0.30045},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1B","","",""],E:"Firefox for Android",F:{"1B":1705968000}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{"4B":0.811215},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4B","","",""],E:"UC Browser for Android",F:{"4B":1687132800},D:{"4B":"webkit"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,"5B":0.0107426,"6B":0.0322279,RD:0.0214852,SD:0.0322279},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","HD","ID","JD","KD","LD","FC","MD","ND","OD","PD","QD","5B","6B","RD","SD","q","r","s","t","","",""],E:"Samsung Internet",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,"5B":1640736000,"6B":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GC","","",""],E:"QQ Browser",F:{GC:1663718400}},R:{A:{TD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TD","","",""],E:"Baidu Browser",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UD","VD","","",""],E:"KaiOS Browser",F:{UD:1527811200,VD:1631664000}}}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/browserVersions.js": -/*!***********************************************************!*\ - !*** ./node_modules/caniuse-lite/data/browserVersions.js ***! - \***********************************************************/ -/***/ ((module) => { - -module.exports={"0":"112","1":"113","2":"114","3":"115","4":"116","5":"117","6":"118","7":"119","8":"120","9":"5",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"121",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"20",r:"21",s:"22",t:"23",u:"73",v:"107",w:"108",x:"109",y:"110",z:"111",AB:"19",BB:"24",CB:"25",DB:"26",EB:"27",FB:"28",GB:"29",HB:"30",IB:"31",JB:"32",KB:"33",LB:"34",MB:"35",NB:"36",OB:"37",PB:"38",QB:"39",RB:"40",SB:"41",TB:"42",UB:"43",VB:"44",WB:"45",XB:"46",YB:"47",ZB:"48",aB:"49",bB:"50",cB:"51",dB:"52",eB:"53",fB:"54",gB:"55",hB:"56",iB:"57",jB:"58",kB:"60",lB:"62",mB:"63",nB:"64",oB:"65",pB:"66",qB:"67",rB:"68",sB:"69",tB:"70",uB:"71",vB:"72",wB:"74",xB:"75",yB:"76",zB:"77","0B":"78","1B":"122","2B":"11.1","3B":"12.1","4B":"15.5","5B":"16.0","6B":"17.0","7B":"3","8B":"59","9B":"61",AC:"82",BC:"123",CC:"124",DC:"125",EC:"3.2",FC:"10.1",GC:"13.1",HC:"15.2-15.3",IC:"15.4",JC:"16.1",KC:"16.2",LC:"16.3",MC:"16.4",NC:"16.5",OC:"17.1",PC:"17.2",QC:"17.3",RC:"11.5",SC:"4.2-4.3",TC:"5.5",UC:"2",VC:"126",WC:"3.5",XC:"3.6",YC:"3.1",ZC:"5.1",aC:"6.1",bC:"7.1",cC:"9.1",dC:"14.1",eC:"15.1",fC:"15.6",gC:"16.6",hC:"17.4",iC:"TP",jC:"9.5-9.6",kC:"10.0-10.1",lC:"10.5",mC:"10.6",nC:"11.6",oC:"4.0-4.1",pC:"5.0-5.1",qC:"6.0-6.1",rC:"7.0-7.1",sC:"8.1-8.4",tC:"9.0-9.2",uC:"9.3",vC:"10.0-10.2",wC:"10.3",xC:"11.0-11.2",yC:"11.3-11.4",zC:"12.0-12.1","0C":"12.2-12.5","1C":"13.0-13.1","2C":"13.2","3C":"13.3","4C":"13.4-13.7","5C":"14.0-14.4","6C":"14.5-14.8","7C":"15.0-15.1","8C":"15.6-15.8","9C":"16.6-16.7",AD:"all",BD:"2.1",CD:"2.2",DD:"2.3",ED:"4.1",FD:"4.4",GD:"4.4.3-4.4.4",HD:"5.0-5.4",ID:"6.2-6.4",JD:"7.2-7.4",KD:"8.2",LD:"9.2",MD:"11.1-11.2",ND:"12.0",OD:"13.0",PD:"14.0",QD:"15.0",RD:"18.0",SD:"19.0",TD:"13.18",UD:"2.5",VD:"3.0-3.1"}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/browsers.js": -/*!****************************************************!*\ - !*** ./node_modules/caniuse-lite/data/browsers.js ***! - \****************************************************/ -/***/ ((module) => { - -module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/agents.js": -/*!***********************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/agents.js ***! - \***********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -const browsers = (__webpack_require__(/*! ./browsers */ "./node_modules/caniuse-lite/dist/unpacker/browsers.js").browsers) -const versions = (__webpack_require__(/*! ./browserVersions */ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js").browserVersions) -const agentsData = __webpack_require__(/*! ../../data/agents */ "./node_modules/caniuse-lite/data/agents.js") - -function unpackBrowserVersions(versionsData) { - return Object.keys(versionsData).reduce((usage, version) => { - usage[versions[version]] = versionsData[version] - return usage - }, {}) -} - -module.exports.agents = Object.keys(agentsData).reduce((map, key) => { - let versionsData = agentsData[key] - map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { - if (entry === 'A') { - data.usage_global = unpackBrowserVersions(versionsData[entry]) - } else if (entry === 'C') { - data.versions = versionsData[entry].reduce((list, version) => { - if (version === '') { - list.push(null) - } else { - list.push(versions[version]) - } - return list - }, []) - } else if (entry === 'D') { - data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) - } else if (entry === 'E') { - data.browser = versionsData[entry] - } else if (entry === 'F') { - data.release_date = Object.keys(versionsData[entry]).reduce( - (map2, key2) => { - map2[versions[key2]] = versionsData[entry][key2] - return map2 - }, - {} - ) - } else { - // entry is B - data.prefix = versionsData[entry] - } - return data - }, {}) - return map -}, {}) - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js": -/*!********************************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/browserVersions.js ***! - \********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports.browserVersions = __webpack_require__(/*! ../../data/browserVersions */ "./node_modules/caniuse-lite/data/browserVersions.js") - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/browsers.js": -/*!*************************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/browsers.js ***! - \*************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports.browsers = __webpack_require__(/*! ../../data/browsers */ "./node_modules/caniuse-lite/data/browsers.js") - - -/***/ }), - -/***/ "./node_modules/electron-to-chromium/versions.js": -/*!*******************************************************!*\ - !*** ./node_modules/electron-to-chromium/versions.js ***! - \*******************************************************/ -/***/ ((module) => { - -module.exports = { - "0.20": "39", - "0.21": "41", - "0.22": "41", - "0.23": "41", - "0.24": "41", - "0.25": "42", - "0.26": "42", - "0.27": "43", - "0.28": "43", - "0.29": "43", - "0.30": "44", - "0.31": "45", - "0.32": "45", - "0.33": "45", - "0.34": "45", - "0.35": "45", - "0.36": "47", - "0.37": "49", - "1.0": "49", - "1.1": "50", - "1.2": "51", - "1.3": "52", - "1.4": "53", - "1.5": "54", - "1.6": "56", - "1.7": "58", - "1.8": "59", - "2.0": "61", - "2.1": "61", - "3.0": "66", - "3.1": "66", - "4.0": "69", - "4.1": "69", - "4.2": "69", - "5.0": "73", - "6.0": "76", - "6.1": "76", - "7.0": "78", - "7.1": "78", - "7.2": "78", - "7.3": "78", - "8.0": "80", - "8.1": "80", - "8.2": "80", - "8.3": "80", - "8.4": "80", - "8.5": "80", - "9.0": "83", - "9.1": "83", - "9.2": "83", - "9.3": "83", - "9.4": "83", - "10.0": "85", - "10.1": "85", - "10.2": "85", - "10.3": "85", - "10.4": "85", - "11.0": "87", - "11.1": "87", - "11.2": "87", - "11.3": "87", - "11.4": "87", - "11.5": "87", - "12.0": "89", - "12.1": "89", - "12.2": "89", - "13.0": "91", - "13.1": "91", - "13.2": "91", - "13.3": "91", - "13.4": "91", - "13.5": "91", - "13.6": "91", - "14.0": "93", - "14.1": "93", - "14.2": "93", - "15.0": "94", - "15.1": "94", - "15.2": "94", - "15.3": "94", - "15.4": "94", - "15.5": "94", - "16.0": "96", - "16.1": "96", - "16.2": "96", - "17.0": "98", - "17.1": "98", - "17.2": "98", - "17.3": "98", - "17.4": "98", - "18.0": "100", - "18.1": "100", - "18.2": "100", - "18.3": "100", - "19.0": "102", - "19.1": "102", - "20.0": "104", - "20.1": "104", - "20.2": "104", - "20.3": "104", - "21.0": "106", - "21.1": "106", - "21.2": "106", - "21.3": "106", - "21.4": "106", - "22.0": "108", - "22.1": "108", - "22.2": "108", - "22.3": "108", - "23.0": "110", - "23.1": "110", - "23.2": "110", - "23.3": "110", - "24.0": "112", - "24.1": "112", - "24.2": "112", - "24.3": "112", - "24.4": "112", - "24.5": "112", - "24.6": "112", - "24.7": "112", - "24.8": "112", - "25.0": "114", - "25.1": "114", - "25.2": "114", - "25.3": "114", - "25.4": "114", - "25.5": "114", - "25.6": "114", - "25.7": "114", - "25.8": "114", - "25.9": "114", - "26.0": "116", - "26.1": "116", - "26.2": "116", - "26.3": "116", - "26.4": "116", - "26.5": "116", - "26.6": "116", - "27.0": "118", - "27.1": "118", - "27.2": "118", - "27.3": "118", - "28.0": "120", - "28.1": "120", - "28.2": "120", - "29.0": "122", - "30.0": "123" -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/index.js": -/*!******************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/index.js ***! - \******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var compatTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"); -var _transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); - -module.exports = { - /** - * Translates a regexp in new syntax to equivalent regexp in old syntax. - * - * @param string|RegExp|AST - regexp - * @param Array transformsWhitelist - names of the transforms to apply - */ - transform: function transform(regexp) { - var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - - var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms); - - var result = void 0; - - // Collect extra data per transform. - var extra = {}; - - transformToApply.forEach(function (transformName) { - - if (!compatTransforms.hasOwnProperty(transformName)) { - throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', ')); - } - - var handler = compatTransforms[transformName]; - - result = _transform.transform(regexp, handler); - regexp = result.getAST(); - - // Collect `extra` transform result. - if (typeof handler.getExtra === 'function') { - extra[transformName] = handler.getExtra(); - } - }); - - // Set the final extras for all transforms. - result.setExtra(extra); - - return result; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js": -/*!**************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js ***! - \**************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * The `RegExpTree` class provides runtime support for `compat-transpiler` - * module from `regexp-tree`. - * - * E.g. it tracks names of the capturing groups, in order to access the - * names on the matched result. - * - * It's a thin-wrapper on top of original regexp. - */ - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var RegExpTree = function () { - /** - * Initializes a `RegExpTree` instance. - * - * @param RegExp - a regular expression - * - * @param Object state: - * - * An extra state which may store any related to transformation - * data, for example, names of the groups. - * - * - flags - original flags - * - groups - names of the groups, and their indices - * - source - original source - */ - function RegExpTree(re, _ref) { - var flags = _ref.flags, - groups = _ref.groups, - source = _ref.source; - - _classCallCheck(this, RegExpTree); - - this._re = re; - this._groups = groups; - - // Original props. - this.flags = flags; - this.source = source || re.source; - this.dotAll = flags.includes('s'); - - // Inherited directly from `re`. - this.global = re.global; - this.ignoreCase = re.ignoreCase; - this.multiline = re.multiline; - this.sticky = re.sticky; - this.unicode = re.unicode; - } - - /** - * Facade wrapper for RegExp `test` method. - */ - - - _createClass(RegExpTree, [{ - key: 'test', - value: function test(string) { - return this._re.test(string); - } - - /** - * Facade wrapper for RegExp `compile` method. - */ - - }, { - key: 'compile', - value: function compile(string) { - return this._re.compile(string); - } - - /** - * Facade wrapper for RegExp `toString` method. - */ - - }, { - key: 'toString', - value: function toString() { - if (!this._toStringResult) { - this._toStringResult = '/' + this.source + '/' + this.flags; - } - return this._toStringResult; - } - - /** - * Facade wrapper for RegExp `exec` method. - */ - - }, { - key: 'exec', - value: function exec(string) { - var result = this._re.exec(string); - - if (!this._groups || !result) { - return result; - } - - result.groups = {}; - - for (var group in this._groups) { - var groupNumber = this._groups[group]; - result.groups[group] = result[groupNumber]; - } - - return result; - } - }]); - - return RegExpTree; -}(); - -module.exports = { - RegExpTree: RegExpTree -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js ***! - \*************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to translate `/./s` to `/[\0-\uFFFF]/`. - */ - -module.exports = { - - // Whether `u` flag present. In which case we transform to - // \u{10FFFF} instead of \uFFFF. - _hasUFlag: false, - - // Only run this plugin if we have `s` flag. - shouldRun: function shouldRun(ast) { - var shouldRun = ast.flags.includes('s'); - - if (!shouldRun) { - return false; - } - - // Strip the `s` flag. - ast.flags = ast.flags.replace('s', ''); - - // Whether we have also `u`. - this._hasUFlag = ast.flags.includes('u'); - - return true; - }, - Char: function Char(path) { - var node = path.node; - - - if (node.kind !== 'meta' || node.value !== '.') { - return; - } - - var toValue = '\\uFFFF'; - var toSymbol = '\uFFFF'; - - if (this._hasUFlag) { - toValue = '\\u{10FFFF}'; - toSymbol = '\uDBFF\uDFFF'; - } - - path.replace({ - type: 'CharacterClass', - expressions: [{ - type: 'ClassRange', - from: { - type: 'Char', - value: '\\0', - kind: 'decimal', - symbol: '\0' - }, - to: { - type: 'Char', - value: toValue, - kind: 'unicode', - symbol: toSymbol - } - }] - }); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js ***! - \***************************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to translate `/(?a)\k/` to `/(a)\1/`. - */ - -module.exports = { - // To track the names of the groups, and return them - // in the transform result state. - // - // A map from name to number: {foo: 2, bar: 4} - _groupNames: {}, - - /** - * Initialises the trasnform. - */ - init: function init() { - this._groupNames = {}; - }, - - - /** - * Returns extra state, which eventually is returned to - */ - getExtra: function getExtra() { - return this._groupNames; - }, - Group: function Group(path) { - var node = path.node; - - - if (!node.name) { - return; - } - - // Record group name. - this._groupNames[node.name] = node.number; - - delete node.name; - delete node.nameRaw; - }, - Backreference: function Backreference(path) { - var node = path.node; - - - if (node.kind !== 'name') { - return; - } - - node.kind = 'number'; - node.reference = node.number; - delete node.referenceRaw; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js ***! - \***********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`. - * - * Note: other features of `x` flags (whitespace, comments) are - * already removed at parsing stage. - */ - -module.exports = { - RegExp: function RegExp(_ref) { - var node = _ref.node; - - if (node.flags.includes('x')) { - node.flags = node.flags.replace('x', ''); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js ***! - \*****************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = { - // "dotAll" `s` flag - dotAll: __webpack_require__(/*! ./compat-dotall-s-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"), - - // Named capturing groups. - namedCapturingGroups: __webpack_require__(/*! ./compat-named-capturing-groups-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"), - - // `x` flag - xFlag: __webpack_require__(/*! ./compat-x-flag-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js") -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/generator/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/generator/index.js ***! - \**********************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Helper `gen` function calls node type handler. - */ - -function gen(node) { - return node ? generator[node.type](node) : ''; -} - -/** - * AST handler. - */ -var generator = { - RegExp: function RegExp(node) { - return '/' + gen(node.body) + '/' + node.flags; - }, - Alternative: function Alternative(node) { - return (node.expressions || []).map(gen).join(''); - }, - Disjunction: function Disjunction(node) { - return gen(node.left) + '|' + gen(node.right); - }, - Group: function Group(node) { - var expression = gen(node.expression); - - if (node.capturing) { - // A named group. - if (node.name) { - return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')'; - } - - return '(' + expression + ')'; - } - - return '(?:' + expression + ')'; - }, - Backreference: function Backreference(node) { - switch (node.kind) { - case 'number': - return '\\' + node.reference; - case 'name': - return '\\k<' + (node.referenceRaw || node.reference) + '>'; - default: - throw new TypeError('Unknown Backreference kind: ' + node.kind); - } - }, - Assertion: function Assertion(node) { - switch (node.kind) { - case '^': - case '$': - case '\\b': - case '\\B': - return node.kind; - - case 'Lookahead': - { - var assertion = gen(node.assertion); - - if (node.negative) { - return '(?!' + assertion + ')'; - } - - return '(?=' + assertion + ')'; - } - - case 'Lookbehind': - { - var _assertion = gen(node.assertion); - - if (node.negative) { - return '(? { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -// DFA minization. - -/** - * Map from state to current set it goes. - */ - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var currentTransitionMap = null; - -/** - * Takes a DFA, and returns a minimized version of it - * compressing some states to groups (using standard, 0-, 1-, - * 2-, ... N-equivalence algorithm). - */ -function minimize(dfa) { - var table = dfa.getTransitionTable(); - var allStates = Object.keys(table); - var alphabet = dfa.getAlphabet(); - var accepting = dfa.getAcceptingStateNumbers(); - - currentTransitionMap = {}; - - var nonAccepting = new Set(); - - allStates.forEach(function (state) { - state = Number(state); - var isAccepting = accepting.has(state); - - if (isAccepting) { - currentTransitionMap[state] = accepting; - } else { - nonAccepting.add(state); - currentTransitionMap[state] = nonAccepting; - } - }); - - // --------------------------------------------------------------------------- - // Step 1: build equivalent sets. - - // All [1..N] equivalent sets. - var all = [ - // 0-equivalent sets. - [nonAccepting, accepting].filter(function (set) { - return set.size > 0; - })]; - - var current = void 0; - var previous = void 0; - - // Top of the stack is the current list of sets to analyze. - current = all[all.length - 1]; - - // Previous set (to check whether we need to stop). - previous = all[all.length - 2]; - - // Until we'll not have the same N and N-1 equivalent rows. - - var _loop = function _loop() { - var newTransitionMap = {}; - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _set = _step3.value; - - // Handled states for this set. - var handledStates = {}; - - var _set2 = _toArray(_set), - first = _set2[0], - rest = _set2.slice(1); - - handledStates[first] = new Set([first]); - - // Have to compare each from the rest states with - // the already handled states, and see if they are equivalent. - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var state = _step4.value; - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var handledState = _step5.value; - - // This and some previously handled state are equivalent -- - // just append this state to the same set. - if (areEquivalent(state, handledState, table, alphabet)) { - handledStates[handledState].add(state); - handledStates[state] = handledStates[handledState]; - continue restSets; - } - } - // Else, this state is not equivalent to any of the - // handled states -- allocate a new set for it. - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - handledStates[state] = new Set([state]); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - // Add these handled states to all states map. - - - Object.assign(newTransitionMap, handledStates); - } - - // Update current transition map for the handled row. - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - currentTransitionMap = newTransitionMap; - - var newSets = new Set(Object.keys(newTransitionMap).map(function (state) { - return newTransitionMap[state]; - })); - - all.push([].concat(_toConsumableArray(newSets))); - - // Top of the stack is the current. - current = all[all.length - 1]; - - // Previous set. - previous = all[all.length - 2]; - }; - - while (!sameRow(current, previous)) { - _loop(); - } - - // --------------------------------------------------------------------------- - // Step 2: build minimized table from the equivalent sets. - - // Remap state numbers from sets to index-based. - var remaped = new Map(); - var idx = 1; - current.forEach(function (set) { - return remaped.set(set, idx++); - }); - - // Build the minimized table from the calculated equivalent sets. - var minimizedTable = {}; - - var minimizedAcceptingStates = new Set(); - - var updateAcceptingStates = function updateAcceptingStates(set, idx) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var state = _step.value; - - if (accepting.has(state)) { - minimizedAcceptingStates.add(idx); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }; - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref = _step2.value; - - var _ref2 = _slicedToArray(_ref, 2); - - var set = _ref2[0]; - var _idx = _ref2[1]; - - minimizedTable[_idx] = {}; - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var symbol = _step6.value; - - updateAcceptingStates(set, _idx); - - // Determine original transition for this symbol from the set. - var originalTransition = void 0; - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - - try { - for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var originalState = _step7.value; - - originalTransition = table[originalState][symbol]; - if (originalTransition) { - break; - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7.return) { - _iterator7.return(); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } - - if (originalTransition) { - minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]); - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6.return) { - _iterator6.return(); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - } - - // Update the table, and accepting states on the original DFA. - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - dfa.setTransitionTable(minimizedTable); - dfa.setAcceptingStateNumbers(minimizedAcceptingStates); - - return dfa; -} - -function sameRow(r1, r2) { - if (!r2) { - return false; - } - - if (r1.length !== r2.length) { - return false; - } - - for (var i = 0; i < r1.length; i++) { - var s1 = r1[i]; - var s2 = r2[i]; - - if (s1.size !== s2.size) { - return false; - } - - if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) { - return false; - } - } - - return true; -} - -/** - * Checks whether two states are N-equivalent, i.e. whether they go - * to the same set on a symbol. - */ -function areEquivalent(s1, s2, table, alphabet) { - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var symbol = _step8.value; - - if (!goToSameSet(s1, s2, table, symbol)) { - return false; - } - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8.return) { - _iterator8.return(); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - - return true; -} - -/** - * Checks whether states go to the same set. - */ -function goToSameSet(s1, s2, table, symbol) { - if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) { - return false; - } - - var originalTransitionS1 = table[s1][symbol]; - var originalTransitionS2 = table[s2][symbol]; - - // If no actual transition on this symbol, treat it as positive. - if (!originalTransitionS1 && !originalTransitionS2) { - return true; - } - - // Otherwise, check if they are in the same sets. - return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2); -} - -module.exports = { - minimize: minimize -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var DFAMinimizer = __webpack_require__(/*! ./dfa-minimizer */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON_CLOSURE = _require.EPSILON_CLOSURE; - -/** - * DFA is build by converting from NFA (subset construction). - */ - - -var DFA = function () { - function DFA(nfa) { - _classCallCheck(this, DFA); - - this._nfa = nfa; - } - - /** - * Minimizes DFA. - */ - - - _createClass(DFA, [{ - key: 'minimize', - value: function minimize() { - this.getTransitionTable(); - - this._originalAcceptingStateNumbers = this._acceptingStateNumbers; - this._originalTransitionTable = this._transitionTable; - - DFAMinimizer.minimize(this); - } - - /** - * Returns alphabet for this DFA. - */ - - }, { - key: 'getAlphabet', - value: function getAlphabet() { - return this._nfa.getAlphabet(); - } - - /** - * Returns accepting states. - */ - - }, { - key: 'getAcceptingStateNumbers', - value: function getAcceptingStateNumbers() { - if (!this._acceptingStateNumbers) { - // Accepting states are determined during table construction. - this.getTransitionTable(); - } - - return this._acceptingStateNumbers; - } - - /** - * Returns original accepting states. - */ - - }, { - key: 'getOriginaAcceptingStateNumbers', - value: function getOriginaAcceptingStateNumbers() { - if (!this._originalAcceptingStateNumbers) { - // Accepting states are determined during table construction. - this.getTransitionTable(); - } - - return this._originalAcceptingStateNumbers; - } - - /** - * Sets transition table. - */ - - }, { - key: 'setTransitionTable', - value: function setTransitionTable(table) { - this._transitionTable = table; - } - - /** - * Sets accepting states. - */ - - }, { - key: 'setAcceptingStateNumbers', - value: function setAcceptingStateNumbers(stateNumbers) { - this._acceptingStateNumbers = stateNumbers; - } - - /** - * DFA transition table is built from NFA table. - */ - - }, { - key: 'getTransitionTable', - value: function getTransitionTable() { - var _this = this; - - if (this._transitionTable) { - return this._transitionTable; - } - - // Calculate from NFA transition table. - var nfaTable = this._nfa.getTransitionTable(); - var nfaStates = Object.keys(nfaTable); - - this._acceptingStateNumbers = new Set(); - - // Start state of DFA is E(S[nfa]) - var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE]; - - // Init the worklist (states which should be in the DFA). - var worklist = [startState]; - - var alphabet = this.getAlphabet(); - var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers(); - - var dfaTable = {}; - - // Determine whether the combined DFA state is accepting. - var updateAcceptingStates = function updateAcceptingStates(states) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var nfaAcceptingState = _step.value; - - // If any of the states from NFA is accepting, DFA's - // state is accepting as well. - if (states.indexOf(nfaAcceptingState) !== -1) { - _this._acceptingStateNumbers.add(states.join(',')); - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }; - - while (worklist.length > 0) { - var states = worklist.shift(); - var dfaStateLabel = states.join(','); - dfaTable[dfaStateLabel] = {}; - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var symbol = _step2.value; - - var onSymbol = []; - - // Determine whether the combined state is accepting. - updateAcceptingStates(states); - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var state = _step3.value; - - var nfaStatesOnSymbol = nfaTable[state][symbol]; - if (!nfaStatesOnSymbol) { - continue; - } - - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var nfaStateOnSymbol = _step4.value; - - if (!nfaTable[nfaStateOnSymbol]) { - continue; - } - onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE])); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var dfaStatesOnSymbolSet = new Set(onSymbol); - var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet)); - - if (dfaStatesOnSymbol.length > 0) { - var dfaOnSymbolStr = dfaStatesOnSymbol.join(','); - - dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr; - - if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) { - worklist.unshift(dfaStatesOnSymbol); - } - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - - return this._transitionTable = this._remapStateNumbers(dfaTable); - } - - /** - * Remaps state numbers in the resulting table: - * combined states '1,2,3' -> 1, '3,4' -> 2, etc. - */ - - }, { - key: '_remapStateNumbers', - value: function _remapStateNumbers(calculatedDFATable) { - var newStatesMap = {}; - - this._originalTransitionTable = calculatedDFATable; - var transitionTable = {}; - - Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) { - newStatesMap[originalNumber] = newNumber + 1; - }); - - for (var originalNumber in calculatedDFATable) { - var originalRow = calculatedDFATable[originalNumber]; - var row = {}; - - for (var symbol in originalRow) { - row[symbol] = newStatesMap[originalRow[symbol]]; - } - - transitionTable[newStatesMap[originalNumber]] = row; - } - - // Remap accepting states. - this._originalAcceptingStateNumbers = this._acceptingStateNumbers; - this._acceptingStateNumbers = new Set(); - - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _originalNumber = _step5.value; - - this._acceptingStateNumbers.add(newStatesMap[_originalNumber]); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - return transitionTable; - } - - /** - * Returns original DFA table, where state numbers - * are combined numbers from NFA. - */ - - }, { - key: 'getOriginalTransitionTable', - value: function getOriginalTransitionTable() { - if (!this._originalTransitionTable) { - // Original table is determined during table construction. - this.getTransitionTable(); - } - return this._originalTransitionTable; - } - - /** - * Checks whether this DFA accepts a string. - */ - - }, { - key: 'matches', - value: function matches(string) { - var state = 1; - var i = 0; - var table = this.getTransitionTable(); - - while (string[i]) { - state = table[state][string[i++]]; - if (!state) { - return false; - } - } - - if (!this.getAcceptingStateNumbers().has(state)) { - return false; - } - - return true; - } - }]); - - return DFA; -}(); - -module.exports = DFA; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js ***! - \*****************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NFA = __webpack_require__(/*! ./nfa/nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); -var DFA = __webpack_require__(/*! ./dfa/dfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js"); - -var nfaFromRegExp = __webpack_require__(/*! ./nfa/nfa-from-regexp */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js"); -var builders = __webpack_require__(/*! ./nfa/builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"); - -module.exports = { - - /** - * Export NFA and DFA classes. - */ - NFA: NFA, - DFA: DFA, - - /** - * Expose builders. - */ - builders: builders, - - /** - * Builds an NFA for the passed regexp. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - */ - toNFA: function toNFA(regexp) { - return nfaFromRegExp.build(regexp); - }, - - - /** - * Builds DFA for the passed regexp. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - */ - toDFA: function toDFA(regexp) { - return new DFA(this.toNFA(regexp)); - }, - - - /** - * Returns true if regexp accepts the string. - */ - test: function test(regexp, string) { - return this.toDFA(regexp).matches(string); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js": -/*!************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NFA = __webpack_require__(/*! ./nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); -var NFAState = __webpack_require__(/*! ./nfa-state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON; - -// ----------------------------------------------------------------------------- -// Char NFA fragment: `c` - -/** - * Char factory. - * - * Creates an NFA fragment for a single char. - * - * [in] --c--> [out] - */ - - -function char(c) { - var inState = new NFAState(); - var outState = new NFAState({ - accepting: true - }); - - return new NFA(inState.addTransition(c, outState), outState); -} - -// ----------------------------------------------------------------------------- -// Epsilon NFA fragment - -/** - * Epsilon factory. - * - * Creates an NFA fragment for ε (recognizes an empty string). - * - * [in] --ε--> [out] - */ -function e() { - return char(EPSILON); -} - -// ----------------------------------------------------------------------------- -// Alteration NFA fragment: `abc` - -/** - * Creates a connection between two NFA fragments on epsilon transition. - * - * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b] - */ -function altPair(first, second) { - first.out.accepting = false; - second.out.accepting = true; - - first.out.addTransition(EPSILON, second.in); - - return new NFA(first.in, second.out); -} - -/** - * Alteration factory. - * - * Creates a alteration NFA for (at least) two NFA-fragments. - */ -function alt(first) { - for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - fragments[_key - 1] = arguments[_key]; - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var fragment = _step.value; - - first = altPair(first, fragment); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return first; -} - -// ----------------------------------------------------------------------------- -// Disjunction NFA fragment: `a|b` - -/** - * Creates a disjunction choice between two fragments. - */ -function orPair(first, second) { - var inState = new NFAState(); - var outState = new NFAState(); - - inState.addTransition(EPSILON, first.in); - inState.addTransition(EPSILON, second.in); - - outState.accepting = true; - first.out.accepting = false; - second.out.accepting = false; - - first.out.addTransition(EPSILON, outState); - second.out.addTransition(EPSILON, outState); - - return new NFA(inState, outState); -} - -/** - * Disjunction factory. - * - * Creates a disjunction NFA for (at least) two NFA-fragments. - */ -function or(first) { - for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - fragments[_key2 - 1] = arguments[_key2]; - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var fragment = _step2.value; - - first = orPair(first, fragment); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return first; -} - -// ----------------------------------------------------------------------------- -// Kleene-closure - -/** - * Kleene star/closure. - * - * a* - */ -function repExplicit(fragment) { - var inState = new NFAState(); - var outState = new NFAState({ - accepting: true - }); - - // 0 or more. - inState.addTransition(EPSILON, fragment.in); - inState.addTransition(EPSILON, outState); - - fragment.out.accepting = false; - fragment.out.addTransition(EPSILON, outState); - outState.addTransition(EPSILON, fragment.in); - - return new NFA(inState, outState); -} - -/** - * Optimized Kleene-star: just adds ε-transitions from - * input to the output, and back. - */ -function rep(fragment) { - fragment.in.addTransition(EPSILON, fragment.out); - fragment.out.addTransition(EPSILON, fragment.in); - return fragment; -} - -/** - * Optimized Plus: just adds ε-transitions from - * the output to the input. - */ -function plusRep(fragment) { - fragment.out.addTransition(EPSILON, fragment.in); - return fragment; -} - -/** - * Optimized ? repetition: just adds ε-transitions from - * the input to the output. - */ -function questionRep(fragment) { - fragment.in.addTransition(EPSILON, fragment.out); - return fragment; -} - -module.exports = { - alt: alt, - char: char, - e: e, - or: or, - rep: rep, - repExplicit: repExplicit, - plusRep: plusRep, - questionRep: questionRep -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var parser = __webpack_require__(/*! ../../../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); - -var _require = __webpack_require__(/*! ./builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"), - alt = _require.alt, - char = _require.char, - or = _require.or, - rep = _require.rep, - plusRep = _require.plusRep, - questionRep = _require.questionRep; - -/** - * Helper `gen` function calls node type handler. - */ - - -function gen(node) { - if (node && !generator[node.type]) { - throw new Error(node.type + ' is not supported in NFA/DFA interpreter.'); - } - - return node ? generator[node.type](node) : ''; -} - -/** - * AST handler. - */ -var generator = { - RegExp: function RegExp(node) { - if (node.flags !== '') { - throw new Error('NFA/DFA: Flags are not supported yet.'); - } - - return gen(node.body); - }, - Alternative: function Alternative(node) { - var fragments = (node.expressions || []).map(gen); - return alt.apply(undefined, _toConsumableArray(fragments)); - }, - Disjunction: function Disjunction(node) { - return or(gen(node.left), gen(node.right)); - }, - Repetition: function Repetition(node) { - switch (node.quantifier.kind) { - case '*': - return rep(gen(node.expression)); - case '+': - return plusRep(gen(node.expression)); - case '?': - return questionRep(gen(node.expression)); - default: - throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.'); - } - }, - Char: function Char(node) { - if (node.kind !== 'simple') { - throw new Error('NFA/DFA: Only simple chars are supported yet.'); - } - - return char(node.value); - }, - Group: function Group(node) { - return gen(node.expression); - } -}; - -module.exports = { - /** - * Builds an NFA from the passed regexp. - */ - build: function build(regexp) { - var ast = regexp; - - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp, { - captureLocations: true - }); - } - - return gen(ast); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var State = __webpack_require__(/*! ../state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON; - -/** - * NFA state. - * - * Allows nondeterministic transitions to several states on the - * same symbol, and also epsilon-transitions. - */ - - -var NFAState = function (_State) { - _inherits(NFAState, _State); - - function NFAState() { - _classCallCheck(this, NFAState); - - return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments)); - } - - _createClass(NFAState, [{ - key: 'matches', - - - /** - * Whether this state matches a string. - * - * We maintain set of visited epsilon-states to avoid infinite loops - * when an epsilon-transition goes eventually to itself. - * - * NOTE: this function is rather "educational", since we use DFA for strings - * matching. DFA is built on top of NFA, and uses fast transition table. - */ - value: function matches(string) { - var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set(); - - // An epsilon-state has been visited, stop to avoid infinite loop. - if (visited.has(this)) { - return false; - } - - visited.add(this); - - // No symbols left.. - if (string.length === 0) { - // .. and we're in the accepting state. - if (this.accepting) { - return true; - } - - // Check if we can reach any accepting state from - // on the epsilon transitions. - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var nextState = _step.value; - - if (nextState.matches('', visited)) { - return true; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return false; - } - - // Else, we get some symbols. - var symbol = string[0]; - var rest = string.slice(1); - - var symbolTransitions = this.getTransitionsOnSymbol(symbol); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _nextState = _step2.value; - - if (_nextState.matches(rest)) { - return true; - } - } - - // If we couldn't match on symbol, check still epsilon-transitions - // without consuming the symbol (i.e. continue from `string`, not `rest`). - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _nextState2 = _step3.value; - - if (_nextState2.matches(string, visited)) { - return true; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - return false; - } - - /** - * Returns an ε-closure for this state: - * self + all states following ε-transitions. - */ - - }, { - key: 'getEpsilonClosure', - value: function getEpsilonClosure() { - var _this2 = this; - - if (!this._epsilonClosure) { - (function () { - var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON); - var closure = _this2._epsilonClosure = new Set(); - closure.add(_this2); - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var nextState = _step4.value; - - if (!closure.has(nextState)) { - closure.add(nextState); - var nextClosure = nextState.getEpsilonClosure(); - nextClosure.forEach(function (state) { - return closure.add(state); - }); - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - })(); - } - - return this._epsilonClosure; - } - }]); - - return NFAState; -}(State); - -module.exports = NFAState; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON, - EPSILON_CLOSURE = _require.EPSILON_CLOSURE; - -/** - * NFA fragment. - * - * NFA sub-fragments can be combined to a larger NFAs building - * the resulting machine. Combining the fragments is done by patching - * edges of the in- and out-states. - * - * 2-states implementation, `in`, and `out`. Eventually all transitions - * go to the same `out`, which can further be connected via ε-transition - * with other fragment. - */ - - -var NFA = function () { - function NFA(inState, outState) { - _classCallCheck(this, NFA); - - this.in = inState; - this.out = outState; - } - - /** - * Tries to recognize a string based on this NFA fragment. - */ - - - _createClass(NFA, [{ - key: 'matches', - value: function matches(string) { - return this.in.matches(string); - } - - /** - * Returns an alphabet for this NFA. - */ - - }, { - key: 'getAlphabet', - value: function getAlphabet() { - if (!this._alphabet) { - this._alphabet = new Set(); - var table = this.getTransitionTable(); - for (var state in table) { - var transitions = table[state]; - for (var symbol in transitions) { - if (symbol !== EPSILON_CLOSURE) { - this._alphabet.add(symbol); - } - } - } - } - return this._alphabet; - } - - /** - * Returns set of accepting states. - */ - - }, { - key: 'getAcceptingStates', - value: function getAcceptingStates() { - if (!this._acceptingStates) { - // States are determined during table construction. - this.getTransitionTable(); - } - return this._acceptingStates; - } - - /** - * Returns accepting state numbers. - */ - - }, { - key: 'getAcceptingStateNumbers', - value: function getAcceptingStateNumbers() { - if (!this._acceptingStateNumbers) { - this._acceptingStateNumbers = new Set(); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var acceptingState = _step.value; - - this._acceptingStateNumbers.add(acceptingState.number); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } - return this._acceptingStateNumbers; - } - - /** - * Builds and returns transition table. - */ - - }, { - key: 'getTransitionTable', - value: function getTransitionTable() { - var _this = this; - - if (!this._transitionTable) { - this._transitionTable = {}; - this._acceptingStates = new Set(); - - var visited = new Set(); - var symbols = new Set(); - - var visitState = function visitState(state) { - if (visited.has(state)) { - return; - } - - visited.add(state); - state.number = visited.size; - _this._transitionTable[state.number] = {}; - - if (state.accepting) { - _this._acceptingStates.add(state); - } - - var transitions = state.getTransitions(); - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref = _step2.value; - - var _ref2 = _slicedToArray(_ref, 2); - - var symbol = _ref2[0]; - var symbolTransitions = _ref2[1]; - - var combinedState = []; - symbols.add(symbol); - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var nextState = _step3.value; - - visitState(nextState); - combinedState.push(nextState.number); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - _this._transitionTable[state.number][symbol] = combinedState; - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }; - - // Traverse the graph starting from the `in`. - visitState(this.in); - - // Append epsilon-closure column. - visited.forEach(function (state) { - delete _this._transitionTable[state.number][EPSILON]; - _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) { - return s.number; - }); - }); - } - - return this._transitionTable; - } - }]); - - return NFA; -}(); - -module.exports = NFA; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js ***! - \***************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Epsilon, the empty string. - */ - -var EPSILON = 'ε'; - -/** - * Epsilon-closure. - */ -var EPSILON_CLOSURE = EPSILON + '*'; - -module.exports = { - EPSILON: EPSILON, - EPSILON_CLOSURE: EPSILON_CLOSURE -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js ***! - \*****************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A generic FA State class (base for NFA and DFA). - * - * Maintains the transition map, and the flag whether - * the state is accepting. - */ - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var State = function () { - function State() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$accepting = _ref.accepting, - accepting = _ref$accepting === undefined ? false : _ref$accepting; - - _classCallCheck(this, State); - - /** - * Outgoing transitions to other states. - */ - this._transitions = new Map(); - - /** - * Whether the state is accepting. - */ - this.accepting = accepting; - } - - /** - * Returns transitions for this state. - */ - - - _createClass(State, [{ - key: 'getTransitions', - value: function getTransitions() { - return this._transitions; - } - - /** - * Creates a transition on symbol. - */ - - }, { - key: 'addTransition', - value: function addTransition(symbol, toState) { - this.getTransitionsOnSymbol(symbol).add(toState); - return this; - } - - /** - * Returns transitions set on symbol. - */ - - }, { - key: 'getTransitionsOnSymbol', - value: function getTransitionsOnSymbol(symbol) { - var transitions = this._transitions.get(symbol); - - if (!transitions) { - transitions = new Set(); - this._transitions.set(symbol, transitions); - } - - return transitions; - } - }]); - - return State; -}(); - -module.exports = State; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/index.js ***! - \**********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var clone = __webpack_require__(/*! ../utils/clone */ "./node_modules/regexp-tree/dist/utils/clone.js"); -var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); -var optimizationTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js"); - -module.exports = { - /** - * Optimizer transforms a regular expression into an optimized version, - * replacing some sub-expressions with their idiomatic patterns. - * - * @param string | RegExp | AST - a regexp to optimize. - * - * @return TransformResult - an optimized regexp. - * - * Example: - * - * /[a-zA-Z_0-9][a-zA-Z_0-9]*\e{1,}/ - * - * Optimized to: - * - * /\w+e+/ - */ - optimize: function optimize(regexp) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$whitelist = _ref.whitelist, - whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist, - _ref$blacklist = _ref.blacklist, - blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist; - - var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys()); - - var transformToApply = transformsRaw.filter(function (transform) { - return !blacklist.includes(transform); - }); - - var ast = regexp; - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp); - } - - var result = new transform.TransformResult(ast); - var prevResultString = void 0; - - do { - // Get a copy of the current state here so - // we can compare it with the state at the - // end of the loop. - prevResultString = result.toString(); - ast = clone(result.getAST()); - - transformToApply.forEach(function (transformName) { - if (!optimizationTransforms.has(transformName)) { - throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', ')); - } - - var transformer = optimizationTransforms.get(transformName); - - // Don't override result just yet since we - // might want to rollback the transform - var newResult = transform.transform(ast, transformer); - - if (newResult.toString() !== result.toString()) { - if (newResult.toString().length <= result.toString().length) { - result = newResult; - } else { - // Result has changed but is not shorter: - // restore ast to its previous state. - - ast = clone(result.getAST()); - } - } - }); - - // Keep running the optimizer until it stops - // making any change to the regexp. - } while (result.toString() !== prevResultString); - - return result; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js ***! - \*********************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var UPPER_A_CP = 'A'.codePointAt(0); -var UPPER_Z_CP = 'Z'.codePointAt(0); -/** - * Transforms case-insensitive regexp to lowercase - * - * /AaBbÏ/i -> /aabbï/i - */ -module.exports = { - _AZClassRanges: null, - _hasUFlag: false, - init: function init(ast) { - this._AZClassRanges = new Set(); - this._hasUFlag = ast.flags.includes('u'); - }, - shouldRun: function shouldRun(ast) { - return ast.flags.includes('i'); - }, - Char: function Char(path) { - var node = path.node, - parent = path.parent; - - if (isNaN(node.codePoint)) { - return; - } - - // Engine support for case-insensitive matching without the u flag - // for characters above \u1000 does not seem reliable. - if (!this._hasUFlag && node.codePoint >= 0x1000) { - return; - } - - if (parent.type === 'ClassRange') { - // The only class ranges we handle must be inside A-Z. - // After the `from` char is processed, the isAZClassRange test - // will be false, so we use a Set to keep track of parents and - // process the `to` char. - if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) { - return; - } - this._AZClassRanges.add(parent); - } - - var lower = node.symbol.toLowerCase(); - if (lower !== node.symbol) { - node.value = displaySymbolAsValue(lower, node); - node.symbol = lower; - node.codePoint = lower.codePointAt(0); - } - } -}; - -function isAZClassRange(classRange) { - var from = classRange.from, - to = classRange.to; - // A-Z - - return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP; -} - -function displaySymbolAsValue(symbol, node) { - var codePoint = symbol.codePointAt(0); - if (node.kind === 'decimal') { - return '\\' + codePoint; - } - if (node.kind === 'oct') { - return '\\0' + codePoint.toString(8); - } - if (node.kind === 'hex') { - return '\\x' + codePoint.toString(16); - } - if (node.kind === 'unicode') { - if (node.isSurrogatePair) { - var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint), - lead = _getSurrogatePairFrom.lead, - trail = _getSurrogatePairFrom.trail; - - return '\\u' + '0'.repeat(4 - lead.length) + lead + '\\u' + '0'.repeat(4 - trail.length) + trail; - } else if (node.value.includes('{')) { - return '\\u{' + codePoint.toString(16) + '}'; - } else { - var code = codePoint.toString(16); - return '\\u' + '0'.repeat(4 - code.length) + code; - } - } - // simple - return symbol; -} - -/** - * Converts a code point to a surrogate pair. - * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7 - * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf) - * @param {number} codePoint - Between 0x10000 and 0x10ffff - * @returns {{lead: string, trail: string}} - */ -function getSurrogatePairFromCodePoint(codePoint) { - var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800; - var trail = (codePoint - 0x10000) % 0x400 + 0xdc00; - return { - lead: lead.toString(16), - trail: trail.toString(16) - }; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js ***! - \******************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to merge class ranges. - * - * [a-ec] -> [a-e] - * [a-ec-e] -> [a-e] - * [\w\da-f] -> [\w] - * [abcdef] -> [a-f] - */ - -module.exports = { - _hasIUFlags: false, - init: function init(ast) { - this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u'); - }, - CharacterClass: function CharacterClass(path) { - var node = path.node; - - var expressions = node.expressions; - - var metas = []; - // Extract metas - expressions.forEach(function (expression) { - if (isMeta(expression)) { - metas.push(expression.value); - } - }); - - expressions.sort(sortCharClass); - - for (var i = 0; i < expressions.length; i++) { - var expression = expressions[i]; - if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) { - expressions.splice(i, 1); - i--; - } else { - var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions); - expressions.splice(i - nbMergedChars + 1, nbMergedChars); - i -= nbMergedChars; - } - } - } -}; - -/** - * Sorts expressions in char class in the following order: - * - meta chars, ordered alphabetically by value - * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges) - * - if ambiguous, class range comes before char - * - if ambiguous between two class ranges, orders alphabetically by `to` char - * - control chars, ordered alphabetically by value - * @param {Object} a - Left Char or ClassRange node - * @param {Object} b - Right Char or ClassRange node - * @returns {number} - */ -function sortCharClass(a, b) { - var aValue = getSortValue(a); - var bValue = getSortValue(b); - - if (aValue === bValue) { - // We want ClassRange before Char - // [bb-d] -> [b-db] - if (a.type === 'ClassRange' && b.type !== 'ClassRange') { - return -1; - } - if (b.type === 'ClassRange' && a.type !== 'ClassRange') { - return 1; - } - if (a.type === 'ClassRange' && b.type === 'ClassRange') { - return getSortValue(a.to) - getSortValue(b.to); - } - if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) { - return a.value < b.value ? -1 : 1; - } - } - return aValue - bValue; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @returns {number} - */ -function getSortValue(expression) { - if (expression.type === 'Char') { - if (expression.value === '-') { - return Infinity; - } - if (expression.kind === 'control') { - return Infinity; - } - if (expression.kind === 'meta' && isNaN(expression.codePoint)) { - return -1; - } - return expression.codePoint; - } - // ClassRange - return expression.from.codePoint; -} - -/** - * Checks if a node is a meta char from the set \d\w\s\D\W\S - * @param {Object} expression - Char or ClassRange node - * @param {?string} value - * @returns {boolean} - */ -function isMeta(expression) { - var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\[dws]$/i.test(expression.value)); -} - -/** - * @param {Object} expression - Char or ClassRange node - * @returns {boolean} - */ -function isControl(expression) { - return expression.type === 'Char' && expression.kind === 'control'; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {string[]} metas - Array of meta chars, e.g. ["\\w", "\\s"] - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMetas(expression, metas, hasIUFlags) { - for (var i = 0; i < metas.length; i++) { - if (fitsInMeta(expression, metas[i], hasIUFlags)) { - return true; - } - } - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {string} meta - e.g. "\\w" - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMeta(expression, meta, hasIUFlags) { - if (expression.type === 'ClassRange') { - return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags); - } - - // Special cases: - // \S contains \w and \d - if (meta === '\\S' && (isMeta(expression, '\\w') || isMeta(expression, '\\d'))) { - return true; - } - // \D contains \W and \s - if (meta === '\\D' && (isMeta(expression, '\\W') || isMeta(expression, '\\s'))) { - return true; - } - // \w contains \d - if (meta === '\\w' && isMeta(expression, '\\d')) { - return true; - } - // \W contains \s - if (meta === '\\W' && isMeta(expression, '\\s')) { - return true; - } - - if (expression.type !== 'Char' || isNaN(expression.codePoint)) { - return false; - } - - if (meta === '\\s') { - return fitsInMetaS(expression); - } - if (meta === '\\S') { - return !fitsInMetaS(expression); - } - if (meta === '\\d') { - return fitsInMetaD(expression); - } - if (meta === '\\D') { - return !fitsInMetaD(expression); - } - if (meta === '\\w') { - return fitsInMetaW(expression, hasIUFlags); - } - if (meta === '\\W') { - return !fitsInMetaW(expression, hasIUFlags); - } - return false; -} - -/** - * @param {Object} expression - Char node with codePoint - * @returns {boolean} - */ -function fitsInMetaS(expression) { - return expression.codePoint === 0x0009 || // \t - expression.codePoint === 0x000a || // \n - expression.codePoint === 0x000b || // \v - expression.codePoint === 0x000c || // \f - expression.codePoint === 0x000d || // \r - expression.codePoint === 0x0020 || // space - expression.codePoint === 0x00a0 || // nbsp - expression.codePoint === 0x1680 || // part of Zs - expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs - expression.codePoint === 0x2028 || // line separator - expression.codePoint === 0x2029 || // paragraph separator - expression.codePoint === 0x202f || // part of Zs - expression.codePoint === 0x205f || // part of Zs - expression.codePoint === 0x3000 || // part of Zs - expression.codePoint === 0xfeff; // zwnbsp -} - -/** - * @param {Object} expression - Char node with codePoint - * @returns {boolean} - */ -function fitsInMetaD(expression) { - return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9 -} - -/** - * @param {Object} expression - Char node with codePoint - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMetaW(expression, hasIUFlags) { - return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z - expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z - expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a); -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - Char or ClassRange node - * @returns {boolean} - */ -function combinesWithPrecedingClassRange(expression, classRange) { - if (classRange && classRange.type === 'ClassRange') { - if (fitsInClassRange(expression, classRange)) { - // [a-gc] -> [a-g] - // [a-gc-e] -> [a-g] - return true; - } else if ( - // We only want \w chars or char codes to keep readability - isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) { - // [a-de] -> [a-e] - classRange.to = expression; - return true; - } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) { - // [a-db-f] -> [a-f] - // [b-fa-d] -> [a-f] - // [a-cd-f] -> [a-f] - if (expression.from.codePoint < classRange.from.codePoint) { - classRange.from = expression.from; - } - if (expression.to.codePoint > classRange.to.codePoint) { - classRange.to = expression.to; - } - return true; - } - } - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - Char or ClassRange node - * @returns {boolean} - */ -function combinesWithFollowingClassRange(expression, classRange) { - if (classRange && classRange.type === 'ClassRange') { - // Considering the elements were ordered alphabetically, - // there is only one case to handle - // [ab-e] -> [a-e] - if ( - // We only want \w chars or char codes to keep readability - isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) { - classRange.from = expression; - return true; - } - } - - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - ClassRange node - * @returns {boolean} - */ -function fitsInClassRange(expression, classRange) { - if (expression.type === 'Char' && isNaN(expression.codePoint)) { - return false; - } - if (expression.type === 'ClassRange') { - return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange); - } - return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Number} index - * @param {Object[]} expressions - expressions in CharClass - * @returns {number} - Number of characters combined with expression - */ -function charCombinesWithPrecedingChars(expression, index, expressions) { - // We only want \w chars or char codes to keep readability - if (!isMetaWCharOrCode(expression)) { - return 0; - } - var nbMergedChars = 0; - while (index > 0) { - var currentExpression = expressions[index]; - var precedingExpresion = expressions[index - 1]; - if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) { - nbMergedChars++; - index--; - } else { - break; - } - } - - if (nbMergedChars > 1) { - expressions[index] = { - type: 'ClassRange', - from: expressions[index], - to: expression - }; - return nbMergedChars; - } - return 0; -} - -function isMetaWCharOrCode(expression) { - return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal'); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js ***! - \*********************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to simplify character classes - * spanning only one or two chars. - * - * [a-a] -> [a] - * [a-b] -> [ab] - */ - -module.exports = { - ClassRange: function ClassRange(path) { - var node = path.node; - - - if (node.from.codePoint === node.to.codePoint) { - - path.replace(node.from); - } else if (node.from.codePoint === node.to.codePoint - 1) { - - path.getParent().insertChildAt(node.to, path.index + 1); - path.replace(node.from); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js ***! - \******************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove duplicates from character classes. - */ - -module.exports = { - CharacterClass: function CharacterClass(path) { - var node = path.node; - - var sources = {}; - - for (var i = 0; i < node.expressions.length; i++) { - var childPath = path.getChild(i); - var source = childPath.jsonEncode(); - - if (sources.hasOwnProperty(source)) { - childPath.remove(); - - // Since we remove the current node. - // TODO: make it simpler for users with a method. - i--; - } - - sources[source] = true; - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace standard character classes with - * their meta symbols equivalents. - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -module.exports = { - _hasIFlag: false, - _hasUFlag: false, - init: function init(ast) { - this._hasIFlag = ast.flags.includes('i'); - this._hasUFlag = ast.flags.includes('u'); - }, - CharacterClass: function CharacterClass(path) { - // [0-9] -> \d - rewriteNumberRanges(path); - - // [a-zA-Z_0-9] -> \w - rewriteWordRanges(path, this._hasIFlag, this._hasUFlag); - - // [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s - rewriteWhitespaceRanges(path); - } -}; - -/** - * Rewrites number ranges: [0-9] -> \d - */ -function rewriteNumberRanges(path) { - var node = path.node; - - - node.expressions.forEach(function (expression, i) { - if (isFullNumberRange(expression)) { - path.getChild(i).replace({ - type: 'Char', - value: '\\d', - kind: 'meta' - }); - } - }); -} - -/** - * Rewrites word ranges: [a-zA-Z_0-9] -> \w - * Thus, the ranges may go in any order, and other symbols/ranges - * are kept untouched, e.g. [a-z_\dA-Z$] -> [\w$] - */ -function rewriteWordRanges(path, hasIFlag, hasUFlag) { - var node = path.node; - - - var numberPath = null; - var lowerCasePath = null; - var upperCasePath = null; - var underscorePath = null; - var u017fPath = null; - var u212aPath = null; - - node.expressions.forEach(function (expression, i) { - // \d - if (isMetaChar(expression, '\\d')) { - numberPath = path.getChild(i); - } - - // a-z - else if (isLowerCaseRange(expression)) { - lowerCasePath = path.getChild(i); - } - - // A-Z - else if (isUpperCaseRange(expression)) { - upperCasePath = path.getChild(i); - } - - // _ - else if (isUnderscore(expression)) { - underscorePath = path.getChild(i); - } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) { - u017fPath = path.getChild(i); - } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) { - u212aPath = path.getChild(i); - } - }); - - // If we found the whole pattern, replace it. - if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) { - // Put \w in place of \d. - numberPath.replace({ - type: 'Char', - value: '\\w', - kind: 'meta' - }); - - // Other paths are removed. - if (lowerCasePath) { - lowerCasePath.remove(); - } - if (upperCasePath) { - upperCasePath.remove(); - } - underscorePath.remove(); - if (u017fPath) { - u017fPath.remove(); - } - if (u212aPath) { - u212aPath.remove(); - } - } -} - -/** - * Rewrites whitespace ranges: [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s. - */ -var whitespaceRangeTests = [function (node) { - return isChar(node, ' '); -}].concat(_toConsumableArray(['\\f', '\\n', '\\r', '\\t', '\\v'].map(function (char) { - return function (node) { - return isMetaChar(node, char); - }; -})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) { - return function (node) { - return isCodePoint(node, codePoint); - }; -})), [function (node) { - return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a); -}]); - -function rewriteWhitespaceRanges(path) { - var node = path.node; - - - if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) { - return node.expressions.some(function (expression) { - return test(expression); - }); - })) { - return; - } - - // If we found the whole pattern, replace it. - - // Put \s in place of \n. - var nNode = node.expressions.find(function (expression) { - return isMetaChar(expression, '\\n'); - }); - nNode.value = '\\s'; - nNode.symbol = undefined; - nNode.codePoint = NaN; - - // Other paths are removed. - node.expressions.map(function (expression, i) { - return whitespaceRangeTests.some(function (test) { - return test(expression); - }) ? path.getChild(i) : undefined; - }).filter(Boolean).forEach(function (path) { - return path.remove(); - }); -} - -function isFullNumberRange(node) { - return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9'; -} - -function isChar(node, value) { - var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple'; - - return node.type === 'Char' && node.value === value && node.kind === kind; -} - -function isMetaChar(node, value) { - return isChar(node, value, 'meta'); -} - -function isLowerCaseRange(node) { - return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z'; -} - -function isUpperCaseRange(node) { - return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z'; -} - -function isUnderscore(node) { - return node.type === 'Char' && node.value === '_' && node.kind === 'simple'; -} - -function isCodePoint(node, codePoint) { - return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js ***! - \***************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace single char character classes with - * just that character. - * - * [\d] -> \d, [^\w] -> \W - */ - -module.exports = { - CharacterClass: function CharacterClass(path) { - var node = path.node; - - - if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) { - return; - } - - var _node$expressions$ = node.expressions[0], - value = _node$expressions$.value, - kind = _node$expressions$.kind, - escaped = _node$expressions$.escaped; - - - if (node.negative) { - // For negative can extract only meta chars like [^\w] -> \W - // cannot do for [^a] -> a (wrong). - if (!isMeta(value)) { - return; - } - - value = getInverseMeta(value); - } - - path.replace({ - type: 'Char', - value: value, - kind: kind, - escaped: escaped || shouldEscape(value) - }); - } -}; - -function isAppropriateChar(node) { - return node.type === 'Char' && - // We don't extract [\b] (backspace) since \b has different - // semantics (word boundary). - node.value !== '\\b'; -} - -function isMeta(value) { - return (/^\\[dwsDWS]$/.test(value) - ); -} - -function getInverseMeta(value) { - return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase() - ); -} - -function hasAppropriateSiblings(path) { - var parent = path.parent, - index = path.index; - - - if (parent.type !== 'Alternative') { - return true; - } - - var previousNode = parent.expressions[index - 1]; - if (previousNode == null) { - return true; - } - - // Don't optimized \1[0] to \10 - if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { - return false; - } - - // Don't optimized \2[0] to \20 - if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { - return false; - } - - return true; -} - -// Note: \{ and \} are always preserved to avoid `a[{]2[}]` turning -// into `a{2}`. -function shouldEscape(value) { - return (/[*[()+?$./{}|]/.test(value) - ); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js ***! - \**************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var UPPER_A_CP = 'A'.codePointAt(0); -var UPPER_Z_CP = 'Z'.codePointAt(0); -var LOWER_A_CP = 'a'.codePointAt(0); -var LOWER_Z_CP = 'z'.codePointAt(0); -var DIGIT_0_CP = '0'.codePointAt(0); -var DIGIT_9_CP = '9'.codePointAt(0); - -/** - * A regexp-tree plugin to transform coded chars into simple chars. - * - * \u0061 -> a - */ -module.exports = { - Char: function Char(path) { - var node = path.node, - parent = path.parent; - - if (isNaN(node.codePoint) || node.kind === 'simple') { - return; - } - - if (parent.type === 'ClassRange') { - if (!isSimpleRange(parent)) { - return; - } - } - - if (!isPrintableASCIIChar(node.codePoint)) { - return; - } - - var symbol = String.fromCodePoint(node.codePoint); - var newChar = { - type: 'Char', - kind: 'simple', - value: symbol, - symbol: symbol, - codePoint: node.codePoint - }; - if (needsEscape(symbol, parent.type)) { - newChar.escaped = true; - } - path.replace(newChar); - } -}; - -/** - * Checks if a range is included either in 0-9, a-z or A-Z - * @param classRange - * @returns {boolean} - */ -function isSimpleRange(classRange) { - var from = classRange.from, - to = classRange.to; - - return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP; -} - -/** - * Checks if a code point in the range of printable ASCII chars - * (DEL char excluded) - * @param codePoint - * @returns {boolean} - */ -function isPrintableASCIIChar(codePoint) { - return codePoint >= 0x20 && codePoint <= 0x7e; -} - -function needsEscape(symbol, parentType) { - if (parentType === 'ClassRange' || parentType === 'CharacterClass') { - return (/[\]\\^-]/.test(symbol) - ); - } - - return (/[*[()+?^$./\\|{}]/.test(symbol) - ); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js ***! - \**********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove unnecessary escape. - * - * \e -> e - * - * [\(] -> [(] - */ - -module.exports = { - _hasXFlag: false, - init: function init(ast) { - this._hasXFlag = ast.flags.includes('x'); - }, - Char: function Char(path) { - var node = path.node; - - - if (!node.escaped) { - return; - } - - if (shouldUnescape(path, this._hasXFlag)) { - delete node.escaped; - } - } -}; - -function shouldUnescape(path, hasXFlag) { - var value = path.node.value, - index = path.index, - parent = path.parent; - - // In char class (, etc are allowed. - - if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') { - return !preservesEscape(value, index, parent, hasXFlag); - } - - return !preservesInCharClass(value, index, parent); -} - -/** - * \], \\, \^, \- - */ -function preservesInCharClass(value, index, parent) { - if (value === '^') { - // Avoid [\^a] turning into [^a] - return index === 0 && !parent.negative; - } - if (value === '-') { - // Avoid [a\-z] turning into [a-z] - return true; - } - return (/[\]\\]/.test(value) - ); -} - -function preservesEscape(value, index, parent, hasXFlag) { - if (value === '{') { - return preservesOpeningCurlyBraceEscape(index, parent); - } - - if (value === '}') { - return preservesClosingCurlyBraceEscape(index, parent); - } - - if (hasXFlag && /[ #]/.test(value)) { - return true; - } - - return (/[*[()+?^$./\\|]/.test(value) - ); -} - -function consumeNumbers(startIndex, parent, rtl) { - var i = startIndex; - var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; - - while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\d/.test(siblingNode.value)) { - rtl ? i-- : i++; - siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; - } - - return Math.abs(startIndex - i); -} - -function isSimpleChar(node, value) { - return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value; -} - -function preservesOpeningCurlyBraceEscape(index, parent) { - // (?:\{) -> (?:{) - if (index == null) { - return false; - } - - var nbFollowingNumbers = consumeNumbers(index + 1, parent); - var i = index + nbFollowingNumbers + 1; - var nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - if (nbFollowingNumbers) { - // Avoid \{3} turning into {3} - if (isSimpleChar(nextSiblingNode, '}')) { - return true; - } - - if (isSimpleChar(nextSiblingNode, ',')) { - nbFollowingNumbers = consumeNumbers(i + 1, parent); - i = i + nbFollowingNumbers + 1; - nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - // Avoid \{3,} turning into {3,} - return isSimpleChar(nextSiblingNode, '}'); - } - } - return false; -} - -function preservesClosingCurlyBraceEscape(index, parent) { - // (?:\{) -> (?:{) - if (index == null) { - return false; - } - - var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true); - var i = index - nbPrecedingNumbers - 1; - var previousSiblingNode = i >= 0 && parent.expressions[i]; - - // Avoid {3\} turning into {3} - if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) { - return true; - } - - if (isSimpleChar(previousSiblingNode, ',')) { - nbPrecedingNumbers = consumeNumbers(i - 1, parent, true); - i = i - nbPrecedingNumbers - 1; - previousSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - // Avoid {3,\} turning into {3,} - return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{'); - } - return false; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js ***! - \***************************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to transform surrogate pairs into single unicode code point - * - * \ud83d\ude80 -> \u{1f680} - */ - -module.exports = { - shouldRun: function shouldRun(ast) { - return ast.flags.includes('u'); - }, - Char: function Char(path) { - var node = path.node; - - if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) { - return; - } - node.value = '\\u{' + node.codePoint.toString(16) + '}'; - delete node.isSurrogatePair; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - increaseQuantifierByOne = _require.increaseQuantifierByOne; - -/** - * A regexp-tree plugin to combine repeating patterns. - * - * /^abcabcabc/ -> /^abc{3}/ - * /^(?:abc){2}abc/ -> /^(?:abc){3}/ - * /^abc(?:abc){2}/ -> /^(?:abc){3}/ - */ - -module.exports = { - Alternative: function Alternative(path) { - var node = path.node; - - // We can skip the first child - - var index = 1; - while (index < node.expressions.length) { - var child = path.getChild(index); - index = Math.max(1, combineRepeatingPatternLeft(path, child, index)); - - if (index >= node.expressions.length) { - break; - } - - child = path.getChild(index); - index = Math.max(1, combineWithPreviousRepetition(path, child, index)); - - if (index >= node.expressions.length) { - break; - } - - child = path.getChild(index); - index = Math.max(1, combineRepetitionWithPrevious(path, child, index)); - - index++; - } - } -}; - -// abcabc -> (?:abc){2} -function combineRepeatingPatternLeft(alternative, child, index) { - var node = alternative.node; - - - var nbPossibleLengths = Math.ceil(index / 2); - var i = 0; - - while (i < nbPossibleLengths) { - var startIndex = index - 2 * i - 1; - var right = void 0, - left = void 0; - - if (i === 0) { - right = child; - left = alternative.getChild(startIndex); - } else { - right = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node]) - }); - - left = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i))) - }); - } - - if (right.hasEqualSource(left)) { - for (var j = 0; j < 2 * i + 1; j++) { - alternative.getChild(startIndex).remove(); - } - - child.replace({ - type: 'Repetition', - expression: i === 0 && right.node.type !== 'Repetition' ? right.node : { - type: 'Group', - capturing: false, - expression: right.node - }, - quantifier: { - type: 'Quantifier', - kind: 'Range', - from: 2, - to: 2, - greedy: true - } - }); - return startIndex; - } - - i++; - } - - return index; -} - -// (?:abc){2}abc -> (?:abc){3} -function combineWithPreviousRepetition(alternative, child, index) { - var node = alternative.node; - - - var i = 0; - while (i < index) { - var previousChild = alternative.getChild(i); - - if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) { - var left = previousChild.getChild(); - var right = void 0; - - if (left.node.type === 'Group' && !left.node.capturing) { - left = left.getChild(); - } - - if (i + 1 === index) { - right = child; - if (right.node.type === 'Group' && !right.node.capturing) { - right = right.getChild(); - } - } else { - right = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1))) - }); - } - - if (left.hasEqualSource(right)) { - for (var j = i; j < index; j++) { - alternative.getChild(i + 1).remove(); - } - - increaseQuantifierByOne(previousChild.node.quantifier); - - return i; - } - } - - i++; - } - return index; -} - -// abc(?:abc){2} -> (?:abc){3} -function combineRepetitionWithPrevious(alternative, child, index) { - var node = alternative.node; - - - if (child.node.type === 'Repetition' && child.node.quantifier.greedy) { - var right = child.getChild(); - var left = void 0; - - if (right.node.type === 'Group' && !right.node.capturing) { - right = right.getChild(); - } - - var rightLength = void 0; - if (right.node.type === 'Alternative') { - rightLength = right.node.expressions.length; - left = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index))) - }); - } else { - rightLength = 1; - left = alternative.getChild(index - 1); - if (left.node.type === 'Group' && !left.node.capturing) { - left = left.getChild(); - } - } - - if (left.hasEqualSource(right)) { - for (var j = index - rightLength; j < index; j++) { - alternative.getChild(index - rightLength).remove(); - } - - increaseQuantifierByOne(child.node.quantifier); - - return index - rightLength; - } - } - return index; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - disjunctionToList = _require.disjunctionToList, - listToDisjunction = _require.listToDisjunction; - -/** - * Removes duplicates from a disjunction sequence: - * - * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/ - */ - - -module.exports = { - Disjunction: function Disjunction(path) { - var node = path.node; - - // Make unique nodes. - - var uniqueNodesMap = {}; - - var parts = disjunctionToList(node).filter(function (part) { - var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null'; - - // Already recorded this part, filter out. - if (uniqueNodesMap.hasOwnProperty(encoded)) { - return false; - } - - uniqueNodesMap[encoded] = part; - return true; - }); - - // Replace with the optimized disjunction. - path.replace(listToDisjunction(parts)); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js ***! - \************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace single char group disjunction to char group - * - * a|b|c -> [abc] - * [12]|3|4 -> [1234] - * (a|b|c) -> ([abc]) - * (?:a|b|c) -> [abc] - */ - -module.exports = { - Disjunction: function Disjunction(path) { - var node = path.node, - parent = path.parent; - - - if (!handlers[parent.type]) { - return; - } - - var charset = new Map(); - - if (!shouldProcess(node, charset) || !charset.size) { - return; - } - - var characterClass = { - type: 'CharacterClass', - expressions: Array.from(charset.keys()).sort().map(function (key) { - return charset.get(key); - }) - }; - - handlers[parent.type](path.getParent(), characterClass); - } -}; - -var handlers = { - RegExp: function RegExp(path, characterClass) { - var node = path.node; - - - node.body = characterClass; - }, - Group: function Group(path, characterClass) { - var node = path.node; - - - if (node.capturing) { - node.expression = characterClass; - } else { - path.replace(characterClass); - } - } -}; - -function shouldProcess(expression, charset) { - if (!expression) { - // Abort on empty disjunction part - return false; - } - - var type = expression.type; - - - if (type === 'Disjunction') { - var left = expression.left, - right = expression.right; - - - return shouldProcess(left, charset) && shouldProcess(right, charset); - } else if (type === 'Char') { - if (expression.kind === 'meta' && expression.symbol === '.') { - return false; - } - - var value = expression.value; - - - charset.set(value, expression); - - return true; - } else if (type === 'CharacterClass' && !expression.negative) { - return expression.expressions.every(function (expression) { - return shouldProcess(expression, charset); - }); - } - - return false; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js": -/*!*********************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/index.js ***! - \*********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = new Map([ -// \ud83d\ude80 -> \u{1f680} -['charSurrogatePairToSingleUnicode', __webpack_require__(/*! ./char-surrogate-pair-to-single-unicode-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js")], - -// \u0061 -> a -['charCodeToSimpleChar', __webpack_require__(/*! ./char-code-to-simple-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js")], - -// /Aa/i -> /aa/i -['charCaseInsensitiveLowerCaseTransform', __webpack_require__(/*! ./char-case-insensitive-lowercase-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js")], - -// [\d\d] -> [\d] -['charClassRemoveDuplicates', __webpack_require__(/*! ./char-class-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js")], - -// a{1,2}a{2,3} -> a{3,5} -['quantifiersMerge', __webpack_require__(/*! ./quantifiers-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js")], - -// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a -['quantifierRangeToSymbol', __webpack_require__(/*! ./quantifier-range-to-symbol-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js")], - -// [a-a] -> [a], [a-b] -> [ab] -['charClassClassrangesToChars', __webpack_require__(/*! ./char-class-classranges-to-chars-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js")], - -// [0-9] -> [\d] -['charClassToMeta', __webpack_require__(/*! ./char-class-to-meta-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js")], - -// [\d] -> \d, [^\w] -> \W -['charClassToSingleChar', __webpack_require__(/*! ./char-class-to-single-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js")], - -// \e -> e -['charEscapeUnescape', __webpack_require__(/*! ./char-escape-unescape-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js")], - -// [a-de-f] -> [a-f] -['charClassClassrangesMerge', __webpack_require__(/*! ./char-class-classranges-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js")], - -// (ab|ab) -> (ab) -['disjunctionRemoveDuplicates', __webpack_require__(/*! ./disjunction-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js")], - -// (a|b|c) -> [abc] -['groupSingleCharsToCharClass', __webpack_require__(/*! ./group-single-chars-to-char-class */ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js")], - -// (?:)a -> a -['removeEmptyGroup', __webpack_require__(/*! ./remove-empty-group-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js")], - -// (?:a) -> a -['ungroup', __webpack_require__(/*! ./ungroup-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js")], - -// abcabcabc -> (?:abc){3} -['combineRepeatingPatterns', __webpack_require__(/*! ./combine-repeating-patterns-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js")]]); - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js ***! - \****************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace different range-based quantifiers - * with their symbol equivalents. - * - * a{0,} -> a* - * a{1,} -> a+ - * a{1} -> a - * - * NOTE: the following is automatically handled in the generator: - * - * a{3,3} -> a{3} - */ - -module.exports = { - Quantifier: function Quantifier(path) { - var node = path.node; - - - if (node.kind !== 'Range') { - return; - } - - // a{0,} -> a* - rewriteOpenZero(path); - - // a{1,} -> a+ - rewriteOpenOne(path); - - // a{1} -> a - rewriteExactOne(path); - } -}; - -function rewriteOpenZero(path) { - var node = path.node; - - - if (node.from !== 0 || node.to) { - return; - } - - node.kind = '*'; - delete node.from; -} - -function rewriteOpenOne(path) { - var node = path.node; - - - if (node.from !== 1 || node.to) { - return; - } - - node.kind = '+'; - delete node.from; -} - -function rewriteExactOne(path) { - var node = path.node; - - - if (node.from !== 1 || node.to !== 1) { - return; - } - - path.parentPath.replace(path.parentPath.node.expression); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - increaseQuantifierByOne = _require.increaseQuantifierByOne; - -/** - * A regexp-tree plugin to merge quantifiers - * - * a+a+ -> a{2,} - * a{2}a{3} -> a{5} - * a{1,2}a{2,3} -> a{3,5} - */ - - -module.exports = { - Repetition: function Repetition(path) { - var node = path.node, - parent = path.parent; - - - if (parent.type !== 'Alternative' || !path.index) { - return; - } - - var previousSibling = path.getPreviousSibling(); - - if (!previousSibling) { - return; - } - - if (previousSibling.node.type === 'Repetition') { - if (!previousSibling.getChild().hasEqualSource(path.getChild())) { - return; - } - - var _extractFromTo = extractFromTo(previousSibling.node.quantifier), - previousSiblingFrom = _extractFromTo.from, - previousSiblingTo = _extractFromTo.to; - - var _extractFromTo2 = extractFromTo(node.quantifier), - nodeFrom = _extractFromTo2.from, - nodeTo = _extractFromTo2.to; - - // It's does not seem reliable to merge quantifiers with different greediness - // when none of both is a greedy open range - - - if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) { - return; - } - - // a*a* -> a* - // a*a+ -> a+ - // a+a+ -> a{2,} - // a{2}a{4} -> a{6} - // a{1,2}a{2,3} -> a{3,5} - // a{1,}a{2,} -> a{3,} - // a+a{2,} -> a{3,} - - // a??a{2,} -> a{2,} - // a*?a{2,} -> a{2,} - // a+?a{2,} -> a{3,} - - node.quantifier.kind = 'Range'; - node.quantifier.from = previousSiblingFrom + nodeFrom; - if (previousSiblingTo && nodeTo) { - node.quantifier.to = previousSiblingTo + nodeTo; - } else { - delete node.quantifier.to; - } - if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) { - node.quantifier.greedy = true; - } - - previousSibling.remove(); - } else { - if (!previousSibling.hasEqualSource(path.getChild())) { - return; - } - - increaseQuantifierByOne(node.quantifier); - previousSibling.remove(); - } - } -}; - -function isGreedyOpenRange(quantifier) { - return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to); -} - -function extractFromTo(quantifier) { - var from = void 0, - to = void 0; - if (quantifier.kind === '*') { - from = 0; - } else if (quantifier.kind === '+') { - from = 1; - } else if (quantifier.kind === '?') { - from = 0; - to = 1; - } else { - from = quantifier.from; - if (quantifier.to) { - to = quantifier.to; - } - } - return { from: from, to: to }; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove non-capturing empty groups. - * - * /(?:)a/ -> /a/ - * /a|(?:)/ -> /a|/ - */ - -module.exports = { - Group: function Group(path) { - var node = path.node, - parent = path.parent; - - var childPath = path.getChild(); - - if (node.capturing || childPath) { - return; - } - - if (parent.type === 'Repetition') { - - path.getParent().replace(node); - } else if (parent.type !== 'RegExp') { - - path.remove(); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js ***! - \*********************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove unnecessary groups. - * - * /(?:a)/ -> /a/ - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -module.exports = { - Group: function Group(path) { - var node = path.node, - parent = path.parent; - - var childPath = path.getChild(); - - if (node.capturing || !childPath) { - return; - } - - // Don't optimize \1(?:0) to \10 - if (!hasAppropriateSiblings(path)) { - return; - } - - // Don't optimize /a(?:b|c)/ to /ab|c/ - // but /(?:b|c)/ to /b|c/ is ok - if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') { - return; - } - - // Don't optimize /(?:ab)+/ to /ab+/ - // but /(?:a)+/ to /a+/ is ok - // and /(?:[a-d])+/ to /[a-d]+/ is ok too - if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') { - return; - } - - if (childPath.node.type === 'Alternative') { - var parentPath = path.getParent(); - if (parentPath.node.type === 'Alternative') { - // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative - - parentPath.replace({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1))) - }); - } - } else { - path.replace(childPath.node); - } - } -}; - -function hasAppropriateSiblings(path) { - var parent = path.parent, - index = path.index; - - - if (parent.type !== 'Alternative') { - return true; - } - - var previousNode = parent.expressions[index - 1]; - if (previousNode == null) { - return true; - } - - // Don't optimized \1(?:0) to \10 - if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { - return false; - } - - // Don't optimized \2(?:0) to \20 - if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { - return false; - } - - return true; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js": -/*!***********************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js ***! - \***********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * LR parser generated by the Syntax tool. - * - * https://www.npmjs.com/package/syntax-cli - * - * npm install -g syntax-cli - * - * syntax-cli --help - * - * To regenerate run: - * - * syntax-cli \ - * --grammar ~/path-to-grammar-file \ - * --mode \ - * --output ~/path-to-output-parser-file.js - */ - - - -/** - * Matched token text. - */ - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var yytext = void 0; - -/** - * Length of the matched token text. - */ -var yyleng = void 0; - -/** - * Storage object. - */ -var yy = {}; - -/** - * Result of semantic action. - */ -var __ = void 0; - -/** - * Result location object. - */ -var __loc = void 0; - -function yyloc(start, end) { - if (!yy.options.captureLocations) { - return null; - } - - // Epsilon doesn't produce location. - if (!start || !end) { - return start || end; - } - - return { - startOffset: start.startOffset, - endOffset: end.endOffset, - startLine: start.startLine, - endLine: end.endLine, - startColumn: start.startColumn, - endColumn: end.endColumn - }; -} - -var EOF = '$'; - -/** - * List of productions (generated by Syntax tool). - */ -var productions = [[-1, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - __ = Node({ - type: 'RegExp', - body: _2, - flags: checkFlags(_4) - }, loc(_1loc, _4loc || _3loc)); -}], [1, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [1, 0, function () { - __loc = null;__ = ''; -}], [2, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [2, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = _1 + _2; -}], [3, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [4, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - // Location for empty disjunction: /|/ - var _loc = null; - - if (_2loc) { - _loc = loc(_1loc || _2loc, _3loc || _2loc); - }; - - __ = Node({ - type: 'Disjunction', - left: _1, - right: _3 - }, _loc); -}], [5, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - if (_1.length === 0) { - __ = null; - return; - } - - if (_1.length === 1) { - __ = Node(_1[0], __loc); - } else { - __ = Node({ - type: 'Alternative', - expressions: _1 - }, __loc); - } -}], [6, 0, function () { - __loc = null;__ = []; -}], [6, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2); -}], [7, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc); -}], [7, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc); - __ = _1; - - if (_2) { - __ = Node({ - type: 'Repetition', - expression: _1, - quantifier: _2 - }, __loc); - } -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '^' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '$' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '\\b' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '\\B' }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookahead', - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookahead', - negative: true, - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookbehind', - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookbehind', - negative: true, - assertion: _2 - }; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc); -}], [11, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [11, 0], [12, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [12, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc); - _1.greedy = false; - __ = _1; -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - var range = getRange(_1); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: range[0], - to: range[0], - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: getRange(_1)[0], - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - var range = getRange(_1); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: range[0], - to: range[1], - greedy: true - }, __loc); -}], [14, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [14, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - var nameRaw = String(_1); - var name = decodeUnicodeGroupName(nameRaw); - if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) { - throw new SyntaxError('Duplicate of the named group "' + name + '".'); - } - - namedGroups[name] = _1.groupNumber; - - __ = Node({ - type: 'Group', - capturing: true, - name: name, - nameRaw: nameRaw, - number: _1.groupNumber, - expression: _2 - }, __loc); -}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'Group', - capturing: true, - number: _1.groupNumber, - expression: _2 - }, __loc); -}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'Group', - capturing: false, - expression: _2 - }, __loc); -}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'CharacterClass', - negative: true, - expressions: _2 - }, __loc); -}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'CharacterClass', - expressions: _2 - }, __loc); -}], [18, 0, function () { - __loc = null;__ = []; -}], [18, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [19, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = [_1]; -}], [19, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); -}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - checkClassRange(_1, _3); - - __ = [Node({ - type: 'ClassRange', - from: _1, - to: _3 - }, loc(_1loc, _3loc))]; - - if (_4) { - __ = __.concat(_4); - } -}], [20, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [20, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); -}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - checkClassRange(_1, _3); - - __ = [Node({ - type: 'ClassRange', - from: _1, - to: _3 - }, loc(_1loc, _3loc))]; - - if (_4) { - __ = __.concat(_4); - } -}], [21, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); -}], [21, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [22, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [22, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}]]; - -/** - * Encoded tokens map. - */ -var tokens = { "SLASH": "23", "CHAR": "24", "BAR": "25", "BOS": "26", "EOS": "27", "ESC_b": "28", "ESC_B": "29", "POS_LA_ASSERT": "30", "R_PAREN": "31", "NEG_LA_ASSERT": "32", "POS_LB_ASSERT": "33", "NEG_LB_ASSERT": "34", "ESC_CHAR": "35", "U_CODE_SURROGATE": "36", "U_CODE": "37", "U_PROP_VALUE_EXP": "38", "CTRL_CH": "39", "HEX_CODE": "40", "OCT_CODE": "41", "DEC_CODE": "42", "META_CHAR": "43", "ANY": "44", "NAMED_GROUP_REF": "45", "Q_MARK": "46", "STAR": "47", "PLUS": "48", "RANGE_EXACT": "49", "RANGE_OPEN": "50", "RANGE_CLOSED": "51", "NAMED_CAPTURE_GROUP": "52", "L_PAREN": "53", "NON_CAPTURE_GROUP": "54", "NEG_CLASS": "55", "R_BRACKET": "56", "L_BRACKET": "57", "DASH": "58", "$": "59" }; - -/** - * Parsing table (generated by Syntax tool). - */ -var table = [{ "0": 1, "23": "s2" }, { "59": "acc" }, { "3": 3, "4": 4, "5": 5, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "s7" }, { "23": "r6", "25": "s12" }, { "23": "r7", "25": "r7", "31": "r7" }, { "7": 14, "8": 15, "9": 16, "10": 25, "14": 27, "15": 42, "16": 43, "17": 26, "23": "r9", "24": "s28", "25": "r9", "26": "s17", "27": "s18", "28": "s19", "29": "s20", "30": "s21", "31": "r9", "32": "s22", "33": "s23", "34": "s24", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "52": "s44", "53": "s45", "54": "s46", "55": "s40", "57": "s41" }, { "1": 8, "2": 9, "24": "s10", "59": "r3" }, { "59": "r1" }, { "24": "s11", "59": "r2" }, { "24": "r4", "59": "r4" }, { "24": "r5", "59": "r5" }, { "5": 13, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r8", "25": "r8", "31": "r8" }, { "23": "r11", "24": "r11", "25": "r11", "26": "r11", "27": "r11", "28": "r11", "29": "r11", "30": "r11", "31": "r11", "32": "r11", "33": "r11", "34": "r11", "35": "r11", "36": "r11", "37": "r11", "38": "r11", "39": "r11", "40": "r11", "41": "r11", "42": "r11", "43": "r11", "44": "r11", "45": "r11", "52": "r11", "53": "r11", "54": "r11", "55": "r11", "57": "r11" }, { "23": "r12", "24": "r12", "25": "r12", "26": "r12", "27": "r12", "28": "r12", "29": "r12", "30": "r12", "31": "r12", "32": "r12", "33": "r12", "34": "r12", "35": "r12", "36": "r12", "37": "r12", "38": "r12", "39": "r12", "40": "r12", "41": "r12", "42": "r12", "43": "r12", "44": "r12", "45": "r12", "52": "r12", "53": "r12", "54": "r12", "55": "r12", "57": "r12" }, { "11": 47, "12": 48, "13": 49, "23": "r38", "24": "r38", "25": "r38", "26": "r38", "27": "r38", "28": "r38", "29": "r38", "30": "r38", "31": "r38", "32": "r38", "33": "r38", "34": "r38", "35": "r38", "36": "r38", "37": "r38", "38": "r38", "39": "r38", "40": "r38", "41": "r38", "42": "r38", "43": "r38", "44": "r38", "45": "r38", "46": "s52", "47": "s50", "48": "s51", "49": "s53", "50": "s54", "51": "s55", "52": "r38", "53": "r38", "54": "r38", "55": "r38", "57": "r38" }, { "23": "r14", "24": "r14", "25": "r14", "26": "r14", "27": "r14", "28": "r14", "29": "r14", "30": "r14", "31": "r14", "32": "r14", "33": "r14", "34": "r14", "35": "r14", "36": "r14", "37": "r14", "38": "r14", "39": "r14", "40": "r14", "41": "r14", "42": "r14", "43": "r14", "44": "r14", "45": "r14", "52": "r14", "53": "r14", "54": "r14", "55": "r14", "57": "r14" }, { "23": "r15", "24": "r15", "25": "r15", "26": "r15", "27": "r15", "28": "r15", "29": "r15", "30": "r15", "31": "r15", "32": "r15", "33": "r15", "34": "r15", "35": "r15", "36": "r15", "37": "r15", "38": "r15", "39": "r15", "40": "r15", "41": "r15", "42": "r15", "43": "r15", "44": "r15", "45": "r15", "52": "r15", "53": "r15", "54": "r15", "55": "r15", "57": "r15" }, { "23": "r16", "24": "r16", "25": "r16", "26": "r16", "27": "r16", "28": "r16", "29": "r16", "30": "r16", "31": "r16", "32": "r16", "33": "r16", "34": "r16", "35": "r16", "36": "r16", "37": "r16", "38": "r16", "39": "r16", "40": "r16", "41": "r16", "42": "r16", "43": "r16", "44": "r16", "45": "r16", "52": "r16", "53": "r16", "54": "r16", "55": "r16", "57": "r16" }, { "23": "r17", "24": "r17", "25": "r17", "26": "r17", "27": "r17", "28": "r17", "29": "r17", "30": "r17", "31": "r17", "32": "r17", "33": "r17", "34": "r17", "35": "r17", "36": "r17", "37": "r17", "38": "r17", "39": "r17", "40": "r17", "41": "r17", "42": "r17", "43": "r17", "44": "r17", "45": "r17", "52": "r17", "53": "r17", "54": "r17", "55": "r17", "57": "r17" }, { "4": 57, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 59, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 61, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 63, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r22", "24": "r22", "25": "r22", "26": "r22", "27": "r22", "28": "r22", "29": "r22", "30": "r22", "31": "r22", "32": "r22", "33": "r22", "34": "r22", "35": "r22", "36": "r22", "37": "r22", "38": "r22", "39": "r22", "40": "r22", "41": "r22", "42": "r22", "43": "r22", "44": "r22", "45": "r22", "46": "r22", "47": "r22", "48": "r22", "49": "r22", "50": "r22", "51": "r22", "52": "r22", "53": "r22", "54": "r22", "55": "r22", "57": "r22" }, { "23": "r23", "24": "r23", "25": "r23", "26": "r23", "27": "r23", "28": "r23", "29": "r23", "30": "r23", "31": "r23", "32": "r23", "33": "r23", "34": "r23", "35": "r23", "36": "r23", "37": "r23", "38": "r23", "39": "r23", "40": "r23", "41": "r23", "42": "r23", "43": "r23", "44": "r23", "45": "r23", "46": "r23", "47": "r23", "48": "r23", "49": "r23", "50": "r23", "51": "r23", "52": "r23", "53": "r23", "54": "r23", "55": "r23", "57": "r23" }, { "23": "r24", "24": "r24", "25": "r24", "26": "r24", "27": "r24", "28": "r24", "29": "r24", "30": "r24", "31": "r24", "32": "r24", "33": "r24", "34": "r24", "35": "r24", "36": "r24", "37": "r24", "38": "r24", "39": "r24", "40": "r24", "41": "r24", "42": "r24", "43": "r24", "44": "r24", "45": "r24", "46": "r24", "47": "r24", "48": "r24", "49": "r24", "50": "r24", "51": "r24", "52": "r24", "53": "r24", "54": "r24", "55": "r24", "57": "r24" }, { "23": "r25", "24": "r25", "25": "r25", "26": "r25", "27": "r25", "28": "r25", "29": "r25", "30": "r25", "31": "r25", "32": "r25", "33": "r25", "34": "r25", "35": "r25", "36": "r25", "37": "r25", "38": "r25", "39": "r25", "40": "r25", "41": "r25", "42": "r25", "43": "r25", "44": "r25", "45": "r25", "46": "r25", "47": "r25", "48": "r25", "49": "r25", "50": "r25", "51": "r25", "52": "r25", "53": "r25", "54": "r25", "55": "r25", "56": "r25", "57": "r25", "58": "r25" }, { "23": "r26", "24": "r26", "25": "r26", "26": "r26", "27": "r26", "28": "r26", "29": "r26", "30": "r26", "31": "r26", "32": "r26", "33": "r26", "34": "r26", "35": "r26", "36": "r26", "37": "r26", "38": "r26", "39": "r26", "40": "r26", "41": "r26", "42": "r26", "43": "r26", "44": "r26", "45": "r26", "46": "r26", "47": "r26", "48": "r26", "49": "r26", "50": "r26", "51": "r26", "52": "r26", "53": "r26", "54": "r26", "55": "r26", "56": "r26", "57": "r26", "58": "r26" }, { "23": "r27", "24": "r27", "25": "r27", "26": "r27", "27": "r27", "28": "r27", "29": "r27", "30": "r27", "31": "r27", "32": "r27", "33": "r27", "34": "r27", "35": "r27", "36": "r27", "37": "r27", "38": "r27", "39": "r27", "40": "r27", "41": "r27", "42": "r27", "43": "r27", "44": "r27", "45": "r27", "46": "r27", "47": "r27", "48": "r27", "49": "r27", "50": "r27", "51": "r27", "52": "r27", "53": "r27", "54": "r27", "55": "r27", "56": "r27", "57": "r27", "58": "r27" }, { "23": "r28", "24": "r28", "25": "r28", "26": "r28", "27": "r28", "28": "r28", "29": "r28", "30": "r28", "31": "r28", "32": "r28", "33": "r28", "34": "r28", "35": "r28", "36": "r28", "37": "r28", "38": "r28", "39": "r28", "40": "r28", "41": "r28", "42": "r28", "43": "r28", "44": "r28", "45": "r28", "46": "r28", "47": "r28", "48": "r28", "49": "r28", "50": "r28", "51": "r28", "52": "r28", "53": "r28", "54": "r28", "55": "r28", "56": "r28", "57": "r28", "58": "r28" }, { "23": "r29", "24": "r29", "25": "r29", "26": "r29", "27": "r29", "28": "r29", "29": "r29", "30": "r29", "31": "r29", "32": "r29", "33": "r29", "34": "r29", "35": "r29", "36": "r29", "37": "r29", "38": "r29", "39": "r29", "40": "r29", "41": "r29", "42": "r29", "43": "r29", "44": "r29", "45": "r29", "46": "r29", "47": "r29", "48": "r29", "49": "r29", "50": "r29", "51": "r29", "52": "r29", "53": "r29", "54": "r29", "55": "r29", "56": "r29", "57": "r29", "58": "r29" }, { "23": "r30", "24": "r30", "25": "r30", "26": "r30", "27": "r30", "28": "r30", "29": "r30", "30": "r30", "31": "r30", "32": "r30", "33": "r30", "34": "r30", "35": "r30", "36": "r30", "37": "r30", "38": "r30", "39": "r30", "40": "r30", "41": "r30", "42": "r30", "43": "r30", "44": "r30", "45": "r30", "46": "r30", "47": "r30", "48": "r30", "49": "r30", "50": "r30", "51": "r30", "52": "r30", "53": "r30", "54": "r30", "55": "r30", "56": "r30", "57": "r30", "58": "r30" }, { "23": "r31", "24": "r31", "25": "r31", "26": "r31", "27": "r31", "28": "r31", "29": "r31", "30": "r31", "31": "r31", "32": "r31", "33": "r31", "34": "r31", "35": "r31", "36": "r31", "37": "r31", "38": "r31", "39": "r31", "40": "r31", "41": "r31", "42": "r31", "43": "r31", "44": "r31", "45": "r31", "46": "r31", "47": "r31", "48": "r31", "49": "r31", "50": "r31", "51": "r31", "52": "r31", "53": "r31", "54": "r31", "55": "r31", "56": "r31", "57": "r31", "58": "r31" }, { "23": "r32", "24": "r32", "25": "r32", "26": "r32", "27": "r32", "28": "r32", "29": "r32", "30": "r32", "31": "r32", "32": "r32", "33": "r32", "34": "r32", "35": "r32", "36": "r32", "37": "r32", "38": "r32", "39": "r32", "40": "r32", "41": "r32", "42": "r32", "43": "r32", "44": "r32", "45": "r32", "46": "r32", "47": "r32", "48": "r32", "49": "r32", "50": "r32", "51": "r32", "52": "r32", "53": "r32", "54": "r32", "55": "r32", "56": "r32", "57": "r32", "58": "r32" }, { "23": "r33", "24": "r33", "25": "r33", "26": "r33", "27": "r33", "28": "r33", "29": "r33", "30": "r33", "31": "r33", "32": "r33", "33": "r33", "34": "r33", "35": "r33", "36": "r33", "37": "r33", "38": "r33", "39": "r33", "40": "r33", "41": "r33", "42": "r33", "43": "r33", "44": "r33", "45": "r33", "46": "r33", "47": "r33", "48": "r33", "49": "r33", "50": "r33", "51": "r33", "52": "r33", "53": "r33", "54": "r33", "55": "r33", "56": "r33", "57": "r33", "58": "r33" }, { "23": "r34", "24": "r34", "25": "r34", "26": "r34", "27": "r34", "28": "r34", "29": "r34", "30": "r34", "31": "r34", "32": "r34", "33": "r34", "34": "r34", "35": "r34", "36": "r34", "37": "r34", "38": "r34", "39": "r34", "40": "r34", "41": "r34", "42": "r34", "43": "r34", "44": "r34", "45": "r34", "46": "r34", "47": "r34", "48": "r34", "49": "r34", "50": "r34", "51": "r34", "52": "r34", "53": "r34", "54": "r34", "55": "r34", "56": "r34", "57": "r34", "58": "r34" }, { "23": "r35", "24": "r35", "25": "r35", "26": "r35", "27": "r35", "28": "r35", "29": "r35", "30": "r35", "31": "r35", "32": "r35", "33": "r35", "34": "r35", "35": "r35", "36": "r35", "37": "r35", "38": "r35", "39": "r35", "40": "r35", "41": "r35", "42": "r35", "43": "r35", "44": "r35", "45": "r35", "46": "r35", "47": "r35", "48": "r35", "49": "r35", "50": "r35", "51": "r35", "52": "r35", "53": "r35", "54": "r35", "55": "r35", "56": "r35", "57": "r35", "58": "r35" }, { "23": "r36", "24": "r36", "25": "r36", "26": "r36", "27": "r36", "28": "r36", "29": "r36", "30": "r36", "31": "r36", "32": "r36", "33": "r36", "34": "r36", "35": "r36", "36": "r36", "37": "r36", "38": "r36", "39": "r36", "40": "r36", "41": "r36", "42": "r36", "43": "r36", "44": "r36", "45": "r36", "46": "r36", "47": "r36", "48": "r36", "49": "r36", "50": "r36", "51": "r36", "52": "r36", "53": "r36", "54": "r36", "55": "r36", "56": "r36", "57": "r36", "58": "r36" }, { "10": 70, "18": 65, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "10": 70, "18": 83, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "23": "r47", "24": "r47", "25": "r47", "26": "r47", "27": "r47", "28": "r47", "29": "r47", "30": "r47", "31": "r47", "32": "r47", "33": "r47", "34": "r47", "35": "r47", "36": "r47", "37": "r47", "38": "r47", "39": "r47", "40": "r47", "41": "r47", "42": "r47", "43": "r47", "44": "r47", "45": "r47", "46": "r47", "47": "r47", "48": "r47", "49": "r47", "50": "r47", "51": "r47", "52": "r47", "53": "r47", "54": "r47", "55": "r47", "57": "r47" }, { "23": "r48", "24": "r48", "25": "r48", "26": "r48", "27": "r48", "28": "r48", "29": "r48", "30": "r48", "31": "r48", "32": "r48", "33": "r48", "34": "r48", "35": "r48", "36": "r48", "37": "r48", "38": "r48", "39": "r48", "40": "r48", "41": "r48", "42": "r48", "43": "r48", "44": "r48", "45": "r48", "46": "r48", "47": "r48", "48": "r48", "49": "r48", "50": "r48", "51": "r48", "52": "r48", "53": "r48", "54": "r48", "55": "r48", "57": "r48" }, { "4": 85, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 87, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 89, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r13", "24": "r13", "25": "r13", "26": "r13", "27": "r13", "28": "r13", "29": "r13", "30": "r13", "31": "r13", "32": "r13", "33": "r13", "34": "r13", "35": "r13", "36": "r13", "37": "r13", "38": "r13", "39": "r13", "40": "r13", "41": "r13", "42": "r13", "43": "r13", "44": "r13", "45": "r13", "52": "r13", "53": "r13", "54": "r13", "55": "r13", "57": "r13" }, { "23": "r37", "24": "r37", "25": "r37", "26": "r37", "27": "r37", "28": "r37", "29": "r37", "30": "r37", "31": "r37", "32": "r37", "33": "r37", "34": "r37", "35": "r37", "36": "r37", "37": "r37", "38": "r37", "39": "r37", "40": "r37", "41": "r37", "42": "r37", "43": "r37", "44": "r37", "45": "r37", "52": "r37", "53": "r37", "54": "r37", "55": "r37", "57": "r37" }, { "23": "r39", "24": "r39", "25": "r39", "26": "r39", "27": "r39", "28": "r39", "29": "r39", "30": "r39", "31": "r39", "32": "r39", "33": "r39", "34": "r39", "35": "r39", "36": "r39", "37": "r39", "38": "r39", "39": "r39", "40": "r39", "41": "r39", "42": "r39", "43": "r39", "44": "r39", "45": "r39", "46": "s56", "52": "r39", "53": "r39", "54": "r39", "55": "r39", "57": "r39" }, { "23": "r41", "24": "r41", "25": "r41", "26": "r41", "27": "r41", "28": "r41", "29": "r41", "30": "r41", "31": "r41", "32": "r41", "33": "r41", "34": "r41", "35": "r41", "36": "r41", "37": "r41", "38": "r41", "39": "r41", "40": "r41", "41": "r41", "42": "r41", "43": "r41", "44": "r41", "45": "r41", "46": "r41", "52": "r41", "53": "r41", "54": "r41", "55": "r41", "57": "r41" }, { "23": "r42", "24": "r42", "25": "r42", "26": "r42", "27": "r42", "28": "r42", "29": "r42", "30": "r42", "31": "r42", "32": "r42", "33": "r42", "34": "r42", "35": "r42", "36": "r42", "37": "r42", "38": "r42", "39": "r42", "40": "r42", "41": "r42", "42": "r42", "43": "r42", "44": "r42", "45": "r42", "46": "r42", "52": "r42", "53": "r42", "54": "r42", "55": "r42", "57": "r42" }, { "23": "r43", "24": "r43", "25": "r43", "26": "r43", "27": "r43", "28": "r43", "29": "r43", "30": "r43", "31": "r43", "32": "r43", "33": "r43", "34": "r43", "35": "r43", "36": "r43", "37": "r43", "38": "r43", "39": "r43", "40": "r43", "41": "r43", "42": "r43", "43": "r43", "44": "r43", "45": "r43", "46": "r43", "52": "r43", "53": "r43", "54": "r43", "55": "r43", "57": "r43" }, { "23": "r44", "24": "r44", "25": "r44", "26": "r44", "27": "r44", "28": "r44", "29": "r44", "30": "r44", "31": "r44", "32": "r44", "33": "r44", "34": "r44", "35": "r44", "36": "r44", "37": "r44", "38": "r44", "39": "r44", "40": "r44", "41": "r44", "42": "r44", "43": "r44", "44": "r44", "45": "r44", "46": "r44", "52": "r44", "53": "r44", "54": "r44", "55": "r44", "57": "r44" }, { "23": "r45", "24": "r45", "25": "r45", "26": "r45", "27": "r45", "28": "r45", "29": "r45", "30": "r45", "31": "r45", "32": "r45", "33": "r45", "34": "r45", "35": "r45", "36": "r45", "37": "r45", "38": "r45", "39": "r45", "40": "r45", "41": "r45", "42": "r45", "43": "r45", "44": "r45", "45": "r45", "46": "r45", "52": "r45", "53": "r45", "54": "r45", "55": "r45", "57": "r45" }, { "23": "r46", "24": "r46", "25": "r46", "26": "r46", "27": "r46", "28": "r46", "29": "r46", "30": "r46", "31": "r46", "32": "r46", "33": "r46", "34": "r46", "35": "r46", "36": "r46", "37": "r46", "38": "r46", "39": "r46", "40": "r46", "41": "r46", "42": "r46", "43": "r46", "44": "r46", "45": "r46", "46": "r46", "52": "r46", "53": "r46", "54": "r46", "55": "r46", "57": "r46" }, { "23": "r40", "24": "r40", "25": "r40", "26": "r40", "27": "r40", "28": "r40", "29": "r40", "30": "r40", "31": "r40", "32": "r40", "33": "r40", "34": "r40", "35": "r40", "36": "r40", "37": "r40", "38": "r40", "39": "r40", "40": "r40", "41": "r40", "42": "r40", "43": "r40", "44": "r40", "45": "r40", "52": "r40", "53": "r40", "54": "r40", "55": "r40", "57": "r40" }, { "25": "s12", "31": "s58" }, { "23": "r18", "24": "r18", "25": "r18", "26": "r18", "27": "r18", "28": "r18", "29": "r18", "30": "r18", "31": "r18", "32": "r18", "33": "r18", "34": "r18", "35": "r18", "36": "r18", "37": "r18", "38": "r18", "39": "r18", "40": "r18", "41": "r18", "42": "r18", "43": "r18", "44": "r18", "45": "r18", "52": "r18", "53": "r18", "54": "r18", "55": "r18", "57": "r18" }, { "25": "s12", "31": "s60" }, { "23": "r19", "24": "r19", "25": "r19", "26": "r19", "27": "r19", "28": "r19", "29": "r19", "30": "r19", "31": "r19", "32": "r19", "33": "r19", "34": "r19", "35": "r19", "36": "r19", "37": "r19", "38": "r19", "39": "r19", "40": "r19", "41": "r19", "42": "r19", "43": "r19", "44": "r19", "45": "r19", "52": "r19", "53": "r19", "54": "r19", "55": "r19", "57": "r19" }, { "25": "s12", "31": "s62" }, { "23": "r20", "24": "r20", "25": "r20", "26": "r20", "27": "r20", "28": "r20", "29": "r20", "30": "r20", "31": "r20", "32": "r20", "33": "r20", "34": "r20", "35": "r20", "36": "r20", "37": "r20", "38": "r20", "39": "r20", "40": "r20", "41": "r20", "42": "r20", "43": "r20", "44": "r20", "45": "r20", "52": "r20", "53": "r20", "54": "r20", "55": "r20", "57": "r20" }, { "25": "s12", "31": "s64" }, { "23": "r21", "24": "r21", "25": "r21", "26": "r21", "27": "r21", "28": "r21", "29": "r21", "30": "r21", "31": "r21", "32": "r21", "33": "r21", "34": "r21", "35": "r21", "36": "r21", "37": "r21", "38": "r21", "39": "r21", "40": "r21", "41": "r21", "42": "r21", "43": "r21", "44": "r21", "45": "r21", "52": "r21", "53": "r21", "54": "r21", "55": "r21", "57": "r21" }, { "56": "s72" }, { "56": "r55" }, { "10": 70, "20": 73, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r56", "58": "s74" }, { "24": "r62", "28": "r62", "35": "r62", "36": "r62", "37": "r62", "38": "r62", "39": "r62", "40": "r62", "41": "r62", "42": "r62", "43": "r62", "44": "r62", "45": "r62", "56": "r62", "58": "r62" }, { "24": "r63", "28": "r63", "35": "r63", "36": "r63", "37": "r63", "38": "r63", "39": "r63", "40": "r63", "41": "r63", "42": "r63", "43": "r63", "44": "r63", "45": "r63", "56": "r63", "58": "r63" }, { "24": "r64", "28": "r64", "35": "r64", "36": "r64", "37": "r64", "38": "r64", "39": "r64", "40": "r64", "41": "r64", "42": "r64", "43": "r64", "44": "r64", "45": "r64", "56": "r64", "58": "r64" }, { "24": "r65", "28": "r65", "35": "r65", "36": "r65", "37": "r65", "38": "r65", "39": "r65", "40": "r65", "41": "r65", "42": "r65", "43": "r65", "44": "r65", "45": "r65", "56": "r65", "58": "r65" }, { "23": "r52", "24": "r52", "25": "r52", "26": "r52", "27": "r52", "28": "r52", "29": "r52", "30": "r52", "31": "r52", "32": "r52", "33": "r52", "34": "r52", "35": "r52", "36": "r52", "37": "r52", "38": "r52", "39": "r52", "40": "r52", "41": "r52", "42": "r52", "43": "r52", "44": "r52", "45": "r52", "46": "r52", "47": "r52", "48": "r52", "49": "r52", "50": "r52", "51": "r52", "52": "r52", "53": "r52", "54": "r52", "55": "r52", "57": "r52" }, { "56": "r57" }, { "10": 70, "21": 77, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "56": "r59" }, { "10": 70, "20": 79, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r63", "58": "s80" }, { "10": 70, "18": 78, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r58" }, { "56": "r60" }, { "10": 70, "21": 81, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "10": 70, "18": 82, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r61" }, { "56": "s84" }, { "23": "r53", "24": "r53", "25": "r53", "26": "r53", "27": "r53", "28": "r53", "29": "r53", "30": "r53", "31": "r53", "32": "r53", "33": "r53", "34": "r53", "35": "r53", "36": "r53", "37": "r53", "38": "r53", "39": "r53", "40": "r53", "41": "r53", "42": "r53", "43": "r53", "44": "r53", "45": "r53", "46": "r53", "47": "r53", "48": "r53", "49": "r53", "50": "r53", "51": "r53", "52": "r53", "53": "r53", "54": "r53", "55": "r53", "57": "r53" }, { "25": "s12", "31": "s86" }, { "23": "r49", "24": "r49", "25": "r49", "26": "r49", "27": "r49", "28": "r49", "29": "r49", "30": "r49", "31": "r49", "32": "r49", "33": "r49", "34": "r49", "35": "r49", "36": "r49", "37": "r49", "38": "r49", "39": "r49", "40": "r49", "41": "r49", "42": "r49", "43": "r49", "44": "r49", "45": "r49", "46": "r49", "47": "r49", "48": "r49", "49": "r49", "50": "r49", "51": "r49", "52": "r49", "53": "r49", "54": "r49", "55": "r49", "57": "r49" }, { "25": "s12", "31": "s88" }, { "23": "r50", "24": "r50", "25": "r50", "26": "r50", "27": "r50", "28": "r50", "29": "r50", "30": "r50", "31": "r50", "32": "r50", "33": "r50", "34": "r50", "35": "r50", "36": "r50", "37": "r50", "38": "r50", "39": "r50", "40": "r50", "41": "r50", "42": "r50", "43": "r50", "44": "r50", "45": "r50", "46": "r50", "47": "r50", "48": "r50", "49": "r50", "50": "r50", "51": "r50", "52": "r50", "53": "r50", "54": "r50", "55": "r50", "57": "r50" }, { "25": "s12", "31": "s90" }, { "23": "r51", "24": "r51", "25": "r51", "26": "r51", "27": "r51", "28": "r51", "29": "r51", "30": "r51", "31": "r51", "32": "r51", "33": "r51", "34": "r51", "35": "r51", "36": "r51", "37": "r51", "38": "r51", "39": "r51", "40": "r51", "41": "r51", "42": "r51", "43": "r51", "44": "r51", "45": "r51", "46": "r51", "47": "r51", "48": "r51", "49": "r51", "50": "r51", "51": "r51", "52": "r51", "53": "r51", "54": "r51", "55": "r51", "57": "r51" }]; - -/** - * Parsing stack. - */ -var stack = []; - -/** - * Tokenizer instance. - */ -var tokenizer = void 0; -/** - * Generic tokenizer used by the parser in the Syntax tool. - * - * https://www.npmjs.com/package/syntax-cli - * - * See `--custom-tokinzer` to skip this generation, and use a custom one. - */ - -var lexRules = [[/^#[^\n]+/, function () {/* skip comments */}], [/^\s+/, function () {/* skip whitespace */}], [/^-/, function () { - return 'DASH'; -}], [/^\//, function () { - return 'CHAR'; -}], [/^#/, function () { - return 'CHAR'; -}], [/^\|/, function () { - return 'CHAR'; -}], [/^\./, function () { - return 'CHAR'; -}], [/^\{/, function () { - return 'CHAR'; -}], [/^\{\d+\}/, function () { - return 'RANGE_EXACT'; -}], [/^\{\d+,\}/, function () { - return 'RANGE_OPEN'; -}], [/^\{\d+,\d+\}/, function () { - return 'RANGE_CLOSED'; -}], [/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\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-\uab67\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\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\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-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\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[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\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]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\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\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\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\u09fc\u09fe\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-\u0aff\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-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\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\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\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-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\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-\uab67\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\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\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-\ude35\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\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\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\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\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[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\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]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/, function () { - var groupName = yytext.slice(3, -1); - validateUnicodeGroupName(groupName, this.getCurrentState()); - return 'NAMED_GROUP_REF'; -}], [/^\\b/, function () { - return 'ESC_b'; -}], [/^\\B/, function () { - return 'ESC_B'; -}], [/^\\c[a-zA-Z]/, function () { - return 'CTRL_CH'; -}], [/^\\0\d{1,2}/, function () { - return 'OCT_CODE'; -}], [/^\\0/, function () { - return 'DEC_CODE'; -}], [/^\\\d{1,3}/, function () { - return 'DEC_CODE'; -}], [/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () { - return 'U_CODE_SURROGATE'; -}], [/^\\u\{[0-9a-fA-F]{1,}\}/, function () { - return 'U_CODE'; -}], [/^\\u[0-9a-fA-F]{4}/, function () { - return 'U_CODE'; -}], [/^\\[pP]\{\w+(?:=\w+)?\}/, function () { - return 'U_PROP_VALUE_EXP'; -}], [/^\\x[0-9a-fA-F]{2}/, function () { - return 'HEX_CODE'; -}], [/^\\[tnrdDsSwWvf]/, function () { - return 'META_CHAR'; -}], [/^\\\//, function () { - return 'ESC_CHAR'; -}], [/^\\[ #]/, function () { - return 'ESC_CHAR'; -}], [/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/, function () { - return 'ESC_CHAR'; -}], [/^\\[^*?+\[()\\|]/, function () { - var s = this.getCurrentState(); - if (s === 'u_class' && yytext === "\\-") { - return 'ESC_CHAR'; - } else if (s === 'u' || s === 'xu' || s === 'u_class') { - throw new SyntaxError('invalid Unicode escape ' + yytext); - } - return 'ESC_CHAR'; -}], [/^\(/, function () { - return 'CHAR'; -}], [/^\)/, function () { - return 'CHAR'; -}], [/^\(\?=/, function () { - return 'POS_LA_ASSERT'; -}], [/^\(\?!/, function () { - return 'NEG_LA_ASSERT'; -}], [/^\(\?<=/, function () { - return 'POS_LB_ASSERT'; -}], [/^\(\?/, function () { - yytext = yytext.slice(3, -1); - validateUnicodeGroupName(yytext, this.getCurrentState()); - return 'NAMED_CAPTURE_GROUP'; -}], [/^\(/, function () { - return 'L_PAREN'; -}], [/^\)/, function () { - return 'R_PAREN'; -}], [/^[*?+[^$]/, function () { - return 'CHAR'; -}], [/^\\\]/, function () { - return 'ESC_CHAR'; -}], [/^\]/, function () { - this.popState();return 'R_BRACKET'; -}], [/^\^/, function () { - return 'BOS'; -}], [/^\$/, function () { - return 'EOS'; -}], [/^\*/, function () { - return 'STAR'; -}], [/^\?/, function () { - return 'Q_MARK'; -}], [/^\+/, function () { - return 'PLUS'; -}], [/^\|/, function () { - return 'BAR'; -}], [/^\./, function () { - return 'ANY'; -}], [/^\//, function () { - return 'SLASH'; -}], [/^[^*?+\[()\\|]/, function () { - return 'CHAR'; -}], [/^\[\^/, function () { - var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS'; -}], [/^\[/, function () { - var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET'; -}]]; -var lexRulesByConditions = { "INITIAL": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "xu": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "x": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u_class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] }; - -var EOF_TOKEN = { - type: EOF, - value: '' -}; - -tokenizer = { - initString: function initString(string) { - this._string = string; - this._cursor = 0; - - this._states = ['INITIAL']; - this._tokensQueue = []; - - this._currentLine = 1; - this._currentColumn = 0; - this._currentLineBeginOffset = 0; - - /** - * Matched token location data. - */ - this._tokenStartOffset = 0; - this._tokenEndOffset = 0; - this._tokenStartLine = 1; - this._tokenEndLine = 1; - this._tokenStartColumn = 0; - this._tokenEndColumn = 0; - - return this; - }, - - - /** - * Returns tokenizer states. - */ - getStates: function getStates() { - return this._states; - }, - getCurrentState: function getCurrentState() { - return this._states[this._states.length - 1]; - }, - pushState: function pushState(state) { - this._states.push(state); - }, - begin: function begin(state) { - this.pushState(state); - }, - popState: function popState() { - if (this._states.length > 1) { - return this._states.pop(); - } - return this._states[0]; - }, - getNextToken: function getNextToken() { - // Something was queued, return it. - if (this._tokensQueue.length > 0) { - return this.onToken(this._toToken(this._tokensQueue.shift())); - } - - if (!this.hasMoreTokens()) { - return this.onToken(EOF_TOKEN); - } - - var string = this._string.slice(this._cursor); - var lexRulesForState = lexRulesByConditions[this.getCurrentState()]; - - for (var i = 0; i < lexRulesForState.length; i++) { - var lexRuleIndex = lexRulesForState[i]; - var lexRule = lexRules[lexRuleIndex]; - - var matched = this._match(string, lexRule[0]); - - // Manual handling of EOF token (the end of string). Return it - // as `EOF` symbol. - if (string === '' && matched === '') { - this._cursor++; - } - - if (matched !== null) { - yytext = matched; - yyleng = yytext.length; - var token = lexRule[1].call(this); - - if (!token) { - return this.getNextToken(); - } - - // If multiple tokens are returned, save them to return - // on next `getNextToken` call. - - if (Array.isArray(token)) { - var tokensToQueue = token.slice(1); - token = token[0]; - if (tokensToQueue.length > 0) { - var _tokensQueue; - - (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue)); - } - } - - return this.onToken(this._toToken(token, yytext)); - } - } - - if (this.isEOF()) { - this._cursor++; - return EOF_TOKEN; - } - - this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn); - }, - - - /** - * Throws default "Unexpected token" exception, showing the actual - * line from the source, pointing with the ^ marker to the bad token. - * In addition, shows `line:column` location. - */ - throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) { - var lineSource = this._string.split('\n')[line - 1]; - var lineData = ''; - - if (lineSource) { - var pad = ' '.repeat(column); - lineData = '\n\n' + lineSource + '\n' + pad + '^\n'; - } - - throw new SyntaxError(lineData + 'Unexpected token: "' + symbol + '" ' + ('at ' + line + ':' + column + '.')); - }, - getCursor: function getCursor() { - return this._cursor; - }, - getCurrentLine: function getCurrentLine() { - return this._currentLine; - }, - getCurrentColumn: function getCurrentColumn() { - return this._currentColumn; - }, - _captureLocation: function _captureLocation(matched) { - var nlRe = /\n/g; - - // Absolute offsets. - this._tokenStartOffset = this._cursor; - - // Line-based locations, start. - this._tokenStartLine = this._currentLine; - this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset; - - // Extract `\n` in the matched token. - var nlMatch = void 0; - while ((nlMatch = nlRe.exec(matched)) !== null) { - this._currentLine++; - this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1; - } - - this._tokenEndOffset = this._cursor + matched.length; - - // Line-based locations, end. - this._tokenEndLine = this._currentLine; - this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset; - }, - _toToken: function _toToken(tokenType) { - var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - - return { - // Basic data. - type: tokenType, - value: yytext, - - // Location data. - startOffset: this._tokenStartOffset, - endOffset: this._tokenEndOffset, - startLine: this._tokenStartLine, - endLine: this._tokenEndLine, - startColumn: this._tokenStartColumn, - endColumn: this._tokenEndColumn - }; - }, - isEOF: function isEOF() { - return this._cursor === this._string.length; - }, - hasMoreTokens: function hasMoreTokens() { - return this._cursor <= this._string.length; - }, - _match: function _match(string, regexp) { - var matched = string.match(regexp); - if (matched) { - // Handle `\n` in the matched token to track line numbers. - this._captureLocation(matched[0]); - this._cursor += matched[0].length; - return matched[0]; - } - return null; - }, - - - /** - * Allows analyzing, and transforming token. Default implementation - * just passes the token through. - */ - onToken: function onToken(token) { - return token; - } -}; - -/** - * Expose tokenizer so it can be accessed in semantic actions. - */ -yy.lexer = tokenizer; -yy.tokenizer = tokenizer; - -/** - * Global parsing options. Some options can be shadowed per - * each `parse` call, if the optations are passed. - * - * Initalized to the `captureLocations` which is passed - * from the generator. Other options can be added at runtime. - */ -yy.options = { - captureLocations: true -}; - -/** - * Parsing module. - */ -var yyparse = { - /** - * Sets global parsing options. - */ - setOptions: function setOptions(options) { - yy.options = options; - return this; - }, - - - /** - * Returns parsing options. - */ - getOptions: function getOptions() { - return yy.options; - }, - - - /** - * Parses a string. - */ - parse: function parse(string, parseOptions) { - if (!tokenizer) { - throw new Error('Tokenizer instance wasn\'t specified.'); - } - - tokenizer.initString(string); - - /** - * If parse options are passed, override global parse options for - * this call, and later restore global options. - */ - var globalOptions = yy.options; - if (parseOptions) { - yy.options = Object.assign({}, yy.options, parseOptions); - } - - /** - * Allow callers to do setup work based on the - * parsing string, and passed options. - */ - yyparse.onParseBegin(string, tokenizer, yy.options); - - stack.length = 0; - stack.push(0); - - var token = tokenizer.getNextToken(); - var shiftedToken = null; - - do { - if (!token) { - // Restore options. - yy.options = globalOptions; - unexpectedEndOfInput(); - } - - var state = stack[stack.length - 1]; - var column = tokens[token.type]; - - if (!table[state].hasOwnProperty(column)) { - yy.options = globalOptions; - unexpectedToken(token); - } - - var entry = table[state][column]; - - // Shift action. - if (entry[0] === 's') { - var _loc2 = null; - - if (yy.options.captureLocations) { - _loc2 = { - startOffset: token.startOffset, - endOffset: token.endOffset, - startLine: token.startLine, - endLine: token.endLine, - startColumn: token.startColumn, - endColumn: token.endColumn - }; - } - - shiftedToken = this.onShift(token); - - stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1))); - - token = tokenizer.getNextToken(); - } - - // Reduce action. - else if (entry[0] === 'r') { - var productionNumber = entry.slice(1); - var production = productions[productionNumber]; - var hasSemanticAction = typeof production[2] === 'function'; - var semanticValueArgs = hasSemanticAction ? [] : null; - - var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null; - - if (production[1] !== 0) { - var rhsLength = production[1]; - while (rhsLength-- > 0) { - stack.pop(); - var stackEntry = stack.pop(); - - if (hasSemanticAction) { - semanticValueArgs.unshift(stackEntry.semanticValue); - - if (locationArgs) { - locationArgs.unshift(stackEntry.loc); - } - } - } - } - - var reduceStackEntry = { symbol: production[0] }; - - if (hasSemanticAction) { - yytext = shiftedToken ? shiftedToken.value : null; - yyleng = shiftedToken ? shiftedToken.value.length : null; - - var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs; - - production[2].apply(production, _toConsumableArray(semanticActionArgs)); - - reduceStackEntry.semanticValue = __; - - if (locationArgs) { - reduceStackEntry.loc = __loc; - } - } - - var nextState = stack[stack.length - 1]; - var symbolToReduceWith = production[0]; - - stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]); - } - - // Accept. - else if (entry === 'acc') { - stack.pop(); - var parsed = stack.pop(); - - if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) { - // Restore options. - yy.options = globalOptions; - unexpectedToken(token); - } - - if (parsed.hasOwnProperty('semanticValue')) { - yy.options = globalOptions; - yyparse.onParseEnd(parsed.semanticValue); - return parsed.semanticValue; - } - - yyparse.onParseEnd(); - - // Restore options. - yy.options = globalOptions; - return true; - } - } while (tokenizer.hasMoreTokens() || stack.length > 1); - }, - setTokenizer: function setTokenizer(customTokenizer) { - tokenizer = customTokenizer; - return yyparse; - }, - getTokenizer: function getTokenizer() { - return tokenizer; - }, - onParseBegin: function onParseBegin(string, tokenizer, options) {}, - onParseEnd: function onParseEnd(parsed) {}, - - - /** - * Allows analyzing, and transforming shifted token. Default implementation - * just passes the token through. - */ - onShift: function onShift(token) { - return token; - } -}; - -/** - * Tracks capturing groups. - */ -var capturingGroupsCount = 0; - -/** - * Tracks named groups. - */ -var namedGroups = {}; - -/** - * Parsing string. - */ -var parsingString = ''; - -yyparse.onParseBegin = function (string, lexer) { - parsingString = string; - capturingGroupsCount = 0; - namedGroups = {}; - - var lastSlash = string.lastIndexOf('/'); - var flags = string.slice(lastSlash); - - if (flags.includes('x') && flags.includes('u')) { - lexer.pushState('xu'); - } else { - if (flags.includes('x')) { - lexer.pushState('x'); - } - if (flags.includes('u')) { - lexer.pushState('u'); - } - } -}; - -/** - * On shifting `(` remember its number to used on reduce. - */ -yyparse.onShift = function (token) { - if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') { - token.value = new String(token.value); - token.value.groupNumber = ++capturingGroupsCount; - } - return token; -}; - -/** - * Extracts ranges from the range string. - */ -function getRange(text) { - var range = text.match(/\d+/g).map(Number); - - if (Number.isFinite(range[1]) && range[1] < range[0]) { - throw new SyntaxError('Numbers out of order in ' + text + ' quantifier'); - } - - return range; -} - -/** - * Checks class range - */ -function checkClassRange(from, to) { - if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) { - throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class'); - } -} - -// ---------------------- Unicode property ------------------------------------------- - -var unicodeProperties = __webpack_require__(/*! ../unicode/parser-unicode-properties.js */ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"); - -/** - * Unicode property. - */ -function UnicodeProperty(matched, loc) { - var negative = matched[1] === 'P'; - var separatorIdx = matched.indexOf('='); - - var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1); - var value = void 0; - - // General_Category allows using only value as a shorthand. - var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name); - - // Binary propery name. - var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name); - - if (isShorthand) { - value = name; - name = 'General_Category'; - } else if (isBinaryProperty) { - value = name; - } else { - if (!unicodeProperties.isValidName(name)) { - throw new SyntaxError('Invalid unicode property name: ' + name + '.'); - } - - value = matched.slice(separatorIdx + 1, -1); - - if (!unicodeProperties.isValidValue(name, value)) { - throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.'); - } - } - - return Node({ - type: 'UnicodeProperty', - name: name, - value: value, - negative: negative, - shorthand: isShorthand, - binary: isBinaryProperty, - canonicalName: unicodeProperties.getCanonicalName(name) || name, - canonicalValue: unicodeProperties.getCanonicalValue(value) || value - }, loc); -} - -// ---------------------------------------------------------------------------------- - - -/** - * Creates a character node. - */ -function Char(value, kind, loc) { - var symbol = void 0; - var codePoint = void 0; - - switch (kind) { - case 'decimal': - { - codePoint = Number(value.slice(1)); - symbol = String.fromCodePoint(codePoint); - break; - } - case 'oct': - { - codePoint = parseInt(value.slice(1), 8); - symbol = String.fromCodePoint(codePoint); - break; - } - case 'hex': - case 'unicode': - { - if (value.lastIndexOf('\\u') > 0) { - var _value$split$slice = value.split('\\u').slice(1), - _value$split$slice2 = _slicedToArray(_value$split$slice, 2), - lead = _value$split$slice2[0], - trail = _value$split$slice2[1]; - - lead = parseInt(lead, 16); - trail = parseInt(trail, 16); - codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; - - symbol = String.fromCodePoint(codePoint); - } else { - var hex = value.slice(2).replace('{', ''); - codePoint = parseInt(hex, 16); - if (codePoint > 0x10ffff) { - throw new SyntaxError('Bad character escape sequence: ' + value); - } - - symbol = String.fromCodePoint(codePoint); - } - break; - } - case 'meta': - { - switch (value) { - case '\\t': - symbol = '\t'; - codePoint = symbol.codePointAt(0); - break; - case '\\n': - symbol = '\n'; - codePoint = symbol.codePointAt(0); - break; - case '\\r': - symbol = '\r'; - codePoint = symbol.codePointAt(0); - break; - case '\\v': - symbol = '\v'; - codePoint = symbol.codePointAt(0); - break; - case '\\f': - symbol = '\f'; - codePoint = symbol.codePointAt(0); - break; - case '\\b': - symbol = '\b'; - codePoint = symbol.codePointAt(0); - case '\\0': - symbol = '\0'; - codePoint = 0; - case '.': - symbol = '.'; - codePoint = NaN; - break; - default: - codePoint = NaN; - } - break; - } - case 'simple': - { - symbol = value; - codePoint = symbol.codePointAt(0); - break; - } - } - - return Node({ - type: 'Char', - value: value, - kind: kind, - symbol: symbol, - codePoint: codePoint - }, loc); -} - -/** - * Valid flags per current ECMAScript spec and - * stage 3+ proposals. - */ -var validFlags = 'gimsuxy'; - -/** - * Checks the flags are valid, and that - * we don't duplicate flags. - */ -function checkFlags(flags) { - var seen = new Set(); - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var flag = _step.value; - - if (seen.has(flag) || !validFlags.includes(flag)) { - throw new SyntaxError('Invalid flags: ' + flags); - } - seen.add(flag); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return flags.split('').sort().join(''); -} - -/** - * Parses patterns like \1, \2, etc. either as a backreference - * to a group, or a deciaml char code. - */ -function GroupRefOrDecChar(text, textLoc) { - var reference = Number(text.slice(1)); - - if (reference > 0 && reference <= capturingGroupsCount) { - return Node({ - type: 'Backreference', - kind: 'number', - number: reference, - reference: reference - }, textLoc); - } - - return Char(text, 'decimal', textLoc); -} - -/** - * Unicode names. - */ -var uReStart = /^\\u[0-9a-fA-F]{4}/; // only matches start of string -var ucpReStart = /^\\u\{[0-9a-fA-F]{1,}\}/; // only matches start of string -var ucpReAnywhere = /\\u\{[0-9a-fA-F]{1,}\}/; // matches anywhere in string - -/** - * Validates Unicode group name. - */ -function validateUnicodeGroupName(name, state) { - var isUnicodeName = ucpReAnywhere.test(name); - var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class'; - - if (isUnicodeName && !isUnicodeState) { - throw new SyntaxError('invalid group Unicode name "' + name + '", use `u` flag.'); - } - - return name; -} - -// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence -// -// RegExpUnicodeEscapeSequence :: -// `u` LeadSurrogate `\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate' -// `u` LeadSurrogate # as 'leadSurrogateOnly' -// `u` TrailSurrogate # as 'trailSurrogateOnly' -// `u` NonSurrogate # as 'nonSurrogate' -// `u` `{` CodePoint `}` # as 'codePoint' -// -// LeadSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2} -// -// TrailSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2} -// -// NonSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2} -// -// CodePoint :: -// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}) -// -var uidRe = /\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/; - -function decodeUnicodeGroupName(name) { - return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) { - if (leadSurrogate) { - return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16)); - } - if (leadSurrogateOnly) { - return String.fromCodePoint(parseInt(leadSurrogateOnly, 16)); - } - if (trailSurrogateOnly) { - // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence - // > Each `\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\u` TrailSurrogate. - return String.fromCodePoint(parseInt(trailSurrogateOnly, 16)); - } - if (nonSurrogate) { - return String.fromCodePoint(parseInt(nonSurrogate, 16)); - } - if (codePoint) { - return String.fromCodePoint(parseInt(codePoint, 16)); - } - return _; - }); -} - -/** - * Extracts from `\k` pattern either a backreference - * to a named capturing group (if it presents), or parses it - * as a list of char: `\k`, `<`, `f`, etc. - */ -function NamedGroupRefOrChars(text, textLoc) { - var referenceRaw = text.slice(3, -1); - var reference = decodeUnicodeGroupName(referenceRaw); - - if (namedGroups.hasOwnProperty(reference)) { - return Node({ - type: 'Backreference', - kind: 'name', - number: namedGroups[reference], - reference: reference, - referenceRaw: referenceRaw - }, textLoc); - } - - // Else `\k` should be parsed as a list of `Char`s. - // This is really a 0.01% edge case, but we should handle it. - - var startOffset = null; - var startLine = null; - var endLine = null; - var startColumn = null; - - if (textLoc) { - startOffset = textLoc.startOffset; - startLine = textLoc.startLine; - endLine = textLoc.endLine; - startColumn = textLoc.startColumn; - } - - var charRe = /^[\w$<>]/; - var loc = void 0; - - var chars = [ - // Init to first \k, taking 2 symbols. - Char(text.slice(1, 2), 'simple', startOffset ? { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: startOffset += 2, - endColumn: startColumn += 2 - } : null)]; - - // For \k - chars[0].escaped = true; - - // Other symbols. - text = text.slice(2); - - while (text.length > 0) { - var matched = null; - - // Unicode, \u003B or \u{003B} - if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) { - if (startOffset) { - loc = { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: startOffset += matched[0].length, - endColumn: startColumn += matched[0].length - }; - } - chars.push(Char(matched[0], 'unicode', loc)); - text = text.slice(matched[0].length); - } - - // Simple char. - else if (matched = text.match(charRe)) { - if (startOffset) { - loc = { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: ++startOffset, - endColumn: ++startColumn - }; - } - chars.push(Char(matched[0], 'simple', loc)); - text = text.slice(1); - } - } - - return chars; -} - -/** - * Creates an AST node with a location. - */ -function Node(node, loc) { - if (yy.options.captureLocations) { - node.loc = { - source: parsingString.slice(loc.startOffset, loc.endOffset), - start: { - line: loc.startLine, - column: loc.startColumn, - offset: loc.startOffset - }, - end: { - line: loc.endLine, - column: loc.endColumn, - offset: loc.endOffset - } - }; - } - return node; -} - -/** - * Creates location node. - */ -function loc(start, end) { - if (!yy.options.captureLocations) { - return null; - } - - return { - startOffset: start.startOffset, - endOffset: end.endOffset, - startLine: start.startLine, - endLine: end.endLine, - startColumn: start.startColumn, - endColumn: end.endColumn - }; -} - -function unexpectedToken(token) { - if (token.type === EOF) { - unexpectedEndOfInput(); - } - - tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn); -} - -function unexpectedEndOfInput() { - parseError('Unexpected end of input.'); -} - -function parseError(message) { - throw new SyntaxError(message); -} - -module.exports = yyparse; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/index.js": -/*!*******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/index.js ***! - \*******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var regexpTreeParser = __webpack_require__(/*! ./generated/regexp-tree */ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"); - -/** - * Original parse function. - */ -var generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser); - -/** - * Parses a regular expression. - * - * Override original `regexpTreeParser.parse` to convert a value to a string, - * since in regexp-tree we may pass strings, and RegExp instance. - */ -regexpTreeParser.parse = function (regexp, options) { - return generatedParseFn('' + regexp, options); -}; - -// By default do not capture locations; callers may override. -regexpTreeParser.setOptions({ captureLocations: false }); - -module.exports = regexpTreeParser; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js ***! - \***********************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - -var NON_BINARY_PROP_NAMES_TO_ALIASES = { - General_Category: 'gc', - Script: 'sc', - Script_Extensions: 'scx' -}; - -var NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES); - -var BINARY_PROP_NAMES_TO_ALIASES = { - ASCII: 'ASCII', - ASCII_Hex_Digit: 'AHex', - Alphabetic: 'Alpha', - Any: 'Any', - Assigned: 'Assigned', - Bidi_Control: 'Bidi_C', - Bidi_Mirrored: 'Bidi_M', - Case_Ignorable: 'CI', - Cased: 'Cased', - Changes_When_Casefolded: 'CWCF', - Changes_When_Casemapped: 'CWCM', - Changes_When_Lowercased: 'CWL', - Changes_When_NFKC_Casefolded: 'CWKCF', - Changes_When_Titlecased: 'CWT', - Changes_When_Uppercased: 'CWU', - Dash: 'Dash', - Default_Ignorable_Code_Point: 'DI', - Deprecated: 'Dep', - Diacritic: 'Dia', - Emoji: 'Emoji', - Emoji_Component: 'Emoji_Component', - Emoji_Modifier: 'Emoji_Modifier', - Emoji_Modifier_Base: 'Emoji_Modifier_Base', - Emoji_Presentation: 'Emoji_Presentation', - Extended_Pictographic: 'Extended_Pictographic', - Extender: 'Ext', - Grapheme_Base: 'Gr_Base', - Grapheme_Extend: 'Gr_Ext', - Hex_Digit: 'Hex', - IDS_Binary_Operator: 'IDSB', - IDS_Trinary_Operator: 'IDST', - ID_Continue: 'IDC', - ID_Start: 'IDS', - Ideographic: 'Ideo', - Join_Control: 'Join_C', - Logical_Order_Exception: 'LOE', - Lowercase: 'Lower', - Math: 'Math', - Noncharacter_Code_Point: 'NChar', - Pattern_Syntax: 'Pat_Syn', - Pattern_White_Space: 'Pat_WS', - Quotation_Mark: 'QMark', - Radical: 'Radical', - Regional_Indicator: 'RI', - Sentence_Terminal: 'STerm', - Soft_Dotted: 'SD', - Terminal_Punctuation: 'Term', - Unified_Ideograph: 'UIdeo', - Uppercase: 'Upper', - Variation_Selector: 'VS', - White_Space: 'space', - XID_Continue: 'XIDC', - XID_Start: 'XIDS' -}; - -var BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES); - -var GENERAL_CATEGORY_VALUE_TO_ALIASES = { - Cased_Letter: 'LC', - Close_Punctuation: 'Pe', - Connector_Punctuation: 'Pc', - Control: ['Cc', 'cntrl'], - Currency_Symbol: 'Sc', - Dash_Punctuation: 'Pd', - Decimal_Number: ['Nd', 'digit'], - Enclosing_Mark: 'Me', - Final_Punctuation: 'Pf', - Format: 'Cf', - Initial_Punctuation: 'Pi', - Letter: 'L', - Letter_Number: 'Nl', - Line_Separator: 'Zl', - Lowercase_Letter: 'Ll', - Mark: ['M', 'Combining_Mark'], - Math_Symbol: 'Sm', - Modifier_Letter: 'Lm', - Modifier_Symbol: 'Sk', - Nonspacing_Mark: 'Mn', - Number: 'N', - Open_Punctuation: 'Ps', - Other: 'C', - Other_Letter: 'Lo', - Other_Number: 'No', - Other_Punctuation: 'Po', - Other_Symbol: 'So', - Paragraph_Separator: 'Zp', - Private_Use: 'Co', - Punctuation: ['P', 'punct'], - Separator: 'Z', - Space_Separator: 'Zs', - Spacing_Mark: 'Mc', - Surrogate: 'Cs', - Symbol: 'S', - Titlecase_Letter: 'Lt', - Unassigned: 'Cn', - Uppercase_Letter: 'Lu' -}; - -var GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES); - -var SCRIPT_VALUE_TO_ALIASES = { - Adlam: 'Adlm', - Ahom: 'Ahom', - Anatolian_Hieroglyphs: 'Hluw', - Arabic: 'Arab', - Armenian: 'Armn', - Avestan: 'Avst', - Balinese: 'Bali', - Bamum: 'Bamu', - Bassa_Vah: 'Bass', - Batak: 'Batk', - Bengali: 'Beng', - Bhaiksuki: 'Bhks', - Bopomofo: 'Bopo', - Brahmi: 'Brah', - Braille: 'Brai', - Buginese: 'Bugi', - Buhid: 'Buhd', - Canadian_Aboriginal: 'Cans', - Carian: 'Cari', - Caucasian_Albanian: 'Aghb', - Chakma: 'Cakm', - Cham: 'Cham', - Cherokee: 'Cher', - Common: 'Zyyy', - Coptic: ['Copt', 'Qaac'], - Cuneiform: 'Xsux', - Cypriot: 'Cprt', - Cyrillic: 'Cyrl', - Deseret: 'Dsrt', - Devanagari: 'Deva', - Dogra: 'Dogr', - Duployan: 'Dupl', - Egyptian_Hieroglyphs: 'Egyp', - Elbasan: 'Elba', - Ethiopic: 'Ethi', - Georgian: 'Geor', - Glagolitic: 'Glag', - Gothic: 'Goth', - Grantha: 'Gran', - Greek: 'Grek', - Gujarati: 'Gujr', - Gunjala_Gondi: 'Gong', - Gurmukhi: 'Guru', - Han: 'Hani', - Hangul: 'Hang', - Hanifi_Rohingya: 'Rohg', - Hanunoo: 'Hano', - Hatran: 'Hatr', - Hebrew: 'Hebr', - Hiragana: 'Hira', - Imperial_Aramaic: 'Armi', - Inherited: ['Zinh', 'Qaai'], - Inscriptional_Pahlavi: 'Phli', - Inscriptional_Parthian: 'Prti', - Javanese: 'Java', - Kaithi: 'Kthi', - Kannada: 'Knda', - Katakana: 'Kana', - Kayah_Li: 'Kali', - Kharoshthi: 'Khar', - Khmer: 'Khmr', - Khojki: 'Khoj', - Khudawadi: 'Sind', - Lao: 'Laoo', - Latin: 'Latn', - Lepcha: 'Lepc', - Limbu: 'Limb', - Linear_A: 'Lina', - Linear_B: 'Linb', - Lisu: 'Lisu', - Lycian: 'Lyci', - Lydian: 'Lydi', - Mahajani: 'Mahj', - Makasar: 'Maka', - Malayalam: 'Mlym', - Mandaic: 'Mand', - Manichaean: 'Mani', - Marchen: 'Marc', - Medefaidrin: 'Medf', - Masaram_Gondi: 'Gonm', - Meetei_Mayek: 'Mtei', - Mende_Kikakui: 'Mend', - Meroitic_Cursive: 'Merc', - Meroitic_Hieroglyphs: 'Mero', - Miao: 'Plrd', - Modi: 'Modi', - Mongolian: 'Mong', - Mro: 'Mroo', - Multani: 'Mult', - Myanmar: 'Mymr', - Nabataean: 'Nbat', - New_Tai_Lue: 'Talu', - Newa: 'Newa', - Nko: 'Nkoo', - Nushu: 'Nshu', - Ogham: 'Ogam', - Ol_Chiki: 'Olck', - Old_Hungarian: 'Hung', - Old_Italic: 'Ital', - Old_North_Arabian: 'Narb', - Old_Permic: 'Perm', - Old_Persian: 'Xpeo', - Old_Sogdian: 'Sogo', - Old_South_Arabian: 'Sarb', - Old_Turkic: 'Orkh', - Oriya: 'Orya', - Osage: 'Osge', - Osmanya: 'Osma', - Pahawh_Hmong: 'Hmng', - Palmyrene: 'Palm', - Pau_Cin_Hau: 'Pauc', - Phags_Pa: 'Phag', - Phoenician: 'Phnx', - Psalter_Pahlavi: 'Phlp', - Rejang: 'Rjng', - Runic: 'Runr', - Samaritan: 'Samr', - Saurashtra: 'Saur', - Sharada: 'Shrd', - Shavian: 'Shaw', - Siddham: 'Sidd', - SignWriting: 'Sgnw', - Sinhala: 'Sinh', - Sogdian: 'Sogd', - Sora_Sompeng: 'Sora', - Soyombo: 'Soyo', - Sundanese: 'Sund', - Syloti_Nagri: 'Sylo', - Syriac: 'Syrc', - Tagalog: 'Tglg', - Tagbanwa: 'Tagb', - Tai_Le: 'Tale', - Tai_Tham: 'Lana', - Tai_Viet: 'Tavt', - Takri: 'Takr', - Tamil: 'Taml', - Tangut: 'Tang', - Telugu: 'Telu', - Thaana: 'Thaa', - Thai: 'Thai', - Tibetan: 'Tibt', - Tifinagh: 'Tfng', - Tirhuta: 'Tirh', - Ugaritic: 'Ugar', - Vai: 'Vaii', - Warang_Citi: 'Wara', - Yi: 'Yiii', - Zanabazar_Square: 'Zanb' -}; - -var SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES); - -function inverseMap(data) { - var inverse = {}; - - for (var name in data) { - if (!data.hasOwnProperty(name)) { - continue; - } - var value = data[name]; - if (Array.isArray(value)) { - for (var i = 0; i < value.length; i++) { - inverse[value[i]] = name; - } - } else { - inverse[value] = name; - } - } - - return inverse; -} - -function isValidName(name) { - return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function isValidValue(name, value) { - if (isGeneralCategoryName(name)) { - return isGeneralCategoryValue(value); - } - - if (isScriptCategoryName(name)) { - return isScriptCategoryValue(value); - } - - return false; -} - -function isAlias(name) { - return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function isGeneralCategoryName(name) { - return name === 'General_Category' || name == 'gc'; -} - -function isScriptCategoryName(name) { - return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx'; -} - -function isGeneralCategoryValue(value) { - return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value); -} - -function isScriptCategoryValue(value) { - return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value); -} - -function isBinaryPropertyName(name) { - return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function getCanonicalName(name) { - if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { - return NON_BINARY_ALIASES_TO_PROP_NAMES[name]; - } - - if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { - return BINARY_ALIASES_TO_PROP_NAMES[name]; - } - - return null; -} - -function getCanonicalValue(value) { - if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) { - return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value]; - } - - if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) { - return SCRIPT_VALUE_ALIASES_TO_VALUE[value]; - } - - if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) { - return BINARY_ALIASES_TO_PROP_NAMES[value]; - } - - return null; -} - -module.exports = { - isAlias: isAlias, - isValidName: isValidName, - isValidValue: isValidValue, - isGeneralCategoryValue: isGeneralCategoryValue, - isScriptCategoryValue: isScriptCategoryValue, - isBinaryPropertyName: isBinaryPropertyName, - getCanonicalName: getCanonicalName, - getCanonicalValue: getCanonicalValue, - - NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES, - NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES, - - BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES, - BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES, - - GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES, - GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES, - - SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES, - SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/regexp-tree.js": -/*!******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/regexp-tree.js ***! - \******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var compatTranspiler = __webpack_require__(/*! ./compat-transpiler */ "./node_modules/regexp-tree/dist/compat-transpiler/index.js"); -var generator = __webpack_require__(/*! ./generator */ "./node_modules/regexp-tree/dist/generator/index.js"); -var optimizer = __webpack_require__(/*! ./optimizer */ "./node_modules/regexp-tree/dist/optimizer/index.js"); -var parser = __webpack_require__(/*! ./parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var _transform = __webpack_require__(/*! ./transform */ "./node_modules/regexp-tree/dist/transform/index.js"); -var _traverse = __webpack_require__(/*! ./traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); -var fa = __webpack_require__(/*! ./interpreter/finite-automaton */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js"); - -var _require = __webpack_require__(/*! ./compat-transpiler/runtime */ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js"), - RegExpTree = _require.RegExpTree; - -/** - * An API object for RegExp processing (parsing/transform/generation). - */ - - -var regexpTree = { - /** - * Parser module exposed. - */ - parser: parser, - - /** - * Expose finite-automaton module. - */ - fa: fa, - - /** - * `TransformResult` exposed. - */ - TransformResult: _transform.TransformResult, - - /** - * Parses a regexp string, producing an AST. - * - * @param string regexp - * - * a regular expression in different formats: string, AST, RegExp. - * - * @param Object options - * - * parsing options for this parse call. Default are: - * - * - captureLocations: boolean - * - any other custom options - * - * @return Object AST - */ - parse: function parse(regexp, options) { - return parser.parse('' + regexp, options); - }, - - - /** - * Traverses a RegExp AST. - * - * @param Object ast - * @param Object | Array handlers - * - * Each `handler` is an object containing handler function for needed - * node types. Example: - * - * regexpTree.traverse(ast, { - * onChar(node) { - * ... - * }, - * }); - * - * The value for a node type may also be an object with functions pre and post. - * This enables more context-aware analyses, e.g. measuring star height. - */ - traverse: function traverse(ast, handlers, options) { - return _traverse.traverse(ast, handlers, options); - }, - - - /** - * Transforms a regular expression. - * - * A regexp can be passed in different formats (string, regexp or AST), - * applying a set of transformations. It is a convenient wrapper - * on top of "parse-traverse-generate" tool chain. - * - * @param string | AST | RegExp regexp - a regular expression; - * @param Object | Array handlers - a list of handlers. - * - * @return TransformResult - a transformation result. - */ - transform: function transform(regexp, handlers) { - return _transform.transform(regexp, handlers); - }, - - - /** - * Generates a RegExp string from an AST. - * - * @param Object ast - * - * Invariant: - * - * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i' - */ - generate: function generate(ast) { - return generator.generate(ast); - }, - - - /** - * Creates a RegExp object from a regexp string. - * - * @param string regexp - */ - toRegExp: function toRegExp(regexp) { - var compat = this.compatTranspile(regexp); - return new RegExp(compat.getSource(), compat.getFlags()); - }, - - - /** - * Optimizes a regular expression by replacing some - * sub-expressions with their idiomatic patterns. - * - * @param string regexp - * - * @return TransformResult object - */ - optimize: function optimize(regexp, whitelist) { - var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - blacklist = _ref.blacklist; - - return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist }); - }, - - - /** - * Translates a regular expression in new syntax or in new format - * into equivalent expressions in old syntax. - * - * @param string regexp - * - * @return TransformResult object - */ - compatTranspile: function compatTranspile(regexp, whitelist) { - return compatTranspiler.transform(regexp, whitelist); - }, - - - /** - * Executes a regular expression on a string. - * - * @param RegExp|string re - a regular expression. - * @param string string - a testing string. - */ - exec: function exec(re, string) { - if (typeof re === 'string') { - var compat = this.compatTranspile(re); - var extra = compat.getExtra(); - - if (extra.namedCapturingGroups) { - re = new RegExpTree(compat.toRegExp(), { - flags: compat.getFlags(), - source: compat.getSource(), - groups: extra.namedCapturingGroups - }); - } else { - re = compat.toRegExp(); - } - } - - return re.exec(string); - } -}; - -module.exports = regexpTree; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/transform/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/transform/index.js ***! - \**********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var generator = __webpack_require__(/*! ../generator */ "./node_modules/regexp-tree/dist/generator/index.js"); -var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var traverse = __webpack_require__(/*! ../traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); - -/** - * Transform result. - */ - -var TransformResult = function () { - /** - * Initializes a transform result for an AST. - * - * @param Object ast - an AST node - * @param mixed extra - any extra data a transform may return - */ - function TransformResult(ast) { - var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - _classCallCheck(this, TransformResult); - - this._ast = ast; - this._source = null; - this._string = null; - this._regexp = null; - this._extra = extra; - } - - _createClass(TransformResult, [{ - key: 'getAST', - value: function getAST() { - return this._ast; - } - }, { - key: 'setExtra', - value: function setExtra(extra) { - this._extra = extra; - } - }, { - key: 'getExtra', - value: function getExtra() { - return this._extra; - } - }, { - key: 'toRegExp', - value: function toRegExp() { - if (!this._regexp) { - this._regexp = new RegExp(this.getSource(), this._ast.flags); - } - return this._regexp; - } - }, { - key: 'getSource', - value: function getSource() { - if (!this._source) { - this._source = generator.generate(this._ast.body); - } - return this._source; - } - }, { - key: 'getFlags', - value: function getFlags() { - return this._ast.flags; - } - }, { - key: 'toString', - value: function toString() { - if (!this._string) { - this._string = generator.generate(this._ast); - } - return this._string; - } - }]); - - return TransformResult; -}(); - -module.exports = { - /** - * Expose `TransformResult`. - */ - TransformResult: TransformResult, - - /** - * Transforms a regular expression applying a set of - * transformation handlers. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - * - * @param Object | Array: - * - * a handler (or a list of handlers) from `traverse` API. - * - * @return TransformResult instance. - * - * Example: - * - * transform(/[a-z]/i, { - * onChar(path) { - * const {node} = path; - * - * if (...) { - * path.remove(); - * } - * } - * }); - */ - transform: function transform(regexp, handlers) { - var ast = regexp; - - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp, { - captureLocations: true - }); - } - - traverse.traverse(ast, handlers); - - return new TransformResult(ast); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/transform/utils.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/transform/utils.js ***! - \**********************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Flattens a nested disjunction node to a list. - * - * /a|b|c|d/ - * - * {{{a, b}, c}, d} -> [a, b, c, d] - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function disjunctionToList(node) { - if (node.type !== 'Disjunction') { - throw new TypeError('Expected "Disjunction" node, got "' + node.type + '"'); - } - - var list = []; - - if (node.left && node.left.type === 'Disjunction') { - list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right])); - } else { - list.push(node.left, node.right); - } - - return list; -} - -/** - * Builds a nested disjunction node from a list. - * - * /a|b|c|d/ - * - * [a, b, c, d] -> {{{a, b}, c}, d} - */ -function listToDisjunction(list) { - return list.reduce(function (left, right) { - return { - type: 'Disjunction', - left: left, - right: right - }; - }); -} - -/** - * Increases a quantifier by one. - * Does not change greediness. - * * -> + - * + -> {2,} - * ? -> {1,2} - * {2} -> {3} - * {2,} -> {3,} - * {2,3} -> {3,4} - */ -function increaseQuantifierByOne(quantifier) { - if (quantifier.kind === '*') { - - quantifier.kind = '+'; - } else if (quantifier.kind === '+') { - - quantifier.kind = 'Range'; - quantifier.from = 2; - delete quantifier.to; - } else if (quantifier.kind === '?') { - - quantifier.kind = 'Range'; - quantifier.from = 1; - quantifier.to = 2; - } else if (quantifier.kind === 'Range') { - - quantifier.from += 1; - if (quantifier.to) { - quantifier.to += 1; - } - } -} - -module.exports = { - disjunctionToList: disjunctionToList, - listToDisjunction: listToDisjunction, - increaseQuantifierByOne: increaseQuantifierByOne -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/traverse/index.js": -/*!*********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/traverse/index.js ***! - \*********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NodePath = __webpack_require__(/*! ./node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -/** - * Does an actual AST traversal, using visitor pattern, - * and calling set of callbacks. - * - * Based on https://github.com/olov/ast-traverse - * - * Expects AST in Mozilla Parser API: nodes which are supposed to be - * handled should have `type` property. - * - * @param Object root - a root node to start traversal from. - * - * @param Object options - an object with set of callbacks: - * - * - `pre(node, parent, prop, index)` - a hook called on node enter - * - `post`(node, parent, prop, index) - a hook called on node exit - * - `skipProperty(prop)` - a predicated whether a property should be skipped - */ -function astTraverse(root) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var pre = options.pre; - var post = options.post; - var skipProperty = options.skipProperty; - - function visit(node, parent, prop, idx) { - if (!node || typeof node.type !== 'string') { - return; - } - - var res = undefined; - if (pre) { - res = pre(node, parent, prop, idx); - } - - if (res !== false) { - - // A node can be replaced during traversal, so we have to - // recalculate it from the parent, to avoid traversing "dead" nodes. - if (parent && parent[prop]) { - if (!isNaN(idx)) { - node = parent[prop][idx]; - } else { - node = parent[prop]; - } - } - - for (var _prop in node) { - if (node.hasOwnProperty(_prop)) { - if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') { - continue; - } - - var child = node[_prop]; - - // Collection node. - // - // NOTE: a node (or several nodes) can be removed or inserted - // during traversal. - // - // Current traversing index is stored on top of the - // `NodePath.traversingIndexStack`. The stack is used to support - // recursive nature of the traversal. - // - // In this case `NodePath.traversingIndex` (which we use here) is - // updated in the NodePath remove/insert methods. - // - if (Array.isArray(child)) { - var index = 0; - NodePath.traversingIndexStack.push(index); - while (index < child.length) { - visit(child[index], node, _prop, index); - index = NodePath.updateTraversingIndex(+1); - } - NodePath.traversingIndexStack.pop(); - } - - // Simple node. - else { - visit(child, node, _prop); - } - } - } - } - - if (post) { - post(node, parent, prop, idx); - } - } - - visit(root, null); -} - -module.exports = { - /** - * Traverses an AST. - * - * @param Object ast - an AST node - * - * @param Object | Array handlers: - * - * an object (or an array of objects) - * - * Each such object contains a handler function per node. - * In case of an array of handlers, they are applied in order. - * A handler may return a transformed node (or a different type). - * - * The per-node function may instead be an object with functions pre and post. - * pre is called before visiting the node, post after. - * If a handler is a function, it is treated as the pre function, with an empty post. - * - * @param Object options: - * - * a config object, specifying traversal options: - * - * `asNodes`: boolean - whether handlers should receives raw AST nodes - * (false by default), instead of a `NodePath` wrapper. Note, by default - * `NodePath` wrapper provides a set of convenient method to manipulate - * a traversing AST, and also has access to all parents list. A raw - * nodes traversal should be used in rare cases, when no `NodePath` - * features are needed. - * - * Special hooks: - * - * - `shouldRun(ast)` - a predicate determining whether the handler - * should be applied. - * - * NOTE: Multiple handlers are used as an optimization of applying all of - * them in one AST traversal pass. - */ - traverse: function traverse(ast, handlers) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false }; - - - if (!Array.isArray(handlers)) { - handlers = [handlers]; - } - - // Filter out handlers by result of `shouldRun`, if the method is present. - handlers = handlers.filter(function (handler) { - if (typeof handler.shouldRun !== 'function') { - return true; - } - return handler.shouldRun(ast); - }); - - NodePath.initRegistry(); - - // Allow handlers to initializer themselves. - handlers.forEach(function (handler) { - if (typeof handler.init === 'function') { - handler.init(ast); - } - }); - - function getPathFor(node, parent, prop, index) { - var parentPath = NodePath.getForNode(parent); - var nodePath = NodePath.getForNode(node, parentPath, prop, index); - - return nodePath; - } - - // Handle actual nodes. - astTraverse(ast, { - /** - * Handler on node enter. - */ - pre: function pre(node, parent, prop, index) { - var nodePath = void 0; - if (!options.asNodes) { - nodePath = getPathFor(node, parent, prop, index); - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var handler = _step.value; - - // "Catch-all" `*` handler. - if (typeof handler['*'] === 'function') { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var handlerResult = handler['*'](nodePath); - // Explicitly stop traversal. - if (handlerResult === false) { - return false; - } - } - } else { - handler['*'](node, parent, prop, index); - } - } - - // Per-node handler. - var handlerFuncPre = void 0; - if (typeof handler[node.type] === 'function') { - handlerFuncPre = handler[node.type]; - } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') { - handlerFuncPre = handler[node.type].pre; - } - - if (handlerFuncPre) { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var _handlerResult = handlerFuncPre.call(handler, nodePath); - // Explicitly stop traversal. - if (_handlerResult === false) { - return false; - } - } - } else { - handlerFuncPre.call(handler, node, parent, prop, index); - } - } - } // Loop over handlers - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }, - // pre func - - /** - * Handler on node exit. - */ - post: function post(node, parent, prop, index) { - if (!node) { - return; - } - - var nodePath = void 0; - if (!options.asNodes) { - nodePath = getPathFor(node, parent, prop, index); - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var handler = _step2.value; - - // Per-node handler. - var handlerFuncPost = void 0; - if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') { - handlerFuncPost = handler[node.type].post; - } - - if (handlerFuncPost) { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var handlerResult = handlerFuncPost.call(handler, nodePath); - // Explicitly stop traversal. - if (handlerResult === false) { - return false; - } - } - } else { - handlerFuncPost.call(handler, node, parent, prop, index); - } - } - } // Loop over handlers - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }, - // post func - - /** - * Skip locations by default. - */ - skipProperty: function skipProperty(prop) { - return prop === 'loc'; - } - }); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/traverse/node-path.js": -/*!*************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/traverse/node-path.js ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var DEFAULT_COLLECTION_PROP = 'expressions'; -var DEFAULT_SINGLE_PROP = 'expression'; - -/** - * NodePath class encapsulates a traversing node, - * its parent node, property name in the parent node, and - * an index (in case if a node is part of a collection). - * It also provides set of methods for AST manipulation. - */ - -var NodePath = function () { - /** - * NodePath constructor. - * - * @param Object node - an AST node - * @param NodePath parentPath - a nullable parent path - * @param string property - property name of the node in the parent - * @param number index - index of the node in a collection. - */ - function NodePath(node) { - var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - _classCallCheck(this, NodePath); - - this.node = node; - this.parentPath = parentPath; - this.parent = parentPath ? parentPath.node : null; - this.property = property; - this.index = index; - } - - _createClass(NodePath, [{ - key: '_enforceProp', - value: function _enforceProp(property) { - if (!this.node.hasOwnProperty(property)) { - throw new Error('Node of type ' + this.node.type + ' doesn\'t have "' + property + '" collection.'); - } - } - - /** - * Sets a node into a children collection or the single child. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to set into a collection or as single child - * @param number index - index at which to set - * @param string property - name of the collection or single property - */ - - }, { - key: 'setChild', - value: function setChild(node) { - var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - - - var childPath = void 0; - if (index != null) { - if (!property) { - property = DEFAULT_COLLECTION_PROP; - } - this._enforceProp(property); - this.node[property][index] = node; - childPath = NodePath.getForNode(node, this, property, index); - } else { - if (!property) { - property = DEFAULT_SINGLE_PROP; - } - this._enforceProp(property); - this.node[property] = node; - childPath = NodePath.getForNode(node, this, property, null); - } - return childPath; - } - - /** - * Appends a node to a children collection. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to set into a collection or as single child - * @param string property - name of the collection or single property - */ - - }, { - key: 'appendChild', - value: function appendChild(node) { - var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - - if (!property) { - property = DEFAULT_COLLECTION_PROP; - } - this._enforceProp(property); - var end = this.node[property].length; - return this.setChild(node, end, property); - } - - /** - * Inserts a node into a collection. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to insert into a collection - * @param number index - index at which to insert - * @param string property - name of the collection property - */ - - }, { - key: 'insertChildAt', - value: function insertChildAt(node, index) { - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP; - - this._enforceProp(property); - - this.node[property].splice(index, 0, node); - - // If we inserted a node before the traversing index, - // we should increase the later. - if (index <= NodePath.getTraversingIndex()) { - NodePath.updateTraversingIndex(+1); - } - - this._rebuildIndex(this.node, property); - } - - /** - * Removes a node. - */ - - }, { - key: 'remove', - value: function remove() { - if (this.isRemoved()) { - return; - } - NodePath.registry.delete(this.node); - - this.node = null; - - if (!this.parent) { - return; - } - - // A node is in a collection. - if (this.index !== null) { - this.parent[this.property].splice(this.index, 1); - - // If we remove a node before the traversing index, - // we should increase the later. - if (this.index <= NodePath.getTraversingIndex()) { - NodePath.updateTraversingIndex(-1); - } - - // Rebuild index. - this._rebuildIndex(this.parent, this.property); - - this.index = null; - this.property = null; - - return; - } - - // A simple node. - delete this.parent[this.property]; - this.property = null; - } - - /** - * Rebuilds child nodes index (used on remove/insert). - */ - - }, { - key: '_rebuildIndex', - value: function _rebuildIndex(parent, property) { - var parentPath = NodePath.getForNode(parent); - - for (var i = 0; i < parent[property].length; i++) { - var path = NodePath.getForNode(parent[property][i], parentPath, property, i); - path.index = i; - } - } - - /** - * Whether the path was removed. - */ - - }, { - key: 'isRemoved', - value: function isRemoved() { - return this.node === null; - } - - /** - * Replaces a node with the passed one. - */ - - }, { - key: 'replace', - value: function replace(newNode) { - NodePath.registry.delete(this.node); - - this.node = newNode; - - if (!this.parent) { - return null; - } - - // A node is in a collection. - if (this.index !== null) { - this.parent[this.property][this.index] = newNode; - } - - // A simple node. - else { - this.parent[this.property] = newNode; - } - - // Rebuild the node path for the new node. - return NodePath.getForNode(newNode, this.parentPath, this.property, this.index); - } - - /** - * Updates a node inline. - */ - - }, { - key: 'update', - value: function update(nodeProps) { - Object.assign(this.node, nodeProps); - } - - /** - * Returns parent. - */ - - }, { - key: 'getParent', - value: function getParent() { - return this.parentPath; - } - - /** - * Returns nth child. - */ - - }, { - key: 'getChild', - value: function getChild() { - var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - - if (this.node.expressions) { - return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n); - } else if (this.node.expression && n == 0) { - return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP); - } - return null; - } - - /** - * Whether a path node is syntactically equal to the passed one. - * - * NOTE: we don't rely on `source` property from the `loc` data - * (which would be the fastest comparison), since it might be unsync - * after several modifications. We use here simple `JSON.stringify` - * excluding the `loc` data. - * - * @param NodePath other - path to compare to. - * @return boolean - */ - - }, { - key: 'hasEqualSource', - value: function hasEqualSource(path) { - return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc); - } - - /** - * JSON-encodes a node skipping location. - */ - - }, { - key: 'jsonEncode', - value: function jsonEncode() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - format = _ref.format, - useLoc = _ref.useLoc; - - return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format); - } - - /** - * Returns previous sibling. - */ - - }, { - key: 'getPreviousSibling', - value: function getPreviousSibling() { - if (!this.parent || this.index == null) { - return null; - } - return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1); - } - - /** - * Returns next sibling. - */ - - }, { - key: 'getNextSibling', - value: function getNextSibling() { - if (!this.parent || this.index == null) { - return null; - } - return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1); - } - - /** - * Returns a NodePath instance for a node. - * - * The same NodePath can be reused in several places, e.g. - * a parent node passed for all its children. - */ - - }], [{ - key: 'getForNode', - value: function getForNode(node) { - var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; - - if (!node) { - return null; - } - - if (!NodePath.registry.has(node)) { - NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index)); - } - - var path = NodePath.registry.get(node); - - if (parentPath !== null) { - path.parentPath = parentPath; - path.parent = path.parentPath.node; - } - - if (prop !== null) { - path.property = prop; - } - - if (index >= 0) { - path.index = index; - } - - return path; - } - - /** - * Initializes the NodePath registry. The registry is a map from - * a node to its NodePath instance. - */ - - }, { - key: 'initRegistry', - value: function initRegistry() { - if (!NodePath.registry) { - NodePath.registry = new Map(); - } - NodePath.registry.clear(); - } - - /** - * Updates index of a currently traversing collection. - */ - - }, { - key: 'updateTraversingIndex', - value: function updateTraversingIndex(dx) { - return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx; - } - - /** - * Returns current traversing index. - */ - - }, { - key: 'getTraversingIndex', - value: function getTraversingIndex() { - return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1]; - } - }]); - - return NodePath; -}(); - -NodePath.initRegistry(); - -/** - * Index of a currently traversing collection is stored on top of the - * `NodePath.traversingIndexStack`. Remove/insert methods can adjust - * this index. - */ -NodePath.traversingIndexStack = []; - -// Helper function used to skip `loc` in JSON operations. -function jsonSkipLoc(prop, value) { - if (prop === 'loc') { - return undefined; - } - return value; -} - -module.exports = NodePath; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/utils/clone.js": -/*!******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/utils/clone.js ***! - \******************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Performs a deep copy of an simple object. - * Only handles scalar values, arrays and objects. - * - * @param obj Object - */ - -module.exports = function clone(obj) { - if (obj === null || typeof obj !== 'object') { - return obj; - } - var res = void 0; - if (Array.isArray(obj)) { - res = []; - } else { - res = {}; - } - for (var i in obj) { - res[i] = clone(obj[i]); - } - return res; -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/index.js": -/*!*******************************************!*\ - !*** ./node_modules/regexp-tree/index.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = __webpack_require__(/*! ./dist/regexp-tree */ "./node_modules/regexp-tree/dist/regexp-tree.js"); - -/***/ }), - -/***/ "?3465": -/*!**********************!*\ - !*** path (ignored) ***! - \**********************/ -/***/ (() => { - -/* (ignored) */ - -/***/ }), - -/***/ "./node_modules/browserslist-useragent-regexp/dist/index.js": -/*!******************************************************************!*\ - !*** ./node_modules/browserslist-useragent-regexp/dist/index.js ***! - \******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AlternativeNode: () => (/* binding */ AlternativeNode), -/* harmony export */ AstRegExpNode: () => (/* binding */ AstRegExpNode), -/* harmony export */ CapturingGroupNode: () => (/* binding */ CapturingGroupNode), -/* harmony export */ CharacterClassNode: () => (/* binding */ CharacterClassNode), -/* harmony export */ ClassRangeNode: () => (/* binding */ ClassRangeNode), -/* harmony export */ DigitPatternNode: () => (/* binding */ DigitPatternNode), -/* harmony export */ DisjunctionCapturingGroupNode: () => (/* binding */ DisjunctionCapturingGroupNode), -/* harmony export */ DisjunctionNode: () => (/* binding */ DisjunctionNode), -/* harmony export */ MetaCharNode: () => (/* binding */ MetaCharNode), -/* harmony export */ NumberCharsNode: () => (/* binding */ NumberCharsNode), -/* harmony export */ NumberPatternNode: () => (/* binding */ NumberPatternNode), -/* harmony export */ RangeQuantifierNode: () => (/* binding */ RangeQuantifierNode), -/* harmony export */ RepetitionNode: () => (/* binding */ RepetitionNode), -/* harmony export */ SemverPart: () => (/* binding */ SemverPart), -/* harmony export */ SimpleCharNode: () => (/* binding */ SimpleCharNode), -/* harmony export */ SimpleQuantifierNode: () => (/* binding */ SimpleQuantifierNode), -/* harmony export */ applyVersionsToRegex: () => (/* binding */ applyVersionsToRegex), -/* harmony export */ applyVersionsToRegexes: () => (/* binding */ applyVersionsToRegexes), -/* harmony export */ clone: () => (/* binding */ clone), -/* harmony export */ compareArrays: () => (/* binding */ compareArrays), -/* harmony export */ compareSemvers: () => (/* binding */ compareSemvers), -/* harmony export */ compileRegex: () => (/* binding */ compileRegex), -/* harmony export */ compileRegexes: () => (/* binding */ compileRegexes), -/* harmony export */ concat: () => (/* binding */ concat), -/* harmony export */ defaultOptions: () => (/* binding */ defaultOptions), -/* harmony export */ findMatchedVersions: () => (/* binding */ findMatchedVersions), -/* harmony export */ getBrowsersList: () => (/* binding */ getBrowsersList), -/* harmony export */ getNumberPatternsCount: () => (/* binding */ getNumberPatternsCount), -/* harmony export */ getNumberPatternsPart: () => (/* binding */ getNumberPatternsPart), -/* harmony export */ getPreUserAgentRegexes: () => (/* binding */ getPreUserAgentRegexes), -/* harmony export */ getRegexesForBrowsers: () => (/* binding */ getRegexesForBrowsers), -/* harmony export */ getRequiredSemverPartsCount: () => (/* binding */ getRequiredSemverPartsCount), -/* harmony export */ getUserAgentRegex: () => (/* binding */ getUserAgentRegex), -/* harmony export */ getUserAgentRegexes: () => (/* binding */ getUserAgentRegexes), -/* harmony export */ isCharNode: () => (/* binding */ isCharNode), -/* harmony export */ isDigitRangeNode: () => (/* binding */ isDigitRangeNode), -/* harmony export */ isExpressionNode: () => (/* binding */ isExpressionNode), -/* harmony export */ isNumberPatternNode: () => (/* binding */ isNumberPatternNode), -/* harmony export */ mergeBrowserVersions: () => (/* binding */ mergeBrowserVersions), -/* harmony export */ mergeDigits: () => (/* binding */ mergeDigits), -/* harmony export */ numberToDigits: () => (/* binding */ numberToDigits), -/* harmony export */ numbersToRanges: () => (/* binding */ numbersToRanges), -/* harmony export */ optimizeRegex: () => (/* binding */ optimizeRegex), -/* harmony export */ optimizeSegmentNumberPatterns: () => (/* binding */ optimizeSegmentNumberPatterns), -/* harmony export */ parseBrowsersList: () => (/* binding */ parseBrowsersList), -/* harmony export */ parseRegex: () => (/* binding */ parseRegex), -/* harmony export */ rangeSemver: () => (/* binding */ rangeSemver), -/* harmony export */ rangeToRegex: () => (/* binding */ rangeToRegex), -/* harmony export */ rangedSemverToRegex: () => (/* binding */ rangedSemverToRegex), -/* harmony export */ rayRangeDigitPattern: () => (/* binding */ rayRangeDigitPattern), -/* harmony export */ rayToNumberPatterns: () => (/* binding */ rayToNumberPatterns), -/* harmony export */ replaceNumberPatterns: () => (/* binding */ replaceNumberPatterns), -/* harmony export */ segmentRangeNumberPattern: () => (/* binding */ segmentRangeNumberPattern), -/* harmony export */ segmentToNumberPatterns: () => (/* binding */ segmentToNumberPatterns), -/* harmony export */ semverify: () => (/* binding */ semverify), -/* harmony export */ splitCommonDiff: () => (/* binding */ splitCommonDiff), -/* harmony export */ splitToDecadeRanges: () => (/* binding */ splitToDecadeRanges), -/* harmony export */ toRegex: () => (/* binding */ toRegex), -/* harmony export */ toString: () => (/* binding */ toString), -/* harmony export */ versionsListToRanges: () => (/* binding */ versionsListToRanges), -/* harmony export */ visitors: () => (/* binding */ visitors) -/* harmony export */ }); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); -/* harmony import */ var regexp_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regexp-tree */ "./node_modules/regexp-tree/index.js"); -/* harmony import */ var ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ua-regexes-lite */ "./node_modules/ua-regexes-lite/index.js"); - - - - -/** - * Array of numbers to array of first and last elements. - * @param numbers - Array of numbers. - * @returns Number or two numbers. - */ function numbersToRanges(numbers) { - if (typeof numbers === "number") { - return numbers; - } - if (numbers.length === 1) { - return numbers[0]; - } - return [ - numbers[0], - numbers[numbers.length - 1] - ]; -} - -var SemverPart; -(function(SemverPart) { - SemverPart[SemverPart["Major"] = 0] = "Major"; - SemverPart[SemverPart["Minor"] = 1] = "Minor"; - SemverPart[SemverPart["Patch"] = 2] = "Patch"; -})(SemverPart || (SemverPart = {})); - -/** - * Get semver from string or array. - * @param version - Target to convert. - * @returns Array with semver parts. - */ function semverify(version) { - const versionParts = Array.isArray(version) ? version : version.toString().split("."); - if (versionParts[0] === "all") { - return [ - Infinity, - 0, - 0 - ]; - } - let versionPart = null; - let semverPart = null; - const semver = [ - 0, - 0, - 0 - ]; - for(let i = 0; i < 3; i++){ - versionPart = versionParts[i]; - if (typeof versionPart === "undefined") { - continue; - } - semverPart = typeof versionPart === "number" ? versionPart : parseInt(versionPart, 10); - if (isNaN(semverPart)) { - return null; - } - semver[i] = semverPart; - } - return semver; -} -/** - * Get semver range. - * @param from - * @param to - * @returns Semver range. - */ function rangeSemver(from, to) { - let partIndex = 0; - const range = []; - for(let i = 2; i >= 0; i--){ - if (from[i] !== to[i]) { - partIndex = i; - break; - } - } - for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){ - range.push(from.map((v, j)=>j === partIndex ? i1 : v)); - } - return range; -} -/** - * Compare semvers. - * @param a - Semver to compare. - * @param b - Semver to compare with. - * @param options - Compare options. - * @returns Equals or not. - */ function compareSemvers(a, b, options) { - const [major, minor, patch] = a; - const [majorBase, minorBase, patchBase] = b; - const { ignoreMinor , ignorePatch , allowHigherVersions } = options; - if (majorBase === Infinity) { - return true; - } - const compareMinor = !ignoreMinor; - const comparePatch = compareMinor && !ignorePatch; - if (allowHigherVersions) { - if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) { - return false; - } - return major >= majorBase; - } - if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) { - return false; - } - return major === majorBase; -} -/** - * Get required semver parts count. - * @param version - Semver parts or ranges. - * @param options - Semver compare options. - * @returns Required semver parts count. - */ function getRequiredSemverPartsCount(version, options) { - const { ignoreMinor , ignorePatch , allowZeroSubversions } = options; - let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3; - if (allowZeroSubversions) { - for(let i = shouldRepeatCount - 1; i > 0; i--){ - if (version[i] !== 0 || shouldRepeatCount === 1) { - break; - } - shouldRepeatCount--; - } - } - return shouldRepeatCount; -} - -/** - * Browsers strings to info objects. - * @param browsersList - Browsers strings with family and version. - * @returns Browser info objects. - */ function parseBrowsersList(browsersList) { - return browsersList.reduce((browsers, browser)=>{ - const [family, versionString, versionStringTo] = browser.split(/ |-/); - const version = semverify(versionString); - const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [ - version - ]; - return versions.reduce((browsers, semver)=>{ - if (semver) { - browsers.push({ - family, - version: semver - }); - } - return browsers; - }, browsers); - }, []); -} -/** - * Request browsers list. - * @param options - Options to get browsers list. - * @returns Browser info objects. - */ function getBrowsersList(options = {}) { - const { browsers , ...browserslistOptions } = options; - const browsersList = browserslist__WEBPACK_IMPORTED_MODULE_0__(browsers, browserslistOptions); - const parsedBrowsers = parseBrowsersList(browsersList); - return parsedBrowsers; -} - -/** - * Compare two arrays. - * @param a - Array to compare. - * @param b - Array to compare. - * @param from - Index to start compare from. - * @returns Equals or not. - */ function compareArrays(a, b, from = 0) { - const len = a.length; - for(let i = from; i < len; i++){ - if (a[i] !== b[i]) { - return false; - } - } - return true; -} -/** - * Clone simple object. - * @param value - * @returns Object clone. - */ function clone(value) { - if (value === null || typeof value !== "object") { - return value; - } - /* eslint-disable */ const copy = Array.isArray(value) ? [] : {}; - let i; - for(i in value){ - copy[i] = clone(value[i]); - } - /* eslint-enable */ return copy; -} -/** - * Concat arrays. - * @param items - * @returns Concatinated arrays. - */ function concat(items) { - return [].concat(...items); -} - -/** - * Merge browser info object to map with versions. - * @param browsers - Browser info object to merge. - * @returns Merged browsers map. - */ function mergeBrowserVersions(browsers) { - const merge = new Map(); - browsers.forEach(({ family , version })=>{ - const versions = merge.get(family); - if (versions) { - const strVersion = version.join("."); - if (versions.every((_)=>_.join(".") !== strVersion)) { - versions.push(version); - } - return; - } - merge.set(family, [ - version - ]); - }); - merge.forEach((versions)=>{ - versions.sort((a, b)=>{ - for(const i in a){ - if (a[i] !== b[i]) { - return a[i] - b[i]; - } - } - return 0; - }); - }); - return merge; -} -/** - * Versions to ranged versions. - * @param versions - Semver versions list. - * @returns Ranged versions list. - */ function versionsListToRanges(versions) { - if (versions.length < 2) { - return versions; - } - const max = versions.length + 1; - const ranges = []; - let prev = null; - let current = versions[0]; - let major = [ - current[SemverPart.Major] - ]; - let minor = [ - current[SemverPart.Minor] - ]; - let patch = [ - current[SemverPart.Patch] - ]; - let part = null; - for(let i = 1; i < max; i++){ - prev = versions[i - 1]; - current = versions[i] || []; - for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){ - if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) { - part = p; - if (p === SemverPart.Major) { - major.push(current[SemverPart.Major]); - } else { - major = current[SemverPart.Major]; - } - if (p === SemverPart.Minor) { - minor.push(current[SemverPart.Minor]); - } else { - minor = current[SemverPart.Minor]; - } - if (p === SemverPart.Patch) { - patch.push(current[SemverPart.Patch]); - } else { - patch = current[SemverPart.Patch]; - } - break; - } - if (part === p || prev[p] !== current[p]) { - ranges.push([ - numbersToRanges(major), - numbersToRanges(minor), - numbersToRanges(patch) - ]); - major = [ - current[SemverPart.Major] - ]; - minor = [ - current[SemverPart.Minor] - ]; - patch = [ - current[SemverPart.Patch] - ]; - part = null; - break; - } - } - } - return ranges; -} - -function AstRegExpNode(body) { - return { - type: "RegExp", - body, - flags: "" - }; -} -function AlternativeNode(...expressions) { - const exps = concat(expressions).filter(Boolean); - if (exps.length === 1) { - return exps[0]; - } - return { - type: "Alternative", - expressions: exps - }; -} -function SimpleCharNode(value) { - return { - type: "Char", - kind: "simple", - value: String(value), - codePoint: NaN - }; -} -function MetaCharNode(value) { - return { - type: "Char", - kind: "meta", - value, - codePoint: NaN - }; -} -function ClassRangeNode(from, to) { - return { - type: "ClassRange", - from, - to - }; -} -function CharacterClassNode(...expressions) { - return { - type: "CharacterClass", - expressions: concat(expressions).filter(Boolean) - }; -} -function SimpleQuantifierNode(kind) { - return { - type: "Quantifier", - kind, - greedy: true - }; -} -function RangeQuantifierNode(from, to) { - return { - type: "Quantifier", - kind: "Range", - from, - to, - greedy: true - }; -} -function CapturingGroupNode(expression) { - return { - type: "Group", - capturing: true, - expression, - number: null - }; -} -function RepetitionNode(expression, quantifier) { - return { - type: "Repetition", - expression, - quantifier - }; -} -function DisjunctionNode(...expressions) { - const exprs = concat(expressions).filter(Boolean); - if (exprs.length === 1) { - return exprs[0]; - } - const disjunction = { - type: "Disjunction", - left: null, - right: exprs.pop() - }; - exprs.reduceRight((disjunction, expr, i)=>{ - if (i === 0) { - disjunction.left = expr; - return disjunction; - } - disjunction.left = { - type: "Disjunction", - left: null, - right: expr - }; - return disjunction.left; - }, disjunction); - return disjunction; -} -function DisjunctionCapturingGroupNode(...expressions) { - const expr = DisjunctionNode(...expressions); - if (expr.type === "Disjunction") { - return CapturingGroupNode(expr); - } - return expr; -} -function DigitPatternNode() { - return MetaCharNode("\\d"); -} -function NumberPatternNode(quantifier = SimpleQuantifierNode("+")) { - const numberPattern = RepetitionNode(DigitPatternNode(), quantifier); - return numberPattern; -} -function NumberCharsNode(value) { - return AlternativeNode(Array.from(String(value), SimpleCharNode)); -} - -/** - * Check node whether is number pattern. - * @param node - AST node to check. - * @returns Is number pattern or not. - */ function isNumberPatternNode(node) { - if (node.type === "Group" && node.expression.type === "Repetition") { - const { expression , quantifier } = node.expression; - return expression.type === "Char" && expression.value === "\\d" && quantifier.kind === "+" && quantifier.greedy; - } - return false; -} -/** - * Check node whether is char node. - * @param node - AST node to check. - * @param value - Value to compare. - * @returns Is char node or not. - */ function isCharNode(node, value) { - if (node && node.type === "Char") { - return typeof value === "undefined" || value instanceof RegExp && value.test(node.value) || String(value) === node.value; - } - return false; -} -/** - * Check node whether is digit range. - * @param node - AST node to check. - * @returns Is digit range or not. - */ function isDigitRangeNode(node) { - if (node.type === "CharacterClass" && node.expressions.length === 1) { - const [expression] = node.expressions; - return expression.type === "ClassRange" && isCharNode(expression.from, /\d/) && isCharNode(expression.to, /\d/); - } - return false; -} -/** - * Check node whether is expression. - * @param node - AST node to check. - * @returns Is expression node or not. - */ function isExpressionNode(node) { - return node.type !== "RegExp" && node.type !== "ClassRange" && node.type !== "Quantifier"; -} -function parseRegex(regex) { - return typeof regex === "string" ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex.replace(/^([^/])/, "/$1").replace(/([^/])$/, "$1/")) : regex instanceof RegExp ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex) : regex; -} -/** - * Get regex from string or AST. - * @param src - String or AST. - * @returns RegExp. - */ function toRegex(src) { - return typeof src === "string" ? new RegExp(src) : new RegExp(regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src.body), src.flags); -} -/** - * Get string from regex or AST. - * @param src - RegExp or AST. - * @returns String. - */ function toString(src) { - return typeof src === "string" ? src : src instanceof RegExp ? src.toString() : regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src); -} - -const classes = [ - "RegExp", - "Disjunction", - "Alternative", - "Assertion", - "Char", - "CharacterClass", - "ClassRange", - "Backreference", - "Group", - "Repetition", - "Quantifier" -]; -/** - * Create traversal visitors. - * @param visitors - * @returns Traversal handlers. - */ function visitors(visitors) { - const { every } = visitors; - if (!every) { - return visitors; - } - if (typeof every === "function") { - return { - // eslint-disable-next-line @typescript-eslint/naming-convention - "*": every, - ...visitors - }; - } - return classes.reduce((newVisitors, className)=>{ - const visitor = visitors[className]; - const visitorPre = visitor ? "pre" in visitor ? visitor.pre : visitor : null; - const visitorPost = visitor ? "post" in visitor ? visitor.post : null : null; - newVisitors[className] = { - pre (nodePath) { - if (every.pre(nodePath) !== false && visitorPre) { - return visitorPre(nodePath); - } - return true; - }, - post (nodePath) { - if (every.post(nodePath) !== false && visitorPost) { - return visitorPost(nodePath); - } - return true; - } - }; - return newVisitors; - }, {}); -} - -function optimizeRegex(regex) { - // Optimization requires filled codePoints - const regexAst = regexp_tree__WEBPACK_IMPORTED_MODULE_1__.optimize(parseRegex(toString(regex))).getAST(); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { - Group (nodePath) { - const { parent , node } = nodePath; - const { expression } = node; - node.capturing = true; - if (parent.type === "RegExp" || expression.type !== "Disjunction" && parent.type !== "Repetition" || expression.type === "Disjunction" && parent.type === "Disjunction") { - nodePath.replace(nodePath.node.expression); - } - } - }); - return regexAst; -} -/** - * Merge digits patterns if possible. - * @param a - * @param b - * @returns Merged node. - */ function mergeDigits(a, b) { - if (isCharNode(a) && isCharNode(b) && a.value === b.value) { - return b; - } - if (isCharNode(a, /\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) { - return { - ...b, - expressions: [ - { - ...b.expressions[0], - from: a - } - ] - }; - } - if (isDigitRangeNode(a) && isCharNode(b, /\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) { - return { - ...a, - expressions: [ - { - ...a.expressions[0], - to: b - } - ] - }; - } - return null; -} -/** - * Optimize segment number patterns. - * @param patterns - * @returns Optimized segment number patterns. - */ function optimizeSegmentNumberPatterns(patterns) { - return patterns.reduce((patterns, node)=>{ - const prevNode = patterns[patterns.length - 1]; - if (prevNode && node.type === "Alternative" && prevNode.type === "Alternative" && node.expressions.length === prevNode.expressions.length) { - const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{ - if (!exps) { - return exps; - } - const merged = mergeDigits(exp, node.expressions[i]); - if (merged) { - exps.unshift(merged); - } else { - return null; - } - return exps; - }, []); - if (merged) { - node.expressions = merged; - patterns.pop(); - } - } - patterns.push(node); - return patterns; - }, []); -} - -/** - * Transform number to digits array. - * @param num - Target number. - * @returns Digits array. - */ function numberToDigits(num) { - return Array.from(num.toString(), Number); -} - -/** - * Get digit pattern. - * @param digit - Ray start. - * @param includes - Include start digit or use next. - * @returns Digit pattern. - */ function rayRangeDigitPattern(digit, includes) { - const rangeStart = digit + Number(!includes); - if (rangeStart === 0) { - return DigitPatternNode(); - } - if (rangeStart === 9) { - return SimpleCharNode("9"); - } - if (rangeStart > 9) { - return null; - } - return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode("9"))); -} -/** - * Create numeric ray pattern. - * @param from - Start from this number. - * @returns Numeric ray pattern parts. - */ function rayToNumberPatterns(from) { - if (from === 0) { - return [ - NumberPatternNode() - ]; - } - const digits = numberToDigits(from); - const digitsCount = digits.length; - const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1)); - const zeros = digitsCount - 1; - if (from / Math.pow(10, zeros) === digits[0]) { - return [ - AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({ - length: zeros - }, DigitPatternNode)), - other - ]; - } - const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{ - const ri = digitsCount - i - 1; - const d = i === 0; - let prev = SimpleCharNode(""); - const nodes = digits.reduce((nodes, digit, j)=>{ - if (j < ri) { - nodes.push(SimpleCharNode(digit)); - } else if (prev) { - if (j > ri) { - nodes.push(DigitPatternNode()); - } else { - prev = rayRangeDigitPattern(digit, d); - if (prev) { - nodes.push(prev); - } else { - return []; - } - } - } - return nodes; - }, []); - if (nodes.length) { - topNodes.push(nodes); - } - return topNodes; - }, []); - const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_)); - numberPatterns.push(other); - return numberPatterns; -} - -/** - * Get digit pattern. - * @param from - Segment start. - * @param to - Segment end. - * @param zeros - Zeros to add as prefix. - * @returns Digit pattern. - */ function segmentRangeNumberPattern(from, to, zeros) { - if (to < from) { - return null; - } - const fromNode = SimpleCharNode(from); - const toNode = SimpleCharNode(to); - const zerosPrefix = typeof zeros === "number" && zeros > 0 ? Array.from({ - length: zeros - }, ()=>SimpleCharNode(0)) : []; - const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node; - if (from === to) { - return addPrefix(fromNode); - } - if (from === 0 && to === 9) { - return addPrefix(DigitPatternNode()); - } - if (to - from === 1) { - return addPrefix(CharacterClassNode(fromNode, toNode)); - } - return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode))); -} -/** - * Split segment range to decade ranges. - * @param from - Segment start. - * @param to - Segment end. - * @returns Ranges. - */ function splitToDecadeRanges(from, to) { - const ranges = []; - let num = from; - let decade = 1; - do { - decade *= 10; - if (num < decade) { - ranges.push([ - num, - Math.min(decade - 1, to) - ]); - num = decade; - } - }while (decade <= to); - return ranges; -} -/** - * Get common and diffs of two numbers (arrays of digits). - * @param a - Digits. - * @param b - Other digits. - * @returns Common part and diffs. - */ function splitCommonDiff(a, b) { - const len = a.length; - if (len !== b.length || a[0] !== b[0]) { - return null; - } - let common = a[0].toString(); - let currA = 0; - let currB = 0; - let diffA = ""; - let diffB = ""; - for(let i = 1; i < len; i++){ - currA = a[i]; - currB = b[i]; - if (currA === currB) { - common += currA; - } else { - diffA += currA; - diffB += currB; - } - } - return [ - common, - parseInt(diffA, 10), - parseInt(diffB, 10) - ]; -} -/** - * Get segment patterns. - * @param from - Segment start. - * @param to - Segment end. - * @param digitsInNumber - How many digits should be en number. Will be filled by zeros. - * @returns Segment patterns. - */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) { - const fromDigits = numberToDigits(from); - const digitsCount = fromDigits.length; - if (from < 10 && to < 10 || from === to) { - const zeros = digitsInNumber - digitsCount; - return [ - segmentRangeNumberPattern(from, to, zeros) - ]; - } - const toDigits = numberToDigits(to); - if (digitsCount !== toDigits.length) { - const decadeRanges = splitToDecadeRanges(from, to); - const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber))); - return parts; - } - const commonStart = splitCommonDiff(fromDigits, toDigits); - if (Array.isArray(commonStart)) { - const [common, from1, to1] = commonStart; - const digitsInNumber1 = digitsCount - common.length; - const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1); - return [ - AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts)) - ]; - } - const range = Array.from({ - length: digitsCount - 1 - }); - const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1); - const parts1 = [ - ...range.map((_, i)=>{ - const ri = digitsCount - i - 1; - const d = Number(i > 0); - return AlternativeNode(fromDigits.map((digit, j)=>{ - if (j < ri) { - return SimpleCharNode(digit); - } - if (j > ri) { - return segmentRangeNumberPattern(0, 9); - } - return segmentRangeNumberPattern(digit + d, 9); - })); - }), - // but output more readable - ...middleSegment ? [ - AlternativeNode(middleSegment, Array.from({ - length: digitsCount - 1 - }, ()=>DigitPatternNode())) - ] : [], - ...range.map((_, i)=>{ - const ri = digitsCount - i - 1; - const d = Number(i > 0); - return AlternativeNode(toDigits.map((digit, j)=>{ - if (j < ri) { - return SimpleCharNode(digit); - } - if (j > ri) { - return segmentRangeNumberPattern(0, 9); - } - return segmentRangeNumberPattern(0, digit - d); - })); - }) - ]; - return optimizeSegmentNumberPatterns(parts1); -} - -/** - * Get regex for given numeric range. - * @param from - Range start. - * @param to - Range end. - * @returns Range pattern. - */ function rangeToRegex(from, to = Infinity) { - if (from === Infinity) { - return NumberPatternNode(); - } - const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to); - const regex = DisjunctionCapturingGroupNode(numberPatterns); - return regex; -} - -/** - * Find matched versions. - * @param minVersion - Semver version. - * @param maxVersion - Semver version. - * @param bases - Base semver versions. - * @param options - Semver compare options. - * @returns Matched versions. - */ function findMatchedVersions(minVersion, maxVersion, bases, options) { - const compareOptions = { - ...options, - allowHigherVersions: true - }; - const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions); - const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions); - const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true; - return bases.filter(comparator); -} - -/** - * Get useragent regexes for given browsers. - * @param browsers - Browsers. - * @param options - Semver compare options. - * @param targetRegexes - Override default regexes. - * @returns User agent regexes. - */ function getRegexesForBrowsers(browsers, options, targetRegexes = ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__.regexes) { - const result = []; - let prevFamily = ""; - let prevRegexIsGlobal = false; - targetRegexes.forEach((regex)=>{ - const requestVersions = browsers.get(regex.family); - if (!requestVersions) { - return; - } - let { version , minVersion , maxVersion } = regex; - if (version) { - minVersion = version; - maxVersion = version; - } - let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options); - if (matchedVersions.length) { - // regex contains global patch - if (prevFamily === regex.family && prevRegexIsGlobal) { - version = undefined; - minVersion = undefined; - maxVersion = undefined; - matchedVersions = requestVersions; - result.pop(); - } - result.push({ - ...regex, - version, - minVersion, - maxVersion, - requestVersions, - matchedVersions - }); - } - prevRegexIsGlobal = !version && !minVersion && !maxVersion; - prevFamily = regex.family; - }); - return result; -} - -/** - * Compile regexes. - * @param regexes - Objects with info about compiled regexes. - * @returns Objects with info about compiled regexes. - */ function compileRegexes(regexes) { - return regexes.map(({ regexAst , ...regex })=>{ - const optimizedRegexAst = optimizeRegex(regexAst); - return { - ...regex, - regexAst: optimizedRegexAst, - regex: toRegex(optimizedRegexAst) - }; - }); -} -/** - * Compile regex. - * @param regexes - Objects with info about compiled regexes. - * @returns Compiled common regex. - */ function compileRegex(regexes) { - const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body)); - const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes))); - return toRegex(regexAst); -} - -/** - * Get number patterns count from the regex. - * @param regex - Target regex. - * @returns Number patterns count. - */ function getNumberPatternsCount(regex) { - const regexAst = parseRegex(regex); - let count = 0; - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { - Group (nodePath) { - if (isNumberPatternNode(nodePath.node)) { - count++; - } - } - }); - return count; -} -function replaceNumberPatterns(regex, numbers, numberPatternsCount) { - let regexAst = parseRegex(regex); - const numbersToReplace = typeof numberPatternsCount === "number" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice(); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every () { - return Boolean(numbersToReplace.length); - }, - Group (nodePath) { - if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) { - if (regexAst === nodePath.node) { - regexAst = numbersToReplace.shift(); - } else { - nodePath.replace(numbersToReplace.shift()); - } - return false; - } - return true; - } - })); - return regexAst; -} -/** - * Get from regex part with number patterns. - * @param regex - Target regex. - * @param numberPatternsCount - Number patterns to extract. - * @returns Regex part with number patterns. - */ function getNumberPatternsPart(regex, numberPatternsCount) { - const regexAst = parseRegex(regex); - const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity); - const expressions = []; - let numbersCounter = 0; - let containsNumberPattern = false; - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every: { - pre ({ node , parent }) { - if (node === regexAst) { - return true; - } - if (!isExpressionNode(node)) { - return false; - } - if (parent === regexAst) { - containsNumberPattern = false; - } - return numbersCounter < maxNumbersCount; - }, - post ({ node , parent }) { - if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) { - expressions.push(node); - } - } - }, - Group (nodePath) { - if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) { - containsNumberPattern = true; - numbersCounter++; - return false; - } - return true; - } - })); - if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) { - return getNumberPatternsPart(expressions[0], maxNumbersCount); - } - return expressions; -} -/** - * Ranged semver to regex patterns. - * @param rangedVersion - Ranged semver. - * @param options - Semver compare options. - * @returns Array of regex pattern. - */ function rangedSemverToRegex(rangedVersion, options) { - const { ignoreMinor , ignorePatch , allowHigherVersions } = options; - const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3; - if (allowHigherVersions) { - const numberPatterns = []; - let prevWasZero = true; - let d = 0; - let start = 0; - const createMapper = (i)=>(range, j)=>{ - if (j >= ignoreIndex) { - return NumberPatternNode(); - } - start = Array.isArray(range) ? range[0] : range; - if (j < i) { - return NumberCharsNode(start); - } - if (j > i) { - return NumberPatternNode(); - } - return rangeToRegex(start + d); - }; - for(let i = ignoreIndex - 1; i >= 0; i--){ - if (prevWasZero && !rangedVersion[i]) { - continue; - } - prevWasZero = false; - numberPatterns.push(rangedVersion.map(createMapper(i))); - d = 1; - } - return numberPatterns; - } - const numberPatterns1 = rangedVersion.map((range, i)=>{ - if (i >= ignoreIndex) { - return NumberPatternNode(); - } - if (Array.isArray(range)) { - return rangeToRegex(range[0], range[1]); - } - return NumberCharsNode(range); - }); - return [ - numberPatterns1 - ]; -} - -function applyVersionsToRegex(regex, versions, options) { - const { allowHigherVersions } = options; - const regexAst = parseRegex(regex); - const finalVersions = allowHigherVersions && versions.length ? [ - versions[0] - ] : versions; - const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1); - const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount); - const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount)))); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every (nodePath) { - if (!numberPatternsPart.length) { - return false; - } - if (nodePath.node === numberPatternsPart[0]) { - if (numberPatternsPart.length === 1) { - nodePath.replace(versionsPart); - } else { - nodePath.remove(); - } - numberPatternsPart.shift(); - } - return true; - } - })); - return regexAst; -} -/** - * Apply browser versions to info objects. - * @param browserRegexes - Objects with requested browser version and regex. - * @param options - Semver compare options. - * @returns Objects with requested browser version and regex special for this version. - */ function applyVersionsToRegexes(browserRegexes, options) { - return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{ - let regexAst = parseRegex(sourceRegex); - if (!version) { - regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), { - ...options, - allowHigherVersions: !maxVersion && options.allowHigherVersions - }); - } - return { - regex: null, - sourceRegex, - regexAst, - version, - maxVersion, - matchedVersions, - ...other - }; - }); -} - -const defaultOptions = { - ignoreMinor: false, - ignorePatch: true, - allowZeroSubversions: false, - allowHigherVersions: false -}; -/** - * Get source regexes objects from browserslist query. - * @param options - Browserslist and semver compare options. - * @returns Source regexes objects. - */ function getPreUserAgentRegexes(options = {}) { - const finalOptions = { - ...defaultOptions, - ...options - }; - const browsersList = getBrowsersList(finalOptions); - const mergedBrowsers = mergeBrowserVersions(browsersList); - const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions); - const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions); - return versionedRegexes; -} -/** - * Compile browserslist query to regexes. - * @param options - Browserslist and semver compare options. - * @returns Objects with info about compiled regexes. - */ function getUserAgentRegexes(options = {}) { - return compileRegexes(getPreUserAgentRegexes(options)); -} -/** - * Compile browserslist query to regex. - * @param options - Browserslist and semver compare options. - * @returns Compiled regex. - */ function getUserAgentRegex(options = {}) { - return compileRegex(getPreUserAgentRegexes(options)); -} - - -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ "./node_modules/ua-regexes-lite/index.js": -/*!***********************************************!*\ - !*** ./node_modules/ua-regexes-lite/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ regexes: () => (/* binding */ regexes) -/* harmony export */ }); -/** - * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex - */ - -/** @type {UserAgentRegex[]} */ -const regexes = [ - { - regex: /IE (\d+)\.(\d+)/, - family: 'ie', - maxVersion: [ - 7, - Infinity, - Infinity - ] - }, - /** - * IE can be in Compatability Mode (IE 7.0) - * so we need to check Trident version - */ - { - regex: /Trident\/4\.0/, - family: 'ie', - version: [ - 8, - 0, - 0 - ] - }, - { - regex: /Trident\/5\.0/, - family: 'ie', - version: [ - 9, - 0, - 0 - ] - }, - { - regex: /Trident\/6\.0/, - family: 'ie', - version: [ - 10, - 0, - 0 - ] - }, - { - regex: /Trident\/[78]\.0/, - family: 'ie', - version: [ - 11, - 0, - 0 - ] - }, - { - regex: /Edge?\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'edge' - }, - { - regex: /Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'firefox' - }, - { - regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'chrome' - }, - /** - * Ignore Edge with EdgeHTML engine. - */ - { - regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/, - family: 'chrome', - maxVersion: [ - 70, - Infinity, - Infinity - ] - }, - /** - * Safari on iPad have desktop-like useragent - * Some versions contains letter subversions - * GNOME Web (X11) is based on WebKit and should be detected as Safari - */ - { - regex: /(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//, - family: 'safari' - }, - /** - * Presto Opera - */ - { - regex: /Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'opera', - maxVersion: [ - 12, - 15, - 0 - ] - }, - /** - * Chromium based Opera - */ - { - regex: /Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/, - family: 'opera', - minVersion: [ - 15, - 0, - 0 - ] - }, - { - regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, - family: 'ios_saf' - }, - /** - * Ignore IE Mobile 11 - */ - { - regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, - family: 'ios_saf', - version: [ - 7, - 0, - 3 - ] - }, - { - regex: /Opera Mini/, - family: 'op_mini' - }, - { - regex: /Android Donut/, - family: 'android', - version: [ - 1, - 2, - 0 - ] - }, - { - regex: /Android Eclair/, - family: 'android', - version: [ - 2, - 1, - 0 - ] - }, - { - regex: /Android Froyo/, - family: 'android', - version: [ - 2, - 2, - 0 - ] - }, - { - regex: /Android Gingerbread/, - family: 'android', - version: [ - 2, - 3, - 0 - ] - }, - { - regex: /Android Honeycomb/, - family: 'android', - version: [ - 3, - 0, - 0 - ] - }, - { - regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'android' - }, - /** - * Ignore IE Mobile 11 - */ - { - regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/, - family: 'android', - version: [ - 4, - 0, - 0 - ] - }, - { - regex: /PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/, - family: 'bb' - }, - { - regex: /(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/, - family: 'bb' - }, - /** - * Presto Opera Mobile - */ - { - regex: /Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/, - family: 'op_mob', - maxVersion: [ - 12, - 16, - 0 - ] - }, - /** - * Chromium based Opera Mobile - */ - { - regex: /Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/, - family: 'op_mob', - minVersion: [ - 14, - 0, - 0 - ] - }, - { - regex: /Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'and_ff' - }, - { - regex: /Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'and_chr' - }, - { - regex: /IEMobile[ /](\d+)\.(\d+)/, - family: 'ie_mob' - }, - { - regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/, - family: 'and_uc' - }, - { - regex: /SamsungBrowser\/(\d+)\.(\d+)/, - family: 'samsung' - }, - { - regex: /Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'and_qq' - }, - { - regex: /baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'baidu' - }, - { - regex: /K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'kaios' - } -] - - -/***/ }), - -/***/ "./node_modules/node-releases/data/processed/envs.json": -/*!*************************************************************!*\ - !*** ./node_modules/node-releases/data/processed/envs.json ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = /*#__PURE__*/JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"}]'); - -/***/ }), - -/***/ "./node_modules/node-releases/data/release-schedule/release-schedule.json": -/*!********************************************************************************!*\ - !*** ./node_modules/node-releases/data/release-schedule/release-schedule.json ***! - \********************************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = /*#__PURE__*/JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-23","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}'); - -/***/ }) - -}]); -//# sourceMappingURL=core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map?v=7a842c81009148a2953a \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map deleted file mode 100644 index bbc1d5f7bfe09..0000000000000 --- a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js?v=7a842c81009148a2953a","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7EA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9CA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC53CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/ignored|/home/admin/git/server/node_modules/browserslist|path","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nconst getLogger = user => {\n if (user === null) {\n return getLoggerBuilder().setApp('core').build();\n }\n return getLoggerBuilder().setApp('core').setUid(user.uid).build();\n};\nexport default getLogger(getCurrentUser());","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage';\nexport default getBuilder('core').clearOnLogout().persist().build();","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp';\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist';\nimport browserslistConfig from '@nextcloud/browserslist-config';\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({\n allowHigherVersions: true,\n browsers: browserslistConfig\n});\nexport const supportedBrowsers = browserslist(browserslistConfig);","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router';\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js';\nimport browserStorage from '../services/BrowserStorageService.js';\nimport logger from '../logger.js';\nexport const browserStorageKey = 'unsupported-browser-ignore';\nconst redirectPath = generateUrl('/unsupported');\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true';\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function () {\n if (supportedBrowsersRegExp.test(navigator.userAgent)) {\n logger.debug('this browser is officially supported ! 🚀');\n return;\n }\n\n // If incompatible BUT ignored, let's keep going\n if (isBrowserOverridden) {\n logger.debug('this browser is NOT supported but has been manually overridden ! ⚠️');\n return;\n }\n\n // If incompatible, NOT overridden AND NOT already on the warning page,\n // redirect to the unsupported warning page\n if (window.location.pathname.indexOf(redirectPath) === -1) {\n const redirectUrl = window.location.href.replace(window.location.origin, '');\n const base64Param = Buffer.from(redirectUrl).toString('base64');\n history.pushState(null, null, \"\".concat(redirectPath, \"?redirect_url=\").concat(base64Param));\n window.location.reload();\n }\n};","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\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[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\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\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\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\\u09fc\\u09fe\\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-\\u0aff\\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-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\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\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\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-\\uab67\\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\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\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-\\ude35\\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\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\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\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\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[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\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]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","/* (ignored) */","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js deleted file mode 100644 index 69122969fbf7a..0000000000000 --- a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js +++ /dev/null @@ -1,1032 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b"],{ - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e": -/*!***********************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e ***! - \***********************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e": -/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e ***! - \******************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e": -/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e ***! - \******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e": -/*!***************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e ***! - \***************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs": -/*!*****************************************************************************!*\ - !*** ./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs ***! - \*****************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pi) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_plugin-vue2_normalizer-VrK6B12S.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue2_normalizer-VrK6B12S.mjs"); -/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/index.mjs"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/shared/index.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); -/* harmony import */ var vue_frag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-frag */ "./node_modules/vue-frag/dist/frag.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); -/* harmony import */ var cancelable_promise__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cancelable-promise */ "./node_modules/cancelable-promise/umd/CancelablePromise.js"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - - - - - - - - - - - - -const $e = { - name: "FileIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Ne = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, xe = [], Be = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - $e, - Ne, - xe, - !1, - null, - null, - null, - null -); -const G = Be.exports, D = () => { - const l = () => document.getElementById("isPublic")?.value === "1", e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onBeforeMount)(() => { - e.value = l(); - }), { - isPublic: e - }; -}; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -const K = () => { - const l = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "config", null), e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.show_hidden ?? !0), i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.sort_favorites_first ?? !0), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.crop_image_previews ?? !0), { isPublic: n } = D(); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { - if (n.value) - console.debug("Skip loading files settings - currently on public share"); - else - try { - const { data: s } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/configs")); - e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0; - } catch (s) { - console.error("Could not load files settings", s), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files settings")); - } - }), { - showHiddenFiles: e, - sortFavoritesFirst: i, - cropImagePreviews: t - }; -}, Pe = (l) => { - const e = (a) => a === "asc" ? "ascending" : a === "desc" ? "descending" : "none", i = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "viewConfigs", null), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.files?.sorting_mode ?? "basename", - order: e(i?.files?.sorting_direction ?? "asc") - }), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.recent?.sorting_mode ?? "basename", - order: e(i?.recent?.sorting_direction ?? "asc") - }), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.favorites?.sorting_mode ?? "basename", - order: e(i?.favorites?.sorting_direction ?? "asc") - }), { isPublic: r } = D(); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { - if (r.value) - console.debug("Skip loading files views - currently on public share"); - else - try { - const { data: a } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/views")); - t.value = { - sortBy: a?.data?.files?.sorting_mode ?? "basename", - order: e(a?.data?.files?.sorting_direction) - }, s.value = { - sortBy: a?.data?.favorites?.sorting_mode ?? "basename", - order: e(a?.data?.favorites?.sorting_direction) - }, n.value = { - sortBy: a?.data?.recent?.sorting_mode ?? "basename", - order: e(a?.data?.recent?.sorting_direction) - }; - } catch (a) { - console.error("Could not load files views", a), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files views")); - } - }); - const b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l || "files") === "files" ? t.value : (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l) === "recent" ? n.value : s.value), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.sortBy), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.order); - return { - filesViewConfig: t, - favoritesViewConfig: s, - recentViewConfig: n, - currentConfig: b, - sortBy: g, - order: d - }; -}, ze = { - name: "MenuUpIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Le = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon menu-up-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,15L12,10L17,15H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Ie = [], Ve = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - ze, - Le, - Ie, - !1, - null, - null, - null, - null -); -const Re = Ve.exports, De = { - name: "MenuDownIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var He = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon menu-down-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,10L12,15L17,10H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Me = [], Ae = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - De, - He, - Me, - !1, - null, - null, - null, - null -); -const Te = Ae.exports, q = { - "file-picker__file-icon": "_file-picker__file-icon_1vgv4_5" -}, Ue = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "LoadingTableRow", - props: { - showCheckbox: { type: Boolean } - }, - setup(l) { - return { __sfc: !0, fileListIconStyles: q }; - } -}); -var Ee = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("tr", { staticClass: "file-picker__row loading-row", attrs: { "aria-hidden": "true" } }, [e.showCheckbox ? i("td", { staticClass: "row-checkbox" }, [i("span")]) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "row-wrapper" }, [i("span", { class: t.fileListIconStyles["file-picker__file-icon"] }), i("span")])]), e._m(0), e._m(1)]); -}, Oe = [function() { - var l = this, e = l._self._c; - return l._self._setupProxy, e("td", { staticClass: "row-size" }, [e("span")]); -}, function() { - var l = this, e = l._self._c; - return l._self._setupProxy, e("td", { staticClass: "row-modified" }, [e("span")]); -}], Ze = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ue, - Ee, - Oe, - !1, - null, - "6aded0d9", - null, - null -); -const je = Ze.exports; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -function We(l, e = {}) { - e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e }; - try { - const i = l.attributes?.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/core/preview?fileId={fileid}", { - fileid: l.fileid - }); - let t; - try { - t = new URL(i); - } catch { - t = new URL(i, window.location.origin); - } - return t.searchParams.set("x", `${e.size}`), t.searchParams.set("y", `${e.size}`), t.searchParams.set("mimeFallback", `${e.mimeFallback}`), t.searchParams.set("a", e.cropPreview === !0 ? "0" : "1"), t.searchParams.set("c", `${l.attributes.etag}`), t; - } catch { - return null; - } -} -const Ge = { - name: "FolderIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Ke = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, qe = [], Je = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ge, - Ke, - qe, - !1, - null, - null, - null, - null -); -const J = Je.exports, Qe = { - name: "FilePreview" -}, Xe = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - ...Qe, - props: { - node: null, - cropImagePreviews: { type: Boolean } - }, - setup(l) { - const e = l, i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(q), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => e.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.File), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)(t, () => { - if (s.value = !1, t.value) { - const r = document.createElement("img"); - r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => { - s.value = !0, r.remove(); - }, document.body.appendChild(r); - } - }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J }; - } -}); -var Ye = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("div", { class: t.fileListIconStyles["file-picker__file-icon"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2); -}, et = [], tt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Xe, - Ye, - et, - !1, - null, - null, - null, - null -); -const it = tt.exports, nt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FileListRow", - props: { - allowPickDirectory: { type: Boolean }, - selected: { type: Boolean }, - showCheckbox: { type: Boolean }, - canPick: { type: Boolean }, - node: null, - cropImagePreviews: { type: Boolean } - }, - emits: ["update:selected", "enter-directory"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.extension), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.canPick && (i.allowPickDirectory || !s.value)); - function b() { - e("update:selected", !i.selected); - } - function g() { - s.value ? e("enter-directory", i.node) : b(); - } - function d(a) { - a.key === "Enter" && g(); - } - return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.formatFileSize, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, NcDateTime: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDateTime, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, FilePreview: it }; - } -}); -var st = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("tr", e._g({ class: ["file-picker__row", { - "file-picker__row--selected": e.selected && !e.showCheckbox - }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, "aria-selected": t.isPickable ? e.selected : void 0, "data-filename": e.node.basename, "data-testid": "file-list-row" } }, { - click: t.handleClick, - /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */ - ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {} - }), [e.showCheckbox ? i("td", { staticClass: "row-checkbox", on: { click: function(n) { - return n.stopPropagation(), (() => { - }).apply(null, arguments); - } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select the row for {nodename}", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, "data-testid": "row-checkbox" }, on: { "update:checked": t.toggleSelected } })], 1) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "file-picker__name-container", attrs: { "data-testid": "row-name" } }, [i(t.FilePreview, { attrs: { node: e.node, "crop-image-previews": e.cropImagePreviews } }), i("div", { staticClass: "file-picker__file-name", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i("div", { staticClass: "file-picker__file-extension", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i("td", { staticClass: "row-size" }, [e._v(" " + e._s(t.formatFileSize(e.node.size || 0)) + " ")]), i("td", { staticClass: "row-modified" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, "ignore-seconds": !0 } })], 1)]); -}, lt = [], rt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - nt, - st, - lt, - !1, - null, - "48df4f27", - null, - null -); -const at = rt.exports, ot = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FileList", - props: { - currentView: null, - multiselect: { type: Boolean }, - allowPickDirectory: { type: Boolean }, - loading: { type: Boolean }, - files: null, - selectedFiles: null, - path: null - }, - emits: ["update:path", "update:selectedFiles"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), { currentConfig: n } = Pe(i.currentView), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.value ?? n.value), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "basename" ? s.value.order === "none" ? void 0 : s.value.order : void 0), b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "size" ? s.value.order === "none" ? void 0 : s.value.order : void 0), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "mtime" ? s.value.order === "none" ? void 0 : s.value.order : void 0), d = (o) => { - s.value.sortBy === o ? s.value.order === "ascending" ? t.value = { sortBy: s.value.sortBy, order: "descending" } : t.value = { sortBy: s.value.sortBy, order: "ascending" } : t.value = { sortBy: o, order: "ascending" }; - }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( - () => { - const o = { - ascending: (m, f, z) => z(m, f), - descending: (m, f, z) => z(f, m), - // eslint-disable-next-line @typescript-eslint/no-unused-vars - none: (m, f, z) => 0 - }, C = { - basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.getCanonicalLocale)()), - size: (m, f) => (m.size || 0) - (f.size || 0), - // reverted because "young" is smaller than "old" - mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0) - }; - return [...i.files].sort( - (m, f) => ( - // Folders always come above the files - (f.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) - (m.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy]) - ) - ); - } - ), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.files.filter((o) => i.allowPickDirectory || o.type !== _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder)), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length); - function h() { - i.selectedFiles.length < F.value.length ? e("update:selectedFiles", F.value) : e("update:selectedFiles", []); - } - function w(o) { - i.selectedFiles.includes(o) ? e("update:selectedFiles", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e("update:selectedFiles", [...i.selectedFiles, o]) : e("update:selectedFiles", [o]); - } - function S(o) { - e("update:path", o.path); - } - const x = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(4), $ = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); - { - const o = () => (0,vue__WEBPACK_IMPORTED_MODULE_12__.nextTick)(() => { - const C = $.value?.parentElement?.children || []; - let m = $.value?.parentElement?.clientHeight || 450; - for (let f = 0; f < C.length; f++) - $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight); - x.value = Math.floor((m - 50) / 50); - }); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => { - window.addEventListener("resize", o), o(); - }), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onUnmounted)(() => { - window.removeEventListener("resize", o); - }); - } - return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at }; - } -}); -var ct = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("div", { ref: "fileContainer", staticClass: "file-picker__files" }, [i("table", [i("thead", [i("tr", [e.multiselect ? i("th", { staticClass: "row-checkbox" }, [i("span", { staticClass: "hidden-visually" }, [e._v(" " + e._s(t.t("Select entry")) + " ")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select all entries"), checked: t.allSelected, "data-testid": "select-all-checkbox" }, on: { "update:checked": t.onSelectAll } }) : e._e()], 1) : e._e(), i("th", { staticClass: "row-name", attrs: { "aria-sort": t.sortByName } }, [i("div", { staticClass: "header-wrapper" }, [i("span", { staticClass: "file-picker__header-preview" }), i(t.NcButton, { attrs: { wide: !0, type: "tertiary", "data-test": "file-picker_sort-name" }, on: { click: function(n) { - return t.toggleSorting("basename"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortByName === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Name")) + " ")])], 1)]), i("th", { staticClass: "row-size", attrs: { "aria-sort": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { - return t.toggleSorting("size"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortBySize === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Size")) + " ")])], 1), i("th", { staticClass: "row-modified", attrs: { "aria-sort": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { - return t.toggleSorting("mtime"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortByModified === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Modified")) + " ")])], 1)])]), i("tbody", [e.loading ? e._l(t.skeletonNumber, function(n) { - return i(t.LoadingTableRow, { key: n, attrs: { "show-checkbox": e.multiselect } }); - }) : e._l(t.sortedFiles, function(n) { - return i(t.FileListRow, { key: n.fileid || n.path, attrs: { "allow-pick-directory": e.allowPickDirectory, "show-checkbox": e.multiselect, "can-pick": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, "crop-image-previews": t.cropImagePreviews }, on: { "update:selected": function(s) { - return t.onNodeSelected(n); - }, "enter-directory": t.onChangeDirectory } }); - })], 2)])]); -}, ut = [], dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - ot, - ct, - ut, - !1, - null, - "d3c94818", - null, - null -); -const ft = dt.exports, pt = { - name: "HomeIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var _t = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon home-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, mt = [], vt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - pt, - _t, - mt, - !1, - null, - null, - null, - null -); -const gt = vt.exports, yt = { - name: "PlusIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var ht = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon plus-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, wt = [], bt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - yt, - ht, - wt, - !1, - null, - null, - null, - null -); -const kt = bt.exports, Ct = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FilePickerBreadcrumbs", - props: { - path: null, - showMenu: { type: Boolean } - }, - emits: ["update:path", "create-node"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); - function r() { - const d = n.value.trim(), a = s.value?.$el?.querySelector("input"); - let p = ""; - return d.length === 0 ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Folder name cannot be empty.") : d.includes("/") ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"/" is not allowed inside a folder name.') : ["..", "."].includes(d) ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === ""; - } - const b = function() { - const d = n.value.trim(); - r() && (t.value = !1, e("create-node", d), n.value = ""); - }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( - () => i.path.split("/").filter((d) => d !== "").map((d, a, p) => ({ - name: d, - path: "/" + p.slice(0, a + 1).join("/") - })) - ); - return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActions, NcActionInput: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActionInput, NcBreadcrumbs: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumbs, NcBreadcrumb: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumb, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Ft = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.NcBreadcrumbs, { staticClass: "file-picker__breadcrumbs", scopedSlots: e._u([{ key: "default", fn: function() { - return [i(t.NcBreadcrumb, { attrs: { name: t.t("All files"), title: t.t("Home") }, on: { click: function(n) { - return t.emit("update:path", "/"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconHome, { attrs: { size: 20 } })]; - }, proxy: !0 }]) }), e._l(t.pathElements, function(n) { - return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) { - return t.emit("update:path", n.path); - } } }); - })]; - }, proxy: !0 }, e.showMenu ? { key: "actions", fn: function() { - return [i(t.NcActions, { attrs: { "aria-label": t.t("Create directory"), "force-menu": !0, "force-name": !0, "menu-name": t.t("New"), open: t.actionsOpen, type: "secondary" }, on: { "update:open": function(n) { - t.actionsOpen = n; - }, close: function(n) { - t.newNodeName = ""; - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconPlus, { attrs: { size: 20 } })]; - }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: "nameInput", attrs: { value: t.newNodeName, label: t.t("New folder"), placeholder: t.t("New folder name") }, on: { "update:value": function(n) { - t.newNodeName = n; - }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFolder, { attrs: { size: 20 } })]; - }, proxy: !0 }], null, !1, 1614167509) })], 1)]; - }, proxy: !0 } : null], null, !0) }); -}, St = [], $t = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ct, - Ft, - St, - !1, - null, - "22cbb5df", - null, - null -); -const Nt = $t.exports, xt = { - name: "CloseIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Bt = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Pt = [], zt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - xt, - Bt, - Pt, - !1, - null, - null, - null, - null -); -const Lt = zt.exports, It = { - name: "MagnifyIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Vt = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon magnify-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Rt = [], Dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - It, - Vt, - Rt, - !1, - null, - null, - null, - null -); -const Ht = Dt.exports; -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -const Mt = (l) => { - const e = [ - { - id: "files", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("All files"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiFolder - }, - { - id: "recent", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiClock - }, - { - id: "favorites", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiStar - } - ], i = l.value ? e.filter(({ id: t }) => t === "files") : e; - return { - allViews: e, - availableViews: i - }; -}, At = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FilePickerNavigation", - props: { - currentView: null, - filterString: null, - isCollapsed: { type: Boolean }, - disabledNavigation: { type: Boolean } - }, - emits: ["update:currentView", "update:filterString"], - setup(l, { emit: e }) { - const i = l, { availableViews: t } = Mt((0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__.getCurrentUser)() === null)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]); - return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e("update:filterString", r), IconClose: Lt, IconMagnify: Ht, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcIconSvgWrapper: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcIconSvgWrapper, NcSelect: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcSelect, NcTextField: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcTextField, Fragment: vue_frag__WEBPACK_IMPORTED_MODULE_8__.Fragment, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Tt = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.Fragment, [i(t.NcTextField, { staticClass: "file-picker__filter-input", attrs: { value: e.filterString, label: t.t("Filter file list"), "show-trailing-button": !!e.filterString }, on: { "update:value": t.updateFilterValue, "trailing-button-click": function(n) { - return t.updateFilterValue(""); - } }, scopedSlots: e._u([{ key: "trailing-button-icon", fn: function() { - return [i(t.IconClose, { attrs: { size: 16 } })]; - }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { "aria-label": t.t("Current view selector"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit("update:currentView", n.id) } }) : i("ul", { staticClass: "file-picker__side" }, e._l(t.availableViews, function(n) { - return i("li", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? "primary" : "tertiary", wide: !0 }, on: { click: function(s) { - return e.$emit("update:currentView", n.id); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })]; - }, proxy: !0 }], null, !0) }, [e._v(" " + e._s(n.label) + " ")])], 1); - }), 0)] : e._e()], 2); -}, Ut = [], Et = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - At, - Tt, - Ut, - !1, - null, - "a06474d4", - null, - null -); -const Ot = Et.exports; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const Zt = function(l, e, i) { - const t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? "/" : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRootPath), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateRemoteUrl)("webdav").replace("/remote.php", "/public.php") : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRemoteURL), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { - if (i.value) { - const h = document.getElementById("sharingToken").value, w = btoa(`${h}:null`); - return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(n.value, { - Authorization: `Basic ${w}` - }); - } - return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(); - }), r = (h) => (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davResultToNode)(h, t.value, n.value), b = () => { - const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14; - return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (S, x, $) => { - $(() => h.abort()); - try { - const { data: o } = await s.value.search("/", { - signal: h.signal, - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetRecentSearch)(w) - }), C = o.results.map(r); - S(C); - } catch (o) { - x(o); - } - }); - }, g = () => { - const h = new AbortController(); - return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (w, S, x) => { - x(() => h.abort()); - try { - let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, { - signal: h.signal, - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() - })).data.map(r); - i.value && (o = o.filter((C) => C.path !== e.value)), w(o); - } catch ($) { - S($); - } - }); - }, d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(null); - async function B(h) { - const w = (0,path__WEBPACK_IMPORTED_MODULE_10__.join)(e.value, h); - await s.value.createDirectory((0,path__WEBPACK_IMPORTED_MODULE_10__.join)(t.value, w)); - const S = await F(w); - return d.value.push(S), S; - } - async function F(h, w = void 0) { - w = w ?? t.value; - const { data: S } = await s.value.stat(`${w}${h}`, { - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() - }); - return r(S); - } - async function N() { - p.value && p.value.cancel(), a.value = !0, l.value === "favorites" ? p.value = (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.getFavoriteNodes)(s.value, e.value, t.value) : l.value === "recent" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1; - } - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)([l, e], () => N()), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => N()), { - isLoading: a, - files: d, - loadFiles: N, - getFile: F, - createDirectory: B - }; -}; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const jt = function(l) { - const e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => l.value.map((t) => t.split("/"))); - return { - isSupportedMimeType: (t) => { - const n = t.split("/"); - return e.value.some( - ([s, r]) => ( - // check mime type matches or is wildcard - (n[0] === s || s === "*") && (n[1] === r || r === "*") - ) - ); - } - }; -}, Wt = { - name: "FilePicker" -}, Gt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - ...Wt, - props: { - buttons: null, - name: null, - allowPickDirectory: { type: Boolean, default: !1 }, - disabledNavigation: { type: Boolean, default: !1 }, - container: { default: "body" }, - filterFn: { default: void 0 }, - mimetypeFilter: { default: () => [] }, - multiselect: { type: Boolean, default: !0 }, - path: { default: void 0 } - }, - emits: ["close"], - setup(l, { emit: e }) { - const i = l, { isPublic: t } = D(), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (typeof i.buttons == "function" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({ - ...y, - callback: () => { - r = !0, b(y.callback); - } - }))); - let r = !1; - const b = async (_) => { - const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value; - _(y), e("close", y), r = !1; - }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)("files"), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "favorites" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent") : ""), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(window?.sessionStorage.getItem("NC.FilePicker.LastPath") || "/"), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)({ - // Only use the path for the files view as favorites and recent only works on the root - get: () => g.value === "files" ? B.value || i.path || p.value : "/", - /** - * Navigate to the new path and save it to the session storage - * - * @param path The new path - */ - set: (_) => { - i.path === void 0 && window.sessionStorage.setItem("NC.FilePicker.LastPath", _), B.value = _, a.value = []; - } - }), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), { isSupportedMimeType: h } = jt((0,vue__WEBPACK_IMPORTED_MODULE_12__.toRef)(i, "mimetypeFilter")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => x()); - const { showHiddenFiles: C } = K(), m = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { - let _ = w.value; - return C.value || (_ = _.filter((y) => !y.basename.startsWith("."))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === "folder" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _; - }), f = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "files" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Upload some content or sync with your devices!") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you recently modified will show up here.") : (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you mark as favorite will show up here.")); - return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => { - try { - const y = await o(_); - F.value = y.path, (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__.emit)("files:node:created", w.value.filter((Q) => Q.basename === _)[0]); - } catch (y) { - console.warn("Could not create new folder", { name: _, error: y }), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not create the new folder")); - } - }, handleClose: (_) => { - !_ && !r && e("close"); - }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDialog, NcEmptyContent: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcEmptyContent, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Kt = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: "large", "content-classes": "file-picker__content", "dialog-classes": "file-picker", "navigation-classes": "file-picker__navigation", open: t.isOpen }, on: { "update:open": [function(n) { - t.isOpen = n; - }, t.handleClose] }, scopedSlots: e._u([{ key: "navigation", fn: function({ isCollapsed: n }) { - return [i(t.FilePickerNavigation, { attrs: { "is-collapsed": n, "current-view": t.currentView, "filter-string": t.filterString, "disabled-navigation": e.disabledNavigation }, on: { "update:currentView": function(s) { - t.currentView = s; - }, "update:current-view": function(s) { - t.currentView = s; - }, "update:filterString": function(s) { - t.filterString = s; - }, "update:filter-string": function(s) { - t.filterString = s; - } } })]; - } }]) }, [i("div", { staticClass: "file-picker__main" }, [t.currentView === "files" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, "show-menu": e.allowPickDirectory }, on: { "update:path": function(n) { - t.currentPath = n; - }, "create-node": t.onCreateFolder } }) : i("div", { staticClass: "file-picker__view" }, [i("h3", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { "allow-pick-directory": e.allowPickDirectory, "current-view": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, "selected-files": t.selectedFiles, name: t.viewHeadline }, on: { "update:path": [function(n) { - t.currentPath = n; - }, function(n) { - t.currentView = "files"; - }], "update:selectedFiles": function(n) { - t.selectedFiles = n; - }, "update:selected-files": function(n) { - t.selectedFiles = n; - } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t("No matching files"), description: t.t("No files matching your filter were found.") }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFile)]; - }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t("No files in here"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFile)]; - }, proxy: !0 }]) })], 1)]); -}, qt = [], Jt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Gt, - Kt, - qt, - !1, - null, - "6ff1b36b", - null, - null -); -const pi = Jt.exports; - - - -/***/ }) - -}]); -//# sourceMappingURL=data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map?v=d9b9b9d7a013d2ef56e5 \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map deleted file mode 100644 index 80cecf3b55fe5..0000000000000 --- a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js?v=d9b9b9d7a013d2ef56e5","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"],"sourcesContent":["import { ref as u, onBeforeMount as X, onMounted as I, computed as c, defineComponent as P, watch as E, onUnmounted as Y, nextTick as ee, toRef as te } from \"vue\";\nimport { a as k, l as V, t as v } from \"./_plugin-vue2_normalizer-VrK6B12S.mjs\";\nimport { FileType as L, formatFileSize as ie, davRootPath as ne, davRemoteURL as se, davGetClient as H, davGetDefaultPropfind as M, getFavoriteNodes as le, davResultToNode as re, davGetRecentSearch as ae } from \"@nextcloud/files\";\nimport { getCanonicalLocale as oe } from \"@nextcloud/l10n\";\nimport { NcCheckboxRadioSwitch as O, NcDateTime as ce, NcButton as Z, NcActions as ue, NcActionInput as de, NcBreadcrumbs as fe, NcBreadcrumb as pe, NcIconSvgWrapper as _e, NcSelect as me, NcTextField as ve, NcDialog as ge, NcEmptyContent as ye } from \"@nextcloud/vue\";\nimport { loadState as j } from \"@nextcloud/initial-state\";\nimport { generateUrl as R, generateRemoteUrl as he } from \"@nextcloud/router\";\nimport { toValue as A } from \"@vueuse/core\";\nimport W from \"@nextcloud/axios\";\nimport { getCurrentUser as we } from \"@nextcloud/auth\";\nimport { Fragment as be } from \"vue-frag\";\nimport { mdiFolder as ke, mdiClock as Ce, mdiStar as Fe } from \"@mdi/js\";\nimport { emit as Se } from \"@nextcloud/event-bus\";\nimport { join as T } from \"path\";\nimport { CancelablePromise as U } from \"cancelable-promise\";\nconst $e = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ne = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, xe = [], Be = /* @__PURE__ */ k(\n $e,\n Ne,\n xe,\n !1,\n null,\n null,\n null,\n null\n);\nconst G = Be.exports, D = () => {\n const l = () => document.getElementById(\"isPublic\")?.value === \"1\", e = u(!0);\n return X(() => {\n e.value = l();\n }), {\n isPublic: e\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst K = () => {\n const l = j(\"files\", \"config\", null), e = u(l?.show_hidden ?? !0), i = u(l?.sort_favorites_first ?? !0), t = u(l?.crop_image_previews ?? !0), { isPublic: n } = D();\n return I(async () => {\n if (n.value)\n console.debug(\"Skip loading files settings - currently on public share\");\n else\n try {\n const { data: s } = await W.get(R(\"/apps/files/api/v1/configs\"));\n e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0;\n } catch (s) {\n console.error(\"Could not load files settings\", s), V(v(\"Could not load files settings\"));\n }\n }), {\n showHiddenFiles: e,\n sortFavoritesFirst: i,\n cropImagePreviews: t\n };\n}, Pe = (l) => {\n const e = (a) => a === \"asc\" ? \"ascending\" : a === \"desc\" ? \"descending\" : \"none\", i = j(\"files\", \"viewConfigs\", null), t = u({\n sortBy: i?.files?.sorting_mode ?? \"basename\",\n order: e(i?.files?.sorting_direction ?? \"asc\")\n }), n = u({\n sortBy: i?.recent?.sorting_mode ?? \"basename\",\n order: e(i?.recent?.sorting_direction ?? \"asc\")\n }), s = u({\n sortBy: i?.favorites?.sorting_mode ?? \"basename\",\n order: e(i?.favorites?.sorting_direction ?? \"asc\")\n }), { isPublic: r } = D();\n I(async () => {\n if (r.value)\n console.debug(\"Skip loading files views - currently on public share\");\n else\n try {\n const { data: a } = await W.get(R(\"/apps/files/api/v1/views\"));\n t.value = {\n sortBy: a?.data?.files?.sorting_mode ?? \"basename\",\n order: e(a?.data?.files?.sorting_direction)\n }, s.value = {\n sortBy: a?.data?.favorites?.sorting_mode ?? \"basename\",\n order: e(a?.data?.favorites?.sorting_direction)\n }, n.value = {\n sortBy: a?.data?.recent?.sorting_mode ?? \"basename\",\n order: e(a?.data?.recent?.sorting_direction)\n };\n } catch (a) {\n console.error(\"Could not load files views\", a), V(v(\"Could not load files views\"));\n }\n });\n const b = c(() => A(l || \"files\") === \"files\" ? t.value : A(l) === \"recent\" ? n.value : s.value), g = c(() => b.value.sortBy), d = c(() => b.value.order);\n return {\n filesViewConfig: t,\n favoritesViewConfig: s,\n recentViewConfig: n,\n currentConfig: b,\n sortBy: g,\n order: d\n };\n}, ze = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Le = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-up-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,15L12,10L17,15H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Ie = [], Ve = /* @__PURE__ */ k(\n ze,\n Le,\n Ie,\n !1,\n null,\n null,\n null,\n null\n);\nconst Re = Ve.exports, De = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar He = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-down-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,10L12,15L17,10H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Me = [], Ae = /* @__PURE__ */ k(\n De,\n He,\n Me,\n !1,\n null,\n null,\n null,\n null\n);\nconst Te = Ae.exports, q = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_1vgv4_5\"\n}, Ue = /* @__PURE__ */ P({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(l) {\n return { __sfc: !0, fileListIconStyles: q };\n }\n});\nvar Ee = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", { staticClass: \"file-picker__row loading-row\", attrs: { \"aria-hidden\": \"true\" } }, [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\" }, [i(\"span\")]) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"row-wrapper\" }, [i(\"span\", { class: t.fileListIconStyles[\"file-picker__file-icon\"] }), i(\"span\")])]), e._m(0), e._m(1)]);\n}, Oe = [function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-size\" }, [e(\"span\")]);\n}, function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-modified\" }, [e(\"span\")]);\n}], Ze = /* @__PURE__ */ k(\n Ue,\n Ee,\n Oe,\n !1,\n null,\n \"6aded0d9\",\n null,\n null\n);\nconst je = Ze.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nfunction We(l, e = {}) {\n e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e };\n try {\n const i = l.attributes?.previewUrl || R(\"/core/preview?fileId={fileid}\", {\n fileid: l.fileid\n });\n let t;\n try {\n t = new URL(i);\n } catch {\n t = new URL(i, window.location.origin);\n }\n return t.searchParams.set(\"x\", `${e.size}`), t.searchParams.set(\"y\", `${e.size}`), t.searchParams.set(\"mimeFallback\", `${e.mimeFallback}`), t.searchParams.set(\"a\", e.cropPreview === !0 ? \"0\" : \"1\"), t.searchParams.set(\"c\", `${l.attributes.etag}`), t;\n } catch {\n return null;\n }\n}\nconst Ge = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ke = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, qe = [], Je = /* @__PURE__ */ k(\n Ge,\n Ke,\n qe,\n !1,\n null,\n null,\n null,\n null\n);\nconst J = Je.exports, Qe = {\n name: \"FilePreview\"\n}, Xe = /* @__PURE__ */ P({\n ...Qe,\n props: {\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n setup(l) {\n const e = l, i = u(q), t = c(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = c(() => e.node.type === L.File), s = u(!1);\n return E(t, () => {\n if (s.value = !1, t.value) {\n const r = document.createElement(\"img\");\n r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => {\n s.value = !0, r.remove();\n }, document.body.appendChild(r);\n }\n }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J };\n }\n});\nvar Ye = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { class: t.fileListIconStyles[\"file-picker__file-icon\"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2);\n}, et = [], tt = /* @__PURE__ */ k(\n Xe,\n Ye,\n et,\n !1,\n null,\n null,\n null,\n null\n);\nconst it = tt.exports, nt = /* @__PURE__ */ P({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enter-directory\"],\n setup(l, { emit: e }) {\n const i = l, t = c(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = c(() => i.node.extension), s = c(() => i.node.type === L.Folder), r = c(() => i.canPick && (i.allowPickDirectory || !s.value));\n function b() {\n e(\"update:selected\", !i.selected);\n }\n function g() {\n s.value ? e(\"enter-directory\", i.node) : b();\n }\n function d(a) {\n a.key === \"Enter\" && g();\n }\n return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: ie, NcCheckboxRadioSwitch: O, NcDateTime: ce, t: v, FilePreview: it };\n }\n});\nvar st = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", e._g({ class: [\"file-picker__row\", {\n \"file-picker__row--selected\": e.selected && !e.showCheckbox\n }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, \"aria-selected\": t.isPickable ? e.selected : void 0, \"data-filename\": e.node.basename, \"data-testid\": \"file-list-row\" } }, {\n click: t.handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {}\n }), [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\", on: { click: function(n) {\n return n.stopPropagation(), (() => {\n }).apply(null, arguments);\n } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select the row for {nodename}\", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, \"data-testid\": \"row-checkbox\" }, on: { \"update:checked\": t.toggleSelected } })], 1) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"file-picker__name-container\", attrs: { \"data-testid\": \"row-name\" } }, [i(t.FilePreview, { attrs: { node: e.node, \"crop-image-previews\": e.cropImagePreviews } }), i(\"div\", { staticClass: \"file-picker__file-name\", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i(\"div\", { staticClass: \"file-picker__file-extension\", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i(\"td\", { staticClass: \"row-size\" }, [e._v(\" \" + e._s(t.formatFileSize(e.node.size || 0)) + \" \")]), i(\"td\", { staticClass: \"row-modified\" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, \"ignore-seconds\": !0 } })], 1)]);\n}, lt = [], rt = /* @__PURE__ */ k(\n nt,\n st,\n lt,\n !1,\n null,\n \"48df4f27\",\n null,\n null\n);\nconst at = rt.exports, ot = /* @__PURE__ */ P({\n __name: \"FileList\",\n props: {\n currentView: null,\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: null,\n selectedFiles: null,\n path: null\n },\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(l, { emit: e }) {\n const i = l, t = u(), { currentConfig: n } = Pe(i.currentView), s = c(() => t.value ?? n.value), r = c(() => s.value.sortBy === \"basename\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), b = c(() => s.value.sortBy === \"size\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), g = c(() => s.value.sortBy === \"mtime\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), d = (o) => {\n s.value.sortBy === o ? s.value.order === \"ascending\" ? t.value = { sortBy: s.value.sortBy, order: \"descending\" } : t.value = { sortBy: s.value.sortBy, order: \"ascending\" } : t.value = { sortBy: o, order: \"ascending\" };\n }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = c(\n () => {\n const o = {\n ascending: (m, f, z) => z(m, f),\n descending: (m, f, z) => z(f, m),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n none: (m, f, z) => 0\n }, C = {\n basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, oe()),\n size: (m, f) => (m.size || 0) - (f.size || 0),\n // reverted because \"young\" is smaller than \"old\"\n mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0)\n };\n return [...i.files].sort(\n (m, f) => (\n // Folders always come above the files\n (f.type === L.Folder ? 1 : 0) - (m.type === L.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy])\n )\n );\n }\n ), F = c(() => i.files.filter((o) => i.allowPickDirectory || o.type !== L.Folder)), N = c(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length);\n function h() {\n i.selectedFiles.length < F.value.length ? e(\"update:selectedFiles\", F.value) : e(\"update:selectedFiles\", []);\n }\n function w(o) {\n i.selectedFiles.includes(o) ? e(\"update:selectedFiles\", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e(\"update:selectedFiles\", [...i.selectedFiles, o]) : e(\"update:selectedFiles\", [o]);\n }\n function S(o) {\n e(\"update:path\", o.path);\n }\n const x = u(4), $ = u();\n {\n const o = () => ee(() => {\n const C = $.value?.parentElement?.children || [];\n let m = $.value?.parentElement?.clientHeight || 450;\n for (let f = 0; f < C.length; f++)\n $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight);\n x.value = Math.floor((m - 50) / 50);\n });\n I(() => {\n window.addEventListener(\"resize\", o), o();\n }), Y(() => {\n window.removeEventListener(\"resize\", o);\n });\n }\n return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: Z, NcCheckboxRadioSwitch: O, t: v, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at };\n }\n});\nvar ct = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { ref: \"fileContainer\", staticClass: \"file-picker__files\" }, [i(\"table\", [i(\"thead\", [i(\"tr\", [e.multiselect ? i(\"th\", { staticClass: \"row-checkbox\" }, [i(\"span\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(t.t(\"Select entry\")) + \" \")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select all entries\"), checked: t.allSelected, \"data-testid\": \"select-all-checkbox\" }, on: { \"update:checked\": t.onSelectAll } }) : e._e()], 1) : e._e(), i(\"th\", { staticClass: \"row-name\", attrs: { \"aria-sort\": t.sortByName } }, [i(\"div\", { staticClass: \"header-wrapper\" }, [i(\"span\", { staticClass: \"file-picker__header-preview\" }), i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\", \"data-test\": \"file-picker_sort-name\" }, on: { click: function(n) {\n return t.toggleSorting(\"basename\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByName === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Name\")) + \" \")])], 1)]), i(\"th\", { staticClass: \"row-size\", attrs: { \"aria-sort\": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"size\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortBySize === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Size\")) + \" \")])], 1), i(\"th\", { staticClass: \"row-modified\", attrs: { \"aria-sort\": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"mtime\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByModified === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Modified\")) + \" \")])], 1)])]), i(\"tbody\", [e.loading ? e._l(t.skeletonNumber, function(n) {\n return i(t.LoadingTableRow, { key: n, attrs: { \"show-checkbox\": e.multiselect } });\n }) : e._l(t.sortedFiles, function(n) {\n return i(t.FileListRow, { key: n.fileid || n.path, attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"show-checkbox\": e.multiselect, \"can-pick\": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, \"crop-image-previews\": t.cropImagePreviews }, on: { \"update:selected\": function(s) {\n return t.onNodeSelected(n);\n }, \"enter-directory\": t.onChangeDirectory } });\n })], 2)])]);\n}, ut = [], dt = /* @__PURE__ */ k(\n ot,\n ct,\n ut,\n !1,\n null,\n \"d3c94818\",\n null,\n null\n);\nconst ft = dt.exports, pt = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _t = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon home-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, mt = [], vt = /* @__PURE__ */ k(\n pt,\n _t,\n mt,\n !1,\n null,\n null,\n null,\n null\n);\nconst gt = vt.exports, yt = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar ht = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, wt = [], bt = /* @__PURE__ */ k(\n yt,\n ht,\n wt,\n !1,\n null,\n null,\n null,\n null\n);\nconst kt = bt.exports, Ct = /* @__PURE__ */ P({\n __name: \"FilePickerBreadcrumbs\",\n props: {\n path: null,\n showMenu: { type: Boolean }\n },\n emits: [\"update:path\", \"create-node\"],\n setup(l, { emit: e }) {\n const i = l, t = u(!1), n = u(\"\"), s = u();\n function r() {\n const d = n.value.trim(), a = s.value?.$el?.querySelector(\"input\");\n let p = \"\";\n return d.length === 0 ? p = v(\"Folder name cannot be empty.\") : d.includes(\"/\") ? p = v('\"/\" is not allowed inside a folder name.') : [\"..\", \".\"].includes(d) ? p = v('\"{name}\" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = v('\"{name}\" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === \"\";\n }\n const b = function() {\n const d = n.value.trim();\n r() && (t.value = !1, e(\"create-node\", d), n.value = \"\");\n }, g = c(\n () => i.path.split(\"/\").filter((d) => d !== \"\").map((d, a, p) => ({\n name: d,\n path: \"/\" + p.slice(0, a + 1).join(\"/\")\n }))\n );\n return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: ue, NcActionInput: de, NcBreadcrumbs: fe, NcBreadcrumb: pe, t: v };\n }\n});\nvar Ft = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcBreadcrumbs, { staticClass: \"file-picker__breadcrumbs\", scopedSlots: e._u([{ key: \"default\", fn: function() {\n return [i(t.NcBreadcrumb, { attrs: { name: t.t(\"All files\"), title: t.t(\"Home\") }, on: { click: function(n) {\n return t.emit(\"update:path\", \"/\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconHome, { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), e._l(t.pathElements, function(n) {\n return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) {\n return t.emit(\"update:path\", n.path);\n } } });\n })];\n }, proxy: !0 }, e.showMenu ? { key: \"actions\", fn: function() {\n return [i(t.NcActions, { attrs: { \"aria-label\": t.t(\"Create directory\"), \"force-menu\": !0, \"force-name\": !0, \"menu-name\": t.t(\"New\"), open: t.actionsOpen, type: \"secondary\" }, on: { \"update:open\": function(n) {\n t.actionsOpen = n;\n }, close: function(n) {\n t.newNodeName = \"\";\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconPlus, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: \"nameInput\", attrs: { value: t.newNodeName, label: t.t(\"New folder\"), placeholder: t.t(\"New folder name\") }, on: { \"update:value\": function(n) {\n t.newNodeName = n;\n }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFolder, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 1614167509) })], 1)];\n }, proxy: !0 } : null], null, !0) });\n}, St = [], $t = /* @__PURE__ */ k(\n Ct,\n Ft,\n St,\n !1,\n null,\n \"22cbb5df\",\n null,\n null\n);\nconst Nt = $t.exports, xt = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Bt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Pt = [], zt = /* @__PURE__ */ k(\n xt,\n Bt,\n Pt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Lt = zt.exports, It = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Vt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon magnify-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Rt = [], Dt = /* @__PURE__ */ k(\n It,\n Vt,\n Rt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ht = Dt.exports;\n/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst Mt = (l) => {\n const e = [\n {\n id: \"files\",\n label: v(\"All files\"),\n icon: ke\n },\n {\n id: \"recent\",\n label: v(\"Recent\"),\n icon: Ce\n },\n {\n id: \"favorites\",\n label: v(\"Favorites\"),\n icon: Fe\n }\n ], i = l.value ? e.filter(({ id: t }) => t === \"files\") : e;\n return {\n allViews: e,\n availableViews: i\n };\n}, At = /* @__PURE__ */ P({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: null,\n filterString: null,\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(l, { emit: e }) {\n const i = l, { availableViews: t } = Mt(u(we() === null)), n = c(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]);\n return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e(\"update:filterString\", r), IconClose: Lt, IconMagnify: Ht, NcButton: Z, NcIconSvgWrapper: _e, NcSelect: me, NcTextField: ve, Fragment: be, t: v };\n }\n});\nvar Tt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.Fragment, [i(t.NcTextField, { staticClass: \"file-picker__filter-input\", attrs: { value: e.filterString, label: t.t(\"Filter file list\"), \"show-trailing-button\": !!e.filterString }, on: { \"update:value\": t.updateFilterValue, \"trailing-button-click\": function(n) {\n return t.updateFilterValue(\"\");\n } }, scopedSlots: e._u([{ key: \"trailing-button-icon\", fn: function() {\n return [i(t.IconClose, { attrs: { size: 16 } })];\n }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { \"aria-label\": t.t(\"Current view selector\"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit(\"update:currentView\", n.id) } }) : i(\"ul\", { staticClass: \"file-picker__side\" }, e._l(t.availableViews, function(n) {\n return i(\"li\", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? \"primary\" : \"tertiary\", wide: !0 }, on: { click: function(s) {\n return e.$emit(\"update:currentView\", n.id);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(n.label) + \" \")])], 1);\n }), 0)] : e._e()], 2);\n}, Ut = [], Et = /* @__PURE__ */ k(\n At,\n Tt,\n Ut,\n !1,\n null,\n \"a06474d4\",\n null,\n null\n);\nconst Ot = Et.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst Zt = function(l, e, i) {\n const t = c(() => i.value ? \"/\" : ne), n = c(() => i.value ? he(\"webdav\").replace(\"/remote.php\", \"/public.php\") : se), s = c(() => {\n if (i.value) {\n const h = document.getElementById(\"sharingToken\").value, w = btoa(`${h}:null`);\n return H(n.value, {\n Authorization: `Basic ${w}`\n });\n }\n return H();\n }), r = (h) => re(h, t.value, n.value), b = () => {\n const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n return new U(async (S, x, $) => {\n $(() => h.abort());\n try {\n const { data: o } = await s.value.search(\"/\", {\n signal: h.signal,\n details: !0,\n data: ae(w)\n }), C = o.results.map(r);\n S(C);\n } catch (o) {\n x(o);\n }\n });\n }, g = () => {\n const h = new AbortController();\n return new U(async (w, S, x) => {\n x(() => h.abort());\n try {\n let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, {\n signal: h.signal,\n details: !0,\n data: M()\n })).data.map(r);\n i.value && (o = o.filter((C) => C.path !== e.value)), w(o);\n } catch ($) {\n S($);\n }\n });\n }, d = u([]), a = u(!0), p = u(null);\n async function B(h) {\n const w = T(e.value, h);\n await s.value.createDirectory(T(t.value, w));\n const S = await F(w);\n return d.value.push(S), S;\n }\n async function F(h, w = void 0) {\n w = w ?? t.value;\n const { data: S } = await s.value.stat(`${w}${h}`, {\n details: !0,\n data: M()\n });\n return r(S);\n }\n async function N() {\n p.value && p.value.cancel(), a.value = !0, l.value === \"favorites\" ? p.value = le(s.value, e.value, t.value) : l.value === \"recent\" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1;\n }\n return E([l, e], () => N()), I(() => N()), {\n isLoading: a,\n files: d,\n loadFiles: N,\n getFile: F,\n createDirectory: B\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst jt = function(l) {\n const e = c(() => l.value.map((t) => t.split(\"/\")));\n return {\n isSupportedMimeType: (t) => {\n const n = t.split(\"/\");\n return e.value.some(\n ([s, r]) => (\n // check mime type matches or is wildcard\n (n[0] === s || s === \"*\") && (n[1] === r || r === \"*\")\n )\n );\n }\n };\n}, Wt = {\n name: \"FilePicker\"\n}, Gt = /* @__PURE__ */ P({\n ...Wt,\n props: {\n buttons: null,\n name: null,\n allowPickDirectory: { type: Boolean, default: !1 },\n disabledNavigation: { type: Boolean, default: !1 },\n container: { default: \"body\" },\n filterFn: { default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: !0 },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(l, { emit: e }) {\n const i = l, { isPublic: t } = D(), n = u(!0), s = c(() => (typeof i.buttons == \"function\" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({\n ...y,\n callback: () => {\n r = !0, b(y.callback);\n }\n })));\n let r = !1;\n const b = async (_) => {\n const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value;\n _(y), e(\"close\", y), r = !1;\n }, g = u(\"files\"), d = c(() => g.value === \"favorites\" ? v(\"Favorites\") : g.value === \"recent\" ? v(\"Recent\") : \"\"), a = u([]), p = u(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\"), B = u(), F = c({\n // Only use the path for the files view as favorites and recent only works on the root\n get: () => g.value === \"files\" ? B.value || i.path || p.value : \"/\",\n /**\n * Navigate to the new path and save it to the session storage\n *\n * @param path The new path\n */\n set: (_) => {\n i.path === void 0 && window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", _), B.value = _, a.value = [];\n }\n }), N = u(\"\"), { isSupportedMimeType: h } = jt(te(i, \"mimetypeFilter\")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t);\n I(() => x());\n const { showHiddenFiles: C } = K(), m = c(() => {\n let _ = w.value;\n return C.value || (_ = _.filter((y) => !y.basename.startsWith(\".\"))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === \"folder\" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _;\n }), f = c(() => g.value === \"files\" ? v(\"Upload some content or sync with your devices!\") : g.value === \"recent\" ? v(\"Files and folders you recently modified will show up here.\") : v(\"Files and folders you mark as favorite will show up here.\"));\n return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => {\n try {\n const y = await o(_);\n F.value = y.path, Se(\"files:node:created\", w.value.filter((Q) => Q.basename === _)[0]);\n } catch (y) {\n console.warn(\"Could not create new folder\", { name: _, error: y }), V(v(\"Could not create the new folder\"));\n }\n }, handleClose: (_) => {\n !_ && !r && e(\"close\");\n }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: ge, NcEmptyContent: ye, t: v };\n }\n});\nvar Kt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: \"large\", \"content-classes\": \"file-picker__content\", \"dialog-classes\": \"file-picker\", \"navigation-classes\": \"file-picker__navigation\", open: t.isOpen }, on: { \"update:open\": [function(n) {\n t.isOpen = n;\n }, t.handleClose] }, scopedSlots: e._u([{ key: \"navigation\", fn: function({ isCollapsed: n }) {\n return [i(t.FilePickerNavigation, { attrs: { \"is-collapsed\": n, \"current-view\": t.currentView, \"filter-string\": t.filterString, \"disabled-navigation\": e.disabledNavigation }, on: { \"update:currentView\": function(s) {\n t.currentView = s;\n }, \"update:current-view\": function(s) {\n t.currentView = s;\n }, \"update:filterString\": function(s) {\n t.filterString = s;\n }, \"update:filter-string\": function(s) {\n t.filterString = s;\n } } })];\n } }]) }, [i(\"div\", { staticClass: \"file-picker__main\" }, [t.currentView === \"files\" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, \"show-menu\": e.allowPickDirectory }, on: { \"update:path\": function(n) {\n t.currentPath = n;\n }, \"create-node\": t.onCreateFolder } }) : i(\"div\", { staticClass: \"file-picker__view\" }, [i(\"h3\", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"current-view\": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, \"selected-files\": t.selectedFiles, name: t.viewHeadline }, on: { \"update:path\": [function(n) {\n t.currentPath = n;\n }, function(n) {\n t.currentView = \"files\";\n }], \"update:selectedFiles\": function(n) {\n t.selectedFiles = n;\n }, \"update:selected-files\": function(n) {\n t.selectedFiles = n;\n } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t(\"No matching files\"), description: t.t(\"No files matching your filter were found.\") }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t(\"No files in here\"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) })], 1)]);\n}, qt = [], Jt = /* @__PURE__ */ k(\n Gt,\n Kt,\n qt,\n !1,\n null,\n \"6ff1b36b\",\n null,\n null\n);\nconst pi = Jt.exports;\nexport {\n pi as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js b/dist/federatedfilesharing-external.js deleted file mode 100644 index 697d5c2903b71..0000000000000 --- a/dist/federatedfilesharing-external.js +++ /dev/null @@ -1,6 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ -/******/ -/******/ })() -; \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js.map b/dist/federatedfilesharing-external.js.map deleted file mode 100644 index 41afe34fee26f..0000000000000 --- a/dist/federatedfilesharing-external.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"federatedfilesharing-external.js?v=5aa0b13c1846da983827","mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClDA;;;;;AEAA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/apps/federatedfilesharing/src/external.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/before-startup","webpack:///nextcloud/webpack/startup","webpack:///nextcloud/webpack/after-startup"],"sourcesContent":["/**\n * Copyright (c) 2014 Robin Appelman \n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nwindow.OCA.Sharing = window.OCA.Sharing || {};\n\n/**\n * Shows \"add external share\" dialog.\n *\n * @param {object} share the share\n * @param {string} share.remote remote server URL\n * @param {string} share.owner owner name\n * @param {string} share.name name of the shared folder\n * @param {string} share.token authentication token\n * @param {boolean} passwordProtected true if the share is password protected\n * @param {Function} callback the callback\n */\nwindow.OCA.Sharing.showAddExternalDialog = function (share, passwordProtected, callback) {\n const remote = share.remote;\n const owner = share.ownerDisplayName || share.owner;\n const name = share.name;\n\n // Clean up the remote URL for display\n const remoteClean = remote.replace(/^https?:\\/\\//, '') // remove http:// or https://\n .replace(/\\/$/, ''); // remove trailing slash\n\n if (!passwordProtected) {\n window.OC.dialogs.confirm(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result) {\n callback(result, share);\n }, true).then(this._adjustDialog);\n } else {\n window.OC.dialogs.prompt(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result, password) {\n share.password = password;\n callback(result, share);\n }, true, t('files_sharing', 'Remote share password'), true).then(this._adjustDialog);\n }\n};\nwindow.OCA.Sharing._adjustDialog = function () {\n const $dialog = $('.oc-dialog:visible');\n const $buttons = $dialog.find('button');\n // hack the buttons\n $dialog.find('.ui-icon').remove();\n $buttons.eq(1).text(t('core', 'Cancel'));\n $buttons.eq(2).text(t('files_sharing', 'Add remote share'));\n};\nconst reloadFilesList = function () {\n var _window;\n if (!((_window = window) !== null && _window !== void 0 && (_window = _window.OCP) !== null && _window !== void 0 && (_window = _window.Files) !== null && _window !== void 0 && (_window = _window.Router) !== null && _window !== void 0 && _window.goToRoute)) {\n // No router, just reload the page\n window.location.reload();\n return;\n }\n\n // Let's redirect to the root as any accepted share would be there\n window.OCP.Files.Router.goToRoute(null, {\n ...this.$route.params,\n fileid: undefined\n }, {\n ...this.$route.query,\n openfile: undefined\n });\n};\n\n/**\n * Process incoming remote share that might have been passed\n * through the URL\n */\nconst processIncomingShareFromUrl = function () {\n const params = window.OC.Util.History.parseUrlQuery();\n\n // manually add server-to-server share\n if (params.remote && params.token && params.name) {\n const callbackAddShare = function (result, share) {\n const password = share.password || '';\n if (result) {\n $.post(generateUrl('apps/federatedfilesharing/askForFederatedShare'), {\n remote: share.remote,\n token: share.token,\n owner: share.owner,\n ownerDisplayName: share.ownerDisplayName || share.owner,\n name: share.name,\n password\n }).done(function (data) {\n if (data.hasOwnProperty('legacyMount')) {\n reloadFilesList();\n } else {\n window.OC.Notification.showTemporary(data.message);\n }\n }).fail(function (data) {\n window.OC.Notification.showTemporary(JSON.parse(data.responseText).message);\n });\n }\n };\n\n // clear hash, it is unlikely that it contain any extra parameters\n location.hash = '';\n params.passwordProtected = parseInt(params.protected, 10) === 1;\n window.OCA.Sharing.showAddExternalDialog(params, params.passwordProtected, callbackAddShare);\n }\n};\n\n/**\n * Retrieve a list of remote shares that need to be approved\n */\nconst processSharesToConfirm = function () {\n // check for new server-to-server shares which need to be approved\n $.get(generateUrl('/apps/files_sharing/api/externalShares'), {}, function (shares) {\n let index;\n for (index = 0; index < shares.length; ++index) {\n window.OCA.Sharing.showAddExternalDialog(shares[index], false, function (result, share) {\n if (result) {\n // Accept\n $.post(generateUrl('/apps/files_sharing/api/externalShares'), {\n id: share.id\n }).then(function () {\n reloadFilesList();\n });\n } else {\n // Delete\n $.ajax({\n url: generateUrl('/apps/files_sharing/api/externalShares/' + share.id),\n type: 'DELETE'\n });\n }\n });\n }\n });\n};\nprocessIncomingShareFromUrl();\nif (loadState('federatedfilesharing', 'notificationsEnabled', true) !== true) {\n // No notification app, display the modal\n processSharesToConfirm();\n}\n$('body').on('window.OCA.Notification.Action', function (e) {\n if (e.notification.app === 'files_sharing' && e.notification.object_type === 'remote_share' && e.action.type === 'POST') {\n // User accepted a remote share reload\n reloadFilesList();\n }\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"federatedfilesharing-external\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"core-common\"], () => (__webpack_require__(\"./apps/federatedfilesharing/src/external.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js deleted file mode 100644 index 839a561057f2b..0000000000000 --- a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs"],{ - -/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs": -/*!************************************************************************!*\ - !*** ./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs ***! - \************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FilePickerVue: () => (/* binding */ i) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); - -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const i = (0,vue__WEBPACK_IMPORTED_MODULE_0__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("core-common"), __webpack_require__.e("data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b")]).then(__webpack_require__.bind(__webpack_require__, /*! ./FilePicker-pvhGKHps.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"))); - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map?v=5b50eddb49f5dac2045c \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map deleted file mode 100644 index 0579b9648a21e..0000000000000 --- a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js?v=5b50eddb49f5dac2045c","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs"],"sourcesContent":["import { defineAsyncComponent as e } from \"vue\";\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst i = e(() => import(\"./FilePicker-pvhGKHps.mjs\"));\nexport {\n i as FilePickerVue\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js deleted file mode 100644 index d498b00fc1fdb..0000000000000 --- a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js +++ /dev/null @@ -1,710 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs"],{ - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! - \**********************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) { - border-bottom: 1px solid var(--color-border); -} -.node-picker[data-v-f85db9fe] { - display: flex; - align-items: center; - height: 64px; -} -.node-picker__icon[data-v-f85db9fe], -.node-picker__preview[data-v-f85db9fe] { - height: 64px; - width: 64px; - margin: 0 var(--secondary-margin); - display: block; - flex: 0 0 64px; -} -.node-picker__icon[data-v-f85db9fe] { - color: var(--color-text-maxcontrast); -} -.node-picker__icon.folder-icon[data-v-f85db9fe] { - color: var(--color-primary-element); -} -.node-picker__preview[data-v-f85db9fe] { - overflow: hidden; - border-radius: calc(var(--border-radius) * 2); - background-position: center; - background-size: cover; -} -.node-picker__desc[data-v-f85db9fe] { - display: flex; - flex-direction: column; -} -.node-picker__desc span[data-v-f85db9fe] { - white-space: nowrap; -} -[data-v-12c4204f] .modal-container__content { - display: flex; - overflow: visible; - flex-direction: column; -} -.conflict-picker[data-v-12c4204f] { - --margin: 36px; - --secondary-margin: 18px; -} -.conflict-picker__header[data-v-12c4204f] { - position: sticky; - z-index: 10; - top: 0; - padding: 0 var(--margin); - padding-bottom: var(--secondary-margin); -} -.conflict-picker__form[data-v-12c4204f] { - position: relative; - overflow: auto; - padding: 0 var(--margin); - margin-top: calc(-1 * var(--secondary-margin)); -} -.conflict-picker fieldset[data-v-12c4204f] { - display: grid; - width: 100%; - margin-top: calc(var(--secondary-margin) * 1.5); - padding-bottom: var(--secondary-margin); - grid-template-columns: 1fr 1fr; -} -.conflict-picker fieldset[data-v-12c4204f] legend { - display: flex; - align-items: center; - width: 100%; - margin-bottom: calc(var(--secondary-margin) / 2); -} -.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { - position: sticky; - top: 0; - margin: 0; - padding: var(--secondary-margin) 0; - background-image: - linear-gradient( - to top, - transparent, - var(--color-main-background-blur) 10%, - var(--color-main-background) 15%); -} -.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] { - margin-top: 0; -} -.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label { - font-weight: 700; -} -.conflict-picker .button-vue--disabled[data-v-12c4204f] { - cursor: default; - opacity: .5; - filter: saturate(.7); -} -.conflict-picker[data-v-12c4204f] .dialog__actions { - width: auto; - margin-inline: 12px; -} -.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { - margin-left: auto; -} -@media screen and (max-width: 768px) { - .conflict-picker[data-v-12c4204f] { - --margin: var(--secondary-margin) !important; - } - .conflict-picker__description[data-v-12c4204f] { - display: none !important; - } - .conflict-picker fieldset[data-v-12c4204f] { - grid-template-columns: 1fr !important; - } - .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { - position: static; - } -} -@media screen and (max-width: 512px) { - .conflict-picker[data-v-12c4204f] .dialog__actions { - flex-wrap: wrap; - } - .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { - width: 100%; - } -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": -/*!********************************************************************************!*\ - !*** ./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs": -/*!********************************************************************************!*\ - !*** ./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs ***! - \********************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ae) -/* harmony export */ }); -/* harmony import */ var _assets_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/ConflictPicker-BVcoqXxT.css */ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index-DM2X1kc6.mjs */ "./node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); - - - - - - - - - - - -const b = { - name: "ArrowRightIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var x = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon arrow-right-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, N = [], $ = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - b, - x, - N, - !1, - null, - null, - null, - null -); -const L = $.exports, z = { - name: "CloseIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var F = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, P = [], A = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - z, - F, - P, - !1, - null, - null, - null, - null -); -const R = A.exports, I = { - name: "FileIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var B = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, E = [], O = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - I, - B, - E, - !1, - null, - null, - null, - null -); -const M = O.exports, U = { - name: "FolderIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var V = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, q = [], D = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - U, - V, - q, - !1, - null, - null, - null, - null -); -const T = D.exports, h = 64, H = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - name: "NodesPicker", - components: { - FileSvg: M, - FolderSvg: T, - NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__["default"] - }, - props: { - incoming: { - type: [File, Object], - required: !0 - }, - existing: { - type: Object, - required: !0 - }, - newSelected: { - type: Array, - required: !0 - }, - oldSelected: { - type: Array, - required: !0 - } - }, - data() { - return { - asyncPreview: null - }; - }, - computed: { - /** - * Whether the incoming or existing file is selected. - * This is used by the parent component to ensure - * that the user has selected at least one of the two files. - */ - isEnoughSelected() { - return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected); - }, - incomingPreview() { - return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming); - }, - existingPreview() { - return this.previewUrl(this.existing); - }, - incomingLastModified() { - return this.lastModified(this.incoming); - }, - existingLastModified() { - return this.lastModified(this.existing); - } - }, - methods: { - lastModified(i) { - return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null; - }, - size(i) { - return i.size ? (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.formatFileSize)(i.size, !0) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("Unknown size"); - }, - previewUrl(i) { - if (i instanceof File) { - this.previewImage(i).then((e) => { - this.asyncPreview = e; - }); - return; - } - if (i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder) - return null; - try { - const e = i.attributes.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_8__.generateUrl)("/core/preview?fileId={fileid}", { - fileid: i.fileid - }), t = new URL(window.location.origin + e); - return t.searchParams.set("x", h.toString()), t.searchParams.set("y", h.toString()), t.searchParams.set("mimeFallback", "true"), t.href; - } catch { - return null; - } - }, - isFolder(i) { - return i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder || i.type === "httpd/unix-directory"; - }, - isChecked(i, e) { - return e.includes(i); - }, - onUpdateIncomingChecked(i) { - i ? this.$emit("update:newSelected", [this.incoming, ...this.newSelected]) : this.$emit("update:newSelected", this.newSelected.filter((e) => e !== this.incoming)); - }, - onUpdateExistingChecked(i) { - i ? this.$emit("update:oldSelected", [this.existing, ...this.oldSelected]) : this.$emit("update:oldSelected", this.oldSelected.filter((e) => e !== this.existing)); - }, - /** - * Get the preview Image of a file - * @param file the soon-to-be-uploaded File - */ - async previewImage(i) { - return new Promise((e) => { - if (i.type.startsWith("image/")) { - const t = new FileReader(); - t.onload = async (s) => { - const l = s?.target?.result; - if (l instanceof ArrayBuffer) { - const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n); - e(c); - return; - } - e(null); - }, t.readAsArrayBuffer(i); - } - }); - }, - t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t - } -}); -var Z = function() { - var e = this, t = e._self._c; - return e._self._setupProxy, t("fieldset", { staticClass: "node-picker__wrapper", attrs: { "data-cy-conflict-picker-fieldset": e.existing.basename } }, [t("legend", [e._v(e._s(e.existing.basename))]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-incoming": e.existing.basename }, on: { "update:checked": e.onUpdateIncomingChecked } }, [t("span", { staticClass: "node-picker node-picker--incoming" }, [e.incomingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.incomingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("New version")))]), e.incomingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.incomingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-existing": e.existing.basename }, on: { "update:checked": e.onUpdateExistingChecked } }, [t("span", { staticClass: "node-picker node-picker--existing" }, [e.existingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.existingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("Existing version")))]), e.existingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.existingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1); -}, j = [], W = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - H, - Z, - j, - !1, - null, - "f85db9fe", - null, - null -); -const Y = W.exports, G = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - name: "ConflictPicker", - components: { - ArrowRight: L, - Close: R, - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__["default"], - NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__["default"], - NodesPicker: Y - }, - props: { - /** Directory/context file name */ - dirname: { - type: String, - default: "" - }, - /** All the existing files in the current directory */ - content: { - type: Array, - required: !0 - }, - /** New files being moved/uploaded */ - conflicts: { - type: Array, - required: !0 - } - }, - emits: ["cancel", "submit"], - data() { - return { - // computed list of conflicting files already present in the directory - files: [], - opened: !0, - blockedTitle: (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("You need to select at least one version of each file to continue."), - newSelected: [], - oldSelected: [] - }; - }, - computed: { - name() { - return this?.dirname?.trim?.() !== "" ? (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict in {dirname}", "{count} file conflicts in {dirname}", this.conflicts.length, { - count: this.conflicts.length, - dirname: this.dirname - }) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict", "{count} files conflict", this.conflicts.length, { count: this.conflicts.length }); - }, - skipButtonLabel() { - return (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("Skip this file", "Skip {count} files", this.conflicts.length, { count: this.conflicts.length }); - }, - // Select all incoming files - selectAllNewBind() { - const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t("Select all") : this.t("Unselect all"); - return { - "aria-label": i, - checked: this.isAllNewSelected, - indeterminate: this.isSomeNewSelected, - title: i - }; - }, - isAllNewSelected() { - return this.newSelected.length === this.conflicts.length; - }, - isNoneNewSelected() { - return this.newSelected.length === 0; - }, - isSomeNewSelected() { - return !this.isAllNewSelected && !this.isNoneNewSelected; - }, - // Select all existing files - selectAllOldBind() { - const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t("Select all") : this.t("Unselect all"); - return { - "aria-label": i, - checked: this.isAllOldSelected, - indeterminate: this.isSomeOldSelected, - title: i - }; - }, - isAllOldSelected() { - return this.oldSelected.length === this.files.length; - }, - isNoneOldSelected() { - return this.oldSelected.length === 0; - }, - isSomeOldSelected() { - return !this.isAllOldSelected && !this.isNoneOldSelected; - }, - // Global handlings - isEnoughSelected() { - return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected); - } - }, - mounted() { - if (this.files = this.conflicts.map((i) => { - const e = i instanceof File ? i.name : i.basename; - return this.content.find((t) => t.basename === e); - }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) { - const i = new Error("ConflictPicker: files and conflicts must not be empty"); - throw this.onCancel(i), i; - } - if (this.conflicts.length !== this.files.length) { - const i = new Error("ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array."); - throw this.onCancel(i), i; - } - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("ConflictPicker initialised", { files: this.files, conflicts: this.conflicts, content: this.content }); - }, - methods: { - onCancel(i) { - this.opened = !1, this.$emit("cancel", i); - }, - onSkip() { - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict skipped. Ignoring all conflicting files"), this.opened = !1, this.$emit("submit", { - selected: [], - renamed: [] - }); - }, - onSubmit() { - if (!this.isEnoughSelected) { - this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__.showError)(this.blockedTitle); - return; - } - const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => { - const c = n instanceof File ? n.name : n.basename; - return i.includes(c); - }); - s.length > 0 && s.forEach((n) => { - const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e); - if (n instanceof File) { - Object.defineProperty(n, "name", { value: u }), t.push(n); - return; - } - n.rename(u), t.push(n); - }); - const l = this.newSelected.filter((n) => { - const c = n instanceof File ? n.name : n.basename; - return !i.includes(c) && !s.includes(n); - }); - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict resolved", { selected: l, renamed: t }), this.opened = !1, this.$emit("submit", { - selected: l, - renamed: t - }); - }, - /** - * Get a unique name for a file based - * on the existing directory content. - * @param {string} name The original file name with extension - * @param {string} names The existing directory content names - * @return {string} A unique name - * TODO: migrate to @nextcloud/files - */ - getUniqueName(i, e) { - let t = i, s = 1; - for (; e.includes(t); ) { - const l = (0,path__WEBPACK_IMPORTED_MODULE_1__.extname)(i); - t = `${(0,path__WEBPACK_IMPORTED_MODULE_1__.basename)(i, l)} (${s++})${l}`; - } - return t; - }, - /** - * Scroll the first invalid input into view. - * This is needed because the browser uses behavior: "nearest" by default. - */ - scrollValidityInputIntoView() { - const i = '.checkbox-radio-switch input[type="checkbox"]'; - [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.("")); - const t = this.$el.querySelector(i + ":invalid"); - t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: "instant", block: "center" })); - }, - onSelectAllNew(i) { - i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all new files"), this.newSelected = this.conflicts) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared new selection"), this.newSelected = []); - }, - onSelectAllOld(i) { - i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all existing files"), this.oldSelected = this.files) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared old selection"), this.oldSelected = []); - }, - t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t - } -}); -var J = function() { - var e = this, t = e._self._c; - return e._self._setupProxy, t("NcDialog", { staticClass: "conflict-picker", attrs: { "data-cy-conflict-picker": "", "close-on-click-outside": !1, "can-close": !0, show: e.opened, name: e.name, size: "large" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: "actions", fn: function() { - return [t("NcButton", { attrs: { "aria-label": e.t("Cancel"), title: e.t("Cancel the entire operation"), "data-cy-conflict-picker-cancel": "", type: "tertiary" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("Close", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Cancel")) + " ")]), t("span", { staticClass: "dialog__actions-separator" }), t("NcButton", { attrs: { "aria-label": e.skipButtonLabel, "data-cy-conflict-picker-skip": "" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("Close", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.skipButtonLabel) + " ")]), t("NcButton", { class: { "button-vue--disabled": !e.isEnoughSelected }, attrs: { "aria-label": e.t("Continue"), title: e.isEnoughSelected ? "" : e.blockedTitle, "data-cy-conflict-picker-submit": "", "native-type": "submit", type: "primary" }, on: { click: function(s) { - return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("ArrowRight", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Continue")) + " ")])]; - }, proxy: !0 }]) }, [t("div", { staticClass: "conflict-picker__header" }, [t("p", { staticClass: "conflict-picker__description", attrs: { id: "conflict-picker-description" } }, [e._v(" " + e._s(e.t("Which files do you want to keep?"))), t("br"), e._v(" " + e._s(e.t("If you select both versions, the copied file will have a number added to its name."))), t("br"), e._v(" " + e._s(e.t("When an incoming folder is selected, any conflicting files within it will also be overwritten.")) + " ")])]), t("form", { ref: "form", staticClass: "conflict-picker__form", attrs: { "aria-labelledby": "conflict-picker-description", "data-cy-conflict-picker-form": "" }, on: { submit: function(s) { - return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments); - } } }, [t("fieldset", { staticClass: "conflict-picker__all", attrs: { "data-cy-conflict-picker-fieldset": "all" } }, [t("legend", { staticClass: "hidden-visually" }, [e._v(" " + e._s(e.t("Select all checkboxes")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-incoming": "all" }, on: { "update:checked": e.onSelectAllNew } }, "NcCheckboxRadioSwitch", e.selectAllNewBind, !1), [e._v(" " + e._s(e.t("Select all new files")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-existing": "all" }, on: { "update:checked": e.onSelectAllOld } }, "NcCheckboxRadioSwitch", e.selectAllOldBind, !1), [e._v(" " + e._s(e.t("Select all existing files")) + " ")])], 1), e._l(e.files, function(s, l) { - return t("NodesPicker", { key: s.fileid, ref: "nodesPicker", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], "new-selected": e.newSelected, "old-selected": e.oldSelected }, on: { "update:newSelected": function(n) { - e.newSelected = n; - }, "update:new-selected": function(n) { - e.newSelected = n; - }, "update:oldSelected": function(n) { - e.oldSelected = n; - }, "update:old-selected": function(n) { - e.oldSelected = n; - } } }); - })], 2)]); -}, K = [], Q = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - G, - J, - K, - !1, - null, - "12c4204f", - null, - null -); -const ae = Q.exports; - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map?v=16643b171a2f787f7569 \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map deleted file mode 100644 index 853cd8027f42e..0000000000000 --- a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js?v=16643b171a2f787f7569","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css?116c","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) {\n border-bottom: 1px solid var(--color-border);\n}\n.node-picker[data-v-f85db9fe] {\n display: flex;\n align-items: center;\n height: 64px;\n}\n.node-picker__icon[data-v-f85db9fe],\n.node-picker__preview[data-v-f85db9fe] {\n height: 64px;\n width: 64px;\n margin: 0 var(--secondary-margin);\n display: block;\n flex: 0 0 64px;\n}\n.node-picker__icon[data-v-f85db9fe] {\n color: var(--color-text-maxcontrast);\n}\n.node-picker__icon.folder-icon[data-v-f85db9fe] {\n color: var(--color-primary-element);\n}\n.node-picker__preview[data-v-f85db9fe] {\n overflow: hidden;\n border-radius: calc(var(--border-radius) * 2);\n background-position: center;\n background-size: cover;\n}\n.node-picker__desc[data-v-f85db9fe] {\n display: flex;\n flex-direction: column;\n}\n.node-picker__desc span[data-v-f85db9fe] {\n white-space: nowrap;\n}\n[data-v-12c4204f] .modal-container__content {\n display: flex;\n overflow: visible;\n flex-direction: column;\n}\n.conflict-picker[data-v-12c4204f] {\n --margin: 36px;\n --secondary-margin: 18px;\n}\n.conflict-picker__header[data-v-12c4204f] {\n position: sticky;\n z-index: 10;\n top: 0;\n padding: 0 var(--margin);\n padding-bottom: var(--secondary-margin);\n}\n.conflict-picker__form[data-v-12c4204f] {\n position: relative;\n overflow: auto;\n padding: 0 var(--margin);\n margin-top: calc(-1 * var(--secondary-margin));\n}\n.conflict-picker fieldset[data-v-12c4204f] {\n display: grid;\n width: 100%;\n margin-top: calc(var(--secondary-margin) * 1.5);\n padding-bottom: var(--secondary-margin);\n grid-template-columns: 1fr 1fr;\n}\n.conflict-picker fieldset[data-v-12c4204f] legend {\n display: flex;\n align-items: center;\n width: 100%;\n margin-bottom: calc(var(--secondary-margin) / 2);\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: sticky;\n top: 0;\n margin: 0;\n padding: var(--secondary-margin) 0;\n background-image:\n linear-gradient(\n to top,\n transparent,\n var(--color-main-background-blur) 10%,\n var(--color-main-background) 15%);\n}\n.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] {\n margin-top: 0;\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label {\n font-weight: 700;\n}\n.conflict-picker .button-vue--disabled[data-v-12c4204f] {\n cursor: default;\n opacity: .5;\n filter: saturate(.7);\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions {\n width: auto;\n margin-inline: 12px;\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n margin-left: auto;\n}\n@media screen and (max-width: 768px) {\n .conflict-picker[data-v-12c4204f] {\n --margin: var(--secondary-margin) !important;\n }\n .conflict-picker__description[data-v-12c4204f] {\n display: none !important;\n }\n .conflict-picker fieldset[data-v-12c4204f] {\n grid-template-columns: 1fr !important;\n }\n .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: static;\n }\n}\n@media screen and (max-width: 512px) {\n .conflict-picker[data-v-12c4204f] .dialog__actions {\n flex-wrap: wrap;\n }\n .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n width: 100%;\n }\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/ConflictPicker-BVcoqXxT.css';\nimport { extname as _, basename as g } from \"path\";\nimport { defineComponent as m } from \"vue\";\nimport { formatFileSize as S, FileType as f } from \"@nextcloud/files\";\nimport { showError as k } from \"@nextcloud/dialogs\";\nimport { n as o, t as a, a as d, l as r } from \"./index-DM2X1kc6.mjs\";\nimport p from \"@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js\";\nimport v from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport w from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport { generateUrl as y } from \"@nextcloud/router\";\nimport C from \"@nextcloud/vue/dist/Components/NcDateTime.js\";\nconst b = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, N = [], $ = /* @__PURE__ */ o(\n b,\n x,\n N,\n !1,\n null,\n null,\n null,\n null\n);\nconst L = $.exports, z = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar F = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, P = [], A = /* @__PURE__ */ o(\n z,\n F,\n P,\n !1,\n null,\n null,\n null,\n null\n);\nconst R = A.exports, I = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar B = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, E = [], O = /* @__PURE__ */ o(\n I,\n B,\n E,\n !1,\n null,\n null,\n null,\n null\n);\nconst M = O.exports, U = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar V = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, q = [], D = /* @__PURE__ */ o(\n U,\n V,\n q,\n !1,\n null,\n null,\n null,\n null\n);\nconst T = D.exports, h = 64, H = m({\n name: \"NodesPicker\",\n components: {\n FileSvg: M,\n FolderSvg: T,\n NcCheckboxRadioSwitch: p,\n NcDateTime: C\n },\n props: {\n incoming: {\n type: [File, Object],\n required: !0\n },\n existing: {\n type: Object,\n required: !0\n },\n newSelected: {\n type: Array,\n required: !0\n },\n oldSelected: {\n type: Array,\n required: !0\n }\n },\n data() {\n return {\n asyncPreview: null\n };\n },\n computed: {\n /**\n * Whether the incoming or existing file is selected.\n * This is used by the parent component to ensure\n * that the user has selected at least one of the two files.\n */\n isEnoughSelected() {\n return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected);\n },\n incomingPreview() {\n return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming);\n },\n existingPreview() {\n return this.previewUrl(this.existing);\n },\n incomingLastModified() {\n return this.lastModified(this.incoming);\n },\n existingLastModified() {\n return this.lastModified(this.existing);\n }\n },\n methods: {\n lastModified(i) {\n return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null;\n },\n size(i) {\n return i.size ? S(i.size, !0) : a(\"Unknown size\");\n },\n previewUrl(i) {\n if (i instanceof File) {\n this.previewImage(i).then((e) => {\n this.asyncPreview = e;\n });\n return;\n }\n if (i.type === f.Folder)\n return null;\n try {\n const e = i.attributes.previewUrl || y(\"/core/preview?fileId={fileid}\", {\n fileid: i.fileid\n }), t = new URL(window.location.origin + e);\n return t.searchParams.set(\"x\", h.toString()), t.searchParams.set(\"y\", h.toString()), t.searchParams.set(\"mimeFallback\", \"true\"), t.href;\n } catch {\n return null;\n }\n },\n isFolder(i) {\n return i.type === f.Folder || i.type === \"httpd/unix-directory\";\n },\n isChecked(i, e) {\n return e.includes(i);\n },\n onUpdateIncomingChecked(i) {\n i ? this.$emit(\"update:newSelected\", [this.incoming, ...this.newSelected]) : this.$emit(\"update:newSelected\", this.newSelected.filter((e) => e !== this.incoming));\n },\n onUpdateExistingChecked(i) {\n i ? this.$emit(\"update:oldSelected\", [this.existing, ...this.oldSelected]) : this.$emit(\"update:oldSelected\", this.oldSelected.filter((e) => e !== this.existing));\n },\n /**\n * Get the preview Image of a file\n * @param file the soon-to-be-uploaded File\n */\n async previewImage(i) {\n return new Promise((e) => {\n if (i.type.startsWith(\"image/\")) {\n const t = new FileReader();\n t.onload = async (s) => {\n const l = s?.target?.result;\n if (l instanceof ArrayBuffer) {\n const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n);\n e(c);\n return;\n }\n e(null);\n }, t.readAsArrayBuffer(i);\n }\n });\n },\n t: a\n }\n});\nvar Z = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"fieldset\", { staticClass: \"node-picker__wrapper\", attrs: { \"data-cy-conflict-picker-fieldset\": e.existing.basename } }, [t(\"legend\", [e._v(e._s(e.existing.basename))]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-incoming\": e.existing.basename }, on: { \"update:checked\": e.onUpdateIncomingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--incoming\" }, [e.incomingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.incomingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"New version\")))]), e.incomingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.incomingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-existing\": e.existing.basename }, on: { \"update:checked\": e.onUpdateExistingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--existing\" }, [e.existingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.existingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"Existing version\")))]), e.existingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.existingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1);\n}, j = [], W = /* @__PURE__ */ o(\n H,\n Z,\n j,\n !1,\n null,\n \"f85db9fe\",\n null,\n null\n);\nconst Y = W.exports, G = m({\n name: \"ConflictPicker\",\n components: {\n ArrowRight: L,\n Close: R,\n NcButton: w,\n NcCheckboxRadioSwitch: p,\n NcDialog: v,\n NodesPicker: Y\n },\n props: {\n /** Directory/context file name */\n dirname: {\n type: String,\n default: \"\"\n },\n /** All the existing files in the current directory */\n content: {\n type: Array,\n required: !0\n },\n /** New files being moved/uploaded */\n conflicts: {\n type: Array,\n required: !0\n }\n },\n emits: [\"cancel\", \"submit\"],\n data() {\n return {\n // computed list of conflicting files already present in the directory\n files: [],\n opened: !0,\n blockedTitle: a(\"You need to select at least one version of each file to continue.\"),\n newSelected: [],\n oldSelected: []\n };\n },\n computed: {\n name() {\n return this?.dirname?.trim?.() !== \"\" ? d(\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\", this.conflicts.length, {\n count: this.conflicts.length,\n dirname: this.dirname\n }) : d(\"{count} file conflict\", \"{count} files conflict\", this.conflicts.length, { count: this.conflicts.length });\n },\n skipButtonLabel() {\n return d(\"Skip this file\", \"Skip {count} files\", this.conflicts.length, { count: this.conflicts.length });\n },\n // Select all incoming files\n selectAllNewBind() {\n const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllNewSelected,\n indeterminate: this.isSomeNewSelected,\n title: i\n };\n },\n isAllNewSelected() {\n return this.newSelected.length === this.conflicts.length;\n },\n isNoneNewSelected() {\n return this.newSelected.length === 0;\n },\n isSomeNewSelected() {\n return !this.isAllNewSelected && !this.isNoneNewSelected;\n },\n // Select all existing files\n selectAllOldBind() {\n const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllOldSelected,\n indeterminate: this.isSomeOldSelected,\n title: i\n };\n },\n isAllOldSelected() {\n return this.oldSelected.length === this.files.length;\n },\n isNoneOldSelected() {\n return this.oldSelected.length === 0;\n },\n isSomeOldSelected() {\n return !this.isAllOldSelected && !this.isNoneOldSelected;\n },\n // Global handlings\n isEnoughSelected() {\n return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected);\n }\n },\n mounted() {\n if (this.files = this.conflicts.map((i) => {\n const e = i instanceof File ? i.name : i.basename;\n return this.content.find((t) => t.basename === e);\n }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) {\n const i = new Error(\"ConflictPicker: files and conflicts must not be empty\");\n throw this.onCancel(i), i;\n }\n if (this.conflicts.length !== this.files.length) {\n const i = new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n throw this.onCancel(i), i;\n }\n r.debug(\"ConflictPicker initialised\", { files: this.files, conflicts: this.conflicts, content: this.content });\n },\n methods: {\n onCancel(i) {\n this.opened = !1, this.$emit(\"cancel\", i);\n },\n onSkip() {\n r.debug(\"Conflict skipped. Ignoring all conflicting files\"), this.opened = !1, this.$emit(\"submit\", {\n selected: [],\n renamed: []\n });\n },\n onSubmit() {\n if (!this.isEnoughSelected) {\n this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), k(this.blockedTitle);\n return;\n }\n const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return i.includes(c);\n });\n s.length > 0 && s.forEach((n) => {\n const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e);\n if (n instanceof File) {\n Object.defineProperty(n, \"name\", { value: u }), t.push(n);\n return;\n }\n n.rename(u), t.push(n);\n });\n const l = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return !i.includes(c) && !s.includes(n);\n });\n r.debug(\"Conflict resolved\", { selected: l, renamed: t }), this.opened = !1, this.$emit(\"submit\", {\n selected: l,\n renamed: t\n });\n },\n /**\n * Get a unique name for a file based\n * on the existing directory content.\n * @param {string} name The original file name with extension\n * @param {string} names The existing directory content names\n * @return {string} A unique name\n * TODO: migrate to @nextcloud/files\n */\n getUniqueName(i, e) {\n let t = i, s = 1;\n for (; e.includes(t); ) {\n const l = _(i);\n t = `${g(i, l)} (${s++})${l}`;\n }\n return t;\n },\n /**\n * Scroll the first invalid input into view.\n * This is needed because the browser uses behavior: \"nearest\" by default.\n */\n scrollValidityInputIntoView() {\n const i = '.checkbox-radio-switch input[type=\"checkbox\"]';\n [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.(\"\"));\n const t = this.$el.querySelector(i + \":invalid\");\n t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: \"instant\", block: \"center\" }));\n },\n onSelectAllNew(i) {\n i ? (r.debug(\"Selected all new files\"), this.newSelected = this.conflicts) : (r.debug(\"Cleared new selection\"), this.newSelected = []);\n },\n onSelectAllOld(i) {\n i ? (r.debug(\"Selected all existing files\"), this.oldSelected = this.files) : (r.debug(\"Cleared old selection\"), this.oldSelected = []);\n },\n t: a\n }\n});\nvar J = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"NcDialog\", { staticClass: \"conflict-picker\", attrs: { \"data-cy-conflict-picker\": \"\", \"close-on-click-outside\": !1, \"can-close\": !0, show: e.opened, name: e.name, size: \"large\" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: \"actions\", fn: function() {\n return [t(\"NcButton\", { attrs: { \"aria-label\": e.t(\"Cancel\"), title: e.t(\"Cancel the entire operation\"), \"data-cy-conflict-picker-cancel\": \"\", type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Cancel\")) + \" \")]), t(\"span\", { staticClass: \"dialog__actions-separator\" }), t(\"NcButton\", { attrs: { \"aria-label\": e.skipButtonLabel, \"data-cy-conflict-picker-skip\": \"\" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.skipButtonLabel) + \" \")]), t(\"NcButton\", { class: { \"button-vue--disabled\": !e.isEnoughSelected }, attrs: { \"aria-label\": e.t(\"Continue\"), title: e.isEnoughSelected ? \"\" : e.blockedTitle, \"data-cy-conflict-picker-submit\": \"\", \"native-type\": \"submit\", type: \"primary\" }, on: { click: function(s) {\n return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Continue\")) + \" \")])];\n }, proxy: !0 }]) }, [t(\"div\", { staticClass: \"conflict-picker__header\" }, [t(\"p\", { staticClass: \"conflict-picker__description\", attrs: { id: \"conflict-picker-description\" } }, [e._v(\" \" + e._s(e.t(\"Which files do you want to keep?\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"If you select both versions, the copied file will have a number added to its name.\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\")) + \" \")])]), t(\"form\", { ref: \"form\", staticClass: \"conflict-picker__form\", attrs: { \"aria-labelledby\": \"conflict-picker-description\", \"data-cy-conflict-picker-form\": \"\" }, on: { submit: function(s) {\n return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments);\n } } }, [t(\"fieldset\", { staticClass: \"conflict-picker__all\", attrs: { \"data-cy-conflict-picker-fieldset\": \"all\" } }, [t(\"legend\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(e.t(\"Select all checkboxes\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-incoming\": \"all\" }, on: { \"update:checked\": e.onSelectAllNew } }, \"NcCheckboxRadioSwitch\", e.selectAllNewBind, !1), [e._v(\" \" + e._s(e.t(\"Select all new files\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-existing\": \"all\" }, on: { \"update:checked\": e.onSelectAllOld } }, \"NcCheckboxRadioSwitch\", e.selectAllOldBind, !1), [e._v(\" \" + e._s(e.t(\"Select all existing files\")) + \" \")])], 1), e._l(e.files, function(s, l) {\n return t(\"NodesPicker\", { key: s.fileid, ref: \"nodesPicker\", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], \"new-selected\": e.newSelected, \"old-selected\": e.oldSelected }, on: { \"update:newSelected\": function(n) {\n e.newSelected = n;\n }, \"update:new-selected\": function(n) {\n e.newSelected = n;\n }, \"update:oldSelected\": function(n) {\n e.oldSelected = n;\n }, \"update:old-selected\": function(n) {\n e.oldSelected = n;\n } } });\n })], 2)]);\n}, K = [], Q = /* @__PURE__ */ o(\n G,\n J,\n K,\n !1,\n null,\n \"12c4204f\",\n null,\n null\n);\nconst ae = Q.exports;\nexport {\n ae as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js deleted file mode 100644 index 477b956f80a4b..0000000000000 --- a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs"],{ - -/***/ "./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs": -/*!*******************************************************************************!*\ - !*** ./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs ***! - \*******************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ NcAutoCompleteResult: () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.N), -/* harmony export */ NcMentionBubble: () => (/* reexport safe */ _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__.N), -/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.a) -/* harmony export */ }); -/* harmony import */ var _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/index-uiNhPYvS.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/index-uiNhPYvS.mjs"); -/* harmony import */ var _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../chunks/NcRichContenteditable-CEqdmoem.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-CEqdmoem.mjs"); - - - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map?v=ffc12738fb24256850ac \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map deleted file mode 100644 index 9502164ef4398..0000000000000 --- a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js?v=ffc12738fb24256850ac","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAKA","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs"],"sourcesContent":["import { N as t } from \"../chunks/index-uiNhPYvS.mjs\";\nimport { N as l, a as r } from \"../chunks/NcRichContenteditable-CEqdmoem.mjs\";\nexport {\n l as NcAutoCompleteResult,\n t as NcMentionBubble,\n r as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-apps-view-settings-apps-view.js b/dist/settings-apps-view-settings-apps-view.js deleted file mode 100644 index 18e1436a52354..0000000000000 --- a/dist/settings-apps-view-settings-apps-view.js +++ /dev/null @@ -1,6005 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["settings-apps-view"],{ - -/***/ "./apps/settings/src/constants/AppsConstants.js": -/*!******************************************************!*\ - !*** ./apps/settings/src/constants/AppsConstants.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ APPS_SECTION_ENUM: () => (/* binding */ APPS_SECTION_ENUM) -/* harmony export */ }); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/** - * @copyright 2022, Julia Kirschenheuter - * - * @author Julia Kirschenheuter - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - -/** Enum of verification constants, according to Apps */ -const APPS_SECTION_ENUM = Object.freeze({ - discover: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Discover'), - installed: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Your apps'), - enabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Active apps'), - disabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Disabled apps'), - updates: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Updates'), - 'app-bundles': (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App bundles'), - featured: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Featured apps'), - supported: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Supported apps') // From subscription -}); - -/***/ }), - -/***/ "./apps/settings/src/mixins/AppManagement.js": -/*!***************************************************!*\ - !*** ./apps/settings/src/mixins/AppManagement.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../service/rebuild-navigation.js */ "./apps/settings/src/service/rebuild-navigation.js"); -/** - * @copyright Copyright (c) 2019 Julius Härtl - * - * @author John Molakvoæ - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - computed: { - appGroups() { - return this.app.groups.map(group => { - return { - id: group, - name: group - }; - }); - }, - installing() { - return this.$store.getters.loading('install'); - }, - isLoading() { - return this.app && this.$store.getters.loading(this.app.id); - }, - enableButtonText() { - if (this.app.needsDownload) { - return t('settings', 'Download and enable'); - } - return t('settings', 'Enable'); - }, - forceEnableButtonText() { - if (this.app.needsDownload) { - return t('settings', 'Allow untested app'); - } - return t('settings', 'Allow untested app'); - }, - enableButtonTooltip() { - if (this.app.needsDownload) { - return t('settings', 'The app will be downloaded from the App Store'); - } - return null; - }, - forceEnableButtonTooltip() { - const base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.'); - if (this.app.needsDownload) { - return base + ' ' + t('settings', 'The app will be downloaded from the App Store'); - } - return base; - } - }, - data() { - return { - groupCheckedAppsData: false - }; - }, - mounted() { - if (this.app && this.app.groups && this.app.groups.length > 0) { - this.groupCheckedAppsData = true; - } - }, - methods: { - asyncFindGroup(query) { - return this.$store.dispatch('getGroups', { - search: query, - limit: 5, - offset: 0 - }); - }, - isLimitedToGroups(app) { - if (this.app.groups.length || this.groupCheckedAppsData) { - return true; - } - return false; - }, - setGroupLimit() { - if (!this.groupCheckedAppsData) { - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups: [] - }); - } - }, - canLimitToGroups(app) { - if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) { - return false; - } - return true; - }, - addGroupLimitation(groupArray) { - const group = groupArray.pop(); - const groups = this.app.groups.concat([]).concat([group.id]); - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups - }); - }, - removeGroupLimitation(group) { - const currentGroups = this.app.groups.concat([]); - const index = currentGroups.indexOf(group.id); - if (index > -1) { - currentGroups.splice(index, 1); - } - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups: currentGroups - }); - }, - forceEnable(appId) { - this.$store.dispatch('forceEnableApp', { - appId, - groups: [] - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - enable(appId) { - this.$store.dispatch('enableApp', { - appId, - groups: [] - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - disable(appId) { - this.$store.dispatch('disableApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - remove(appId) { - this.$store.dispatch('uninstallApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - install(appId) { - this.$store.dispatch('enableApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - update(appId) { - this.$store.dispatch('updateApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - } - } -}); - -/***/ }), - -/***/ "./apps/settings/src/service/rebuild-navigation.js": -/*!*********************************************************!*\ - !*** ./apps/settings/src/service/rebuild-navigation.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (() => { - return _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('core/navigation', 2) + '/apps?format=json').then(_ref => { - let { - data - } = _ref; - if (data.ocs.meta.statuscode !== 200) { - return; - } - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__.emit)('nextcloud:app-menu.refresh', { - apps: data.ocs.data - }); - window.dispatchEvent(new Event('resize')); - }); -}); - -/***/ }), - -/***/ "./apps/settings/src/composables/useAppIcon.ts": -/*!*****************************************************!*\ - !*** ./apps/settings/src/composables/useAppIcon.ts ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ useAppIcon: () => (/* binding */ useAppIcon) -/* harmony export */ }); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); -/* harmony import */ var _logger_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger.ts */ "./apps/settings/src/logger.ts"); - - - - -/** - * Get the app icon raw SVG for use with `NcIconSvgWrapper` (do never use without sanitizing) - * It has a fallback to the categroy icon. - * - * @param app The app to get the icon for - */ -function useAppIcon(app) { - const appIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.ref)(null); - /** - * Fallback value if no app icon available - */ - const categoryIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => { - var _flat$map$filter$at, _app$value$category, _app$value; - const path = (_flat$map$filter$at = [(_app$value$category = (_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.category) !== null && _app$value$category !== void 0 ? _app$value$category : []].flat().map(name => _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__["default"][name]).filter(icon => !!icon).at(0)) !== null && _flat$map$filter$at !== void 0 ? _flat$map$filter$at : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCog; - return path ? "") : null; - }); - (0,vue__WEBPACK_IMPORTED_MODULE_2__.watchEffect)(async () => { - var _app$value2; - // Note: Only variables until the first `await` will be watched! - if (!((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.preview)) { - appIcon.value = categoryIcon.value; - } else { - appIcon.value = null; - // Now try to load the real app icon - try { - const response = await window.fetch(app.value.preview); - const blob = await response.blob(); - const rawSvg = await blob.text(); - appIcon.value = rawSvg.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/ig, 'fill="currentColor"'); - } catch (error) { - appIcon.value = categoryIcon.value; - _logger_ts__WEBPACK_IMPORTED_MODULE_1__["default"].error('Could not load app icon', { - error - }); - } - } - }); - return { - appIcon - }; -} - -/***/ }), - -/***/ "./apps/settings/src/constants/AppstoreCategoryIcons.ts": -/*!**************************************************************!*\ - !*** ./apps/settings/src/constants/AppstoreCategoryIcons.ts ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * SVG paths used for appstore category icons - */ -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Object.freeze({ - // system special categories - discover: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarCircleOutline, - installed: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccount, - enabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCheck, - disabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClose, - bundles: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiArchive, - supported: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarShooting, - featured: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStar, - updates: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiDownload, - // generic categories - auth: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiKey, - customization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCog, - dashboard: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiViewDashboard, - files: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFolder, - games: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiControllerClassic, - integration: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOpenInApp, - monitoring: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMonitorEye, - multimedia: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMultimedia, - office: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFileDocumentEdit, - organization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOfficeBuilding, - search: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMagnify, - security: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiSecurity, - social: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccountMultiple, - tools: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiTools, - workflow: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClipboardFlow -})); - -/***/ }), - -/***/ "./apps/settings/src/store/apps-store.ts": -/*!***********************************************!*\ - !*** ./apps/settings/src/store/apps-store.ts ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ useAppsStore: () => (/* binding */ useAppsStore) -/* harmony export */ }); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! pinia */ "./node_modules/pinia/dist/pinia.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../logger */ "./apps/settings/src/logger.ts"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - - - - - - -const showApiError = () => (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.translate)('settings', 'An error occurred during the request. Unable to proceed.')); -const useAppsStore = (0,pinia__WEBPACK_IMPORTED_MODULE_7__.defineStore)('settings-apps', { - state: () => ({ - apps: [], - categories: [], - updateCount: (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loadState)('settings', 'appstoreUpdateCount', 0), - loading: { - apps: false, - categories: false - }, - loadingList: false, - gettingCategoriesPromise: null - }), - actions: { - async loadCategories() { - let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.categories.length > 0 && !force) { - return; - } - try { - this.loading.categories = true; - const { - data: categories - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/categories')); - for (const category of categories) { - var _APPSTORE_CATEGORY_IC; - category.icon = (_APPSTORE_CATEGORY_IC = _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__["default"][category.id]) !== null && _APPSTORE_CATEGORY_IC !== void 0 ? _APPSTORE_CATEGORY_IC : ''; - } - this.$patch({ - categories - }); - } catch (error) { - _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); - showApiError(); - } finally { - this.loading.categories = false; - } - }, - async loadApps() { - let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.apps.length > 0 && !force) { - return; - } - try { - this.loading.apps = true; - const { - data - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/list')); - this.$patch({ - apps: data.apps - }); - } catch (error) { - _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); - showApiError(); - } finally { - this.loading.apps = false; - } - }, - getCategoryById(categoryId) { - var _this$categories$find; - return (_this$categories$find = this.categories.find(_ref => { - let { - id - } = _ref; - return id === categoryId; - })) !== null && _this$categories$find !== void 0 ? _this$categories$find : null; - }, - getAppById(appId) { - var _this$apps$find; - return (_this$apps$find = this.apps.find(_ref2 => { - let { - id - } = _ref2; - return id === appId; - })) !== null && _this$apps$find !== void 0 ? _this$apps$find : null; - } - } -}); - -/***/ }), - -/***/ "./apps/settings/src/utils/appDiscoverParser.ts": -/*!******************************************************!*\ - !*** ./apps/settings/src/utils/appDiscoverParser.ts ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ filterElements: () => (/* binding */ filterElements), -/* harmony export */ parseApiResponse: () => (/* binding */ parseApiResponse) -/* harmony export */ }); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * Helper to transform the JSON API results to proper frontend objects (app discover section elements) - * - * @param element The JSON API element to transform - */ -const parseApiResponse = element => { - var _element$type; - const appElement = { - ...element - }; - if (appElement.date) { - appElement.date = Date.parse(appElement.date); - } - if (appElement.expiryDate) { - appElement.expiryDate = Date.parse(appElement.expiryDate); - } - if (appElement.type === 'post') { - return appElement; - } else if (appElement.type === 'showcase') { - return appElement; - } else if (appElement.type === 'carousel') { - return appElement; - } - throw new Error("Invalid argument, app discover element with type ".concat((_element$type = element.type) !== null && _element$type !== void 0 ? _element$type : 'unknown', " is unknown")); -}; -/** - * Filter outdated or upcoming elements - * @param element Element to check - */ -const filterElements = element => { - const now = Date.now(); - // Element not yet published - if (element.date && element.date > now) { - return false; - } - // Element expired - if (element.expiryDate && element.expiryDate < now) { - return false; - } - return true; -}; - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ - __name: 'AppLevelBadge', - props: { - level: { - type: Number, - required: false - } - }, - setup(__props) { - const props = __props; - const isSupported = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 300); - const isFeatured = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 200); - const badgeIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarShooting : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCheck); - const badgeText = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Supported') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured')); - const badgeTitle = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'This app is supported via your current Nextcloud subscription.') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')); - return { - __sfc: true, - props, - isSupported, - isFeatured, - badgeIcon, - badgeText, - badgeTitle, - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": -/*!*************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! - \*************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ - name: 'AppScore', - components: { - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] - }, - props: { - score: { - type: Number, - required: true - } - }, - setup() { - return { - mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStar, - mdiStarHalfFull: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarHalfFull, - mdiStarOutline: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarOutline - }; - }, - computed: { - title() { - const appScore = (this.score * 5).toFixed(1); - return (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Community rating: {score}/5', { - score: appScore - }); - }, - fullStars() { - return Math.floor(this.score * 5 + 0.25); - }, - emptyStars() { - return Math.min(Math.floor((1 - this.score) * 5 + 0.25), 5 - this.fullStars); - }, - hasHalfStar() { - return this.fullStars + this.emptyStars < 5; - } - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": -/*!************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! - \************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./apps/settings/src/logger.ts"); -/* harmony import */ var _utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/appDiscoverParser.ts */ "./apps/settings/src/utils/appDiscoverParser.ts"); - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ - __name: 'AppStoreDiscoverSection', - setup(__props) { - const PostType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => __webpack_require__.e(/*! import() */ "apps_settings_src_components_AppStoreDiscover_PostType_vue").then(__webpack_require__.bind(__webpack_require__, /*! ./PostType.vue */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue"))); - const CarouselType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_CarouselType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CarouselType.vue */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue"))); - const ShowcaseType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./ShowcaseType.vue */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue"))); - const hasError = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)(false); - const elements = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)([]); - /** - * Shuffle using the Fisher-Yates algorithm - * @param array The array to shuffle (in place) - */ - const shuffleArray = array => { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [array[i], array[j]] = [array[j], array[i]]; - } - return array; - }; - /** - * Load the app discover section information - */ - (0,vue__WEBPACK_IMPORTED_MODULE_9__.onBeforeMount)(async () => { - try { - const { - data - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_2__.generateUrl)('/settings/api/apps/discover')); - if (data.length === 0) { - _logger__WEBPACK_IMPORTED_MODULE_7__["default"].info('No app discover elements available (empty response)'); - hasError.value = true; - return; - } - // Parse data to ensure dates are useable and then filter out expired or future elements - const parsedElements = data.map(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.parseApiResponse).filter(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.filterElements); - // Shuffle elements to make it looks more interesting - const shuffledElements = shuffleArray(parsedElements); - // Sort pinned elements first - shuffledElements.sort((a, b) => { - var _a$order, _b$order; - return ((_a$order = a.order) !== null && _a$order !== void 0 ? _a$order : Infinity) < ((_b$order = b.order) !== null && _b$order !== void 0 ? _b$order : Infinity) ? -1 : 1; - }); - // Set the elements to the UI - elements.value = shuffledElements; - } catch (error) { - hasError.value = true; - _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error(error); - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not load app discover section')); - } - }); - const getComponent = type => { - if (type === 'post') { - return PostType; - } else if (type === 'carousel') { - return CarouselType; - } else if (type === 'showcase') { - return ShowcaseType; - } - return (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ - mounted: () => _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error('Unknown component requested ', type), - render: h => h('div', (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not render element')) - }); - }; - return { - __sfc: true, - PostType, - CarouselType, - ShowcaseType, - hasError, - elements, - shuffleArray, - getComponent, - mdiEyeOff: _mdi_js__WEBPACK_IMPORTED_MODULE_10__.mdiEyeOff, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, - NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - __name: 'AppDescriptionTab', - props: { - app: { - type: null, - required: true - } - }, - setup(__props) { - return { - __sfc: true, - mdiTextShort: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiTextShort, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], - Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": -/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! - \**************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); - - - - - - - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - __name: 'AppReleasesTab', - props: { - app: { - type: null, - required: true - } - }, - setup(__props) { - const props = __props; - const hasChangelog = (0,vue__WEBPACK_IMPORTED_MODULE_4__.computed)(() => { - var _props$app$releases$, _props$app$releases; - return Object.values((_props$app$releases$ = (_props$app$releases = props.app.releases) === null || _props$app$releases === void 0 || (_props$app$releases = _props$app$releases[0]) === null || _props$app$releases === void 0 ? void 0 : _props$app$releases.translations) !== null && _props$app$releases$ !== void 0 ? _props$app$releases$ : {}).some(_ref => { - let { - changelog - } = _ref; - return !!changelog; - }); - }); - const createChangelogFromRelease = release => { - var _ref2, _release$translations, _release$translations2, _release$translations3; - return (_ref2 = (_release$translations = (_release$translations2 = release.translations) === null || _release$translations2 === void 0 || (_release$translations2 = _release$translations2[(0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.getLanguage)()]) === null || _release$translations2 === void 0 ? void 0 : _release$translations2.changelog) !== null && _release$translations !== void 0 ? _release$translations : (_release$translations3 = release.translations) === null || _release$translations3 === void 0 || (_release$translations3 = _release$translations3.en) === null || _release$translations3 === void 0 ? void 0 : _release$translations3.changelog) !== null && _ref2 !== void 0 ? _ref2 : ''; - }; - return { - __sfc: true, - props, - hasChangelog, - createChangelogFromRelease, - mdiClockFast: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiClockFast, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], - Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": -/*!***********************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! - \***********************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppList.vue */ "./apps/settings/src/components/AppList.vue"); -/* harmony import */ var _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreDiscover/AppStoreDiscoverSection.vue */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue"); - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_8__.defineComponent)({ - __name: 'AppStore', - setup(__props) { - const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_9__.useRoute)(); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); - /** - * ID of the current active category, default is `discover` - */ - const currentCategory = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { - var _route$params$categor, _route$params; - return (_route$params$categor = (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.category) !== null && _route$params$categor !== void 0 ? _route$params$categor : 'discover'; - }); - const appStoreLabel = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App Store'); - const viewLabel = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { - var _ref, _APPS_SECTION_ENUM$cu, _store$getCategoryByI; - return (_ref = (_APPS_SECTION_ENUM$cu = _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM[currentCategory.value]) !== null && _APPS_SECTION_ENUM$cu !== void 0 ? _APPS_SECTION_ENUM$cu : (_store$getCategoryByI = store.getCategoryById(currentCategory.value)) === null || _store$getCategoryByI === void 0 ? void 0 : _store$getCategoryByI.displayName) !== null && _ref !== void 0 ? _ref : appStoreLabel; - }); - (0,vue__WEBPACK_IMPORTED_MODULE_8__.watchEffect)(() => { - window.document.title = "".concat(viewLabel.value, " - ").concat(appStoreLabel, " - Nextcloud"); - }); - // TODO this part should be migrated to pinia - const instance = (0,vue__WEBPACK_IMPORTED_MODULE_8__.getCurrentInstance)(); - /** Is the app list loading */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const isLoading = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.getters.loading('list')); - (0,vue__WEBPACK_IMPORTED_MODULE_8__.onBeforeMount)(() => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getCategories', { - shouldRefetchCategories: true - }); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getAllApps'); - }); - return { - __sfc: true, - route, - store, - currentCategory, - appStoreLabel, - viewLabel, - instance, - isLoading, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppContent: _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__["default"], - NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__["default"], - AppList: _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__["default"], - AppStoreDiscoverSection: _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": -/*!*********************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! - \*********************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigation.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationItem.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationSpacer.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationSpacer.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCounterBubble.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCounterBubble.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); - - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_11__.defineComponent)({ - __name: 'AppStoreNavigation', - setup(__props) { - const updateCount = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreUpdateCount', 0); - const appstoreEnabled = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreEnabled', true); - const developerDocsUrl = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreDeveloperDocs', ''); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_3__.useAppsStore)(); - const categories = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.categories); - const categoriesLoading = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.loading.categories); - /** - * Check if the current instance has a support subscription from the Nextcloud GmbH - * - * For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription - */ - const isSubscribed = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.apps.find(_ref => { - let { - level - } = _ref; - return level === 300; - }) !== undefined); - // load categories when component is mounted - (0,vue__WEBPACK_IMPORTED_MODULE_11__.onBeforeMount)(() => { - store.loadCategories(); - store.loadApps(); - }); - return { - __sfc: true, - updateCount, - appstoreEnabled, - developerDocsUrl, - store, - categories, - categoriesLoading, - isSubscribed, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, - APPS_SECTION_ENUM: _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM, - NcAppNavigation: _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcAppNavigationItem: _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcAppNavigationSpacer: _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__["default"], - NcCounterBubble: _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__["default"], - APPSTORE_CATEGORY_ICONS: _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": -/*!******************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! - \******************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/AppList/AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDescriptionTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDetailsTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppReleasesTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue"); -/* harmony import */ var _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/AppList/AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); -/* harmony import */ var _composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../composables/useAppIcon.ts */ "./apps/settings/src/composables/useAppIcon.ts"); - - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - __name: 'AppStoreSidebar', - setup(__props) { - const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRoute)(); - const router = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRouter)(); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); - const appId = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _route$params$id; - return (_route$params$id = route.params.id) !== null && _route$params$id !== void 0 ? _route$params$id : ''; - }); - const app = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => store.getAppById(appId.value)); - const hasRating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value$appstoreDa; - return ((_app$value$appstoreDa = app.value.appstoreData) === null || _app$value$appstoreDa === void 0 ? void 0 : _app$value$appstoreDa.ratingNumOverall) > 5; - }); - const rating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value$appstoreDa2, _app$value$appstoreDa3, _app$value$appstoreDa4; - return ((_app$value$appstoreDa2 = app.value.appstoreData) === null || _app$value$appstoreDa2 === void 0 ? void 0 : _app$value$appstoreDa2.ratingNumRecent) > 5 ? app.value.appstoreData.ratingRecent : (_app$value$appstoreDa3 = (_app$value$appstoreDa4 = app.value.appstoreData) === null || _app$value$appstoreDa4 === void 0 ? void 0 : _app$value$appstoreDa4.ratingOverall) !== null && _app$value$appstoreDa3 !== void 0 ? _app$value$appstoreDa3 : 0.5; - }); - const showSidebar = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value !== null); - const { - appIcon - } = (0,_composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__.useAppIcon)(app); - /** - * The second text line shown on the sidebar - */ - const licenseText = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Version {version}, {license}-licensed', { - version: app.value.version, - license: app.value.licence.toString().toUpperCase() - }) : ''); - const activeTab = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)('details'); - (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], () => { - activeTab.value = 'details'; - }); - /** - * Hide the details sidebar by pushing a new route - */ - const hideAppDetails = () => { - router.push({ - name: 'apps-category', - params: { - category: route.params.category - } - }); - }; - /** - * Whether the app screenshot is loaded - */ - const screenshotLoaded = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)(false); - const hasScreenshot = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value; - return ((_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.screenshot) && screenshotLoaded.value; - }); - /** - * Preload the app screenshot - */ - const loadScreenshot = () => { - var _app$value2, _app$value3; - if ((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.releases && (_app$value3 = app.value) !== null && _app$value3 !== void 0 && _app$value3.screenshot) { - const image = new Image(); - image.onload = () => { - screenshotLoaded.value = true; - }; - image.src = app.value.screenshot; - } - }; - // Watch app and set screenshot loaded when - (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], loadScreenshot); - (0,vue__WEBPACK_IMPORTED_MODULE_10__.onMounted)(loadScreenshot); - return { - __sfc: true, - route, - router, - store, - appId, - app, - hasRating, - rating, - showSidebar, - appIcon, - licenseText, - activeTab, - hideAppDetails, - screenshotLoaded, - hasScreenshot, - loadScreenshot, - NcAppSidebar: _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], - AppScore: _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__["default"], - AppDescriptionTab: _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__["default"], - AppDetailsTab: _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__["default"], - AppReleasesTab: _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__["default"], - AppLevelBadge: _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": -/*!******************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! - \******************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); -/* harmony import */ var _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList/AppItem.vue */ "./apps/settings/src/components/AppList/AppItem.vue"); -/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! p-limit */ "./node_modules/p-limit/index.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppList', - components: { - AppItem: _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__["default"] - }, - props: { - category: { - type: String, - required: true - } - }, - data() { - return { - search: '' - }; - }, - computed: { - counter() { - return this.apps.filter(app => app.update).length; - }, - loading() { - return this.$store.getters.loading('list'); - }, - hasPendingUpdate() { - return this.apps.filter(app => app.update).length > 0; - }, - showUpdateAll() { - return this.hasPendingUpdate && this.useListView; - }, - apps() { - const apps = this.$store.getters.getAllApps.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1).sort(function (a, b) { - const sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name; - const sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name; - return OC.Util.naturalSortCompare(sortStringA, sortStringB); - }); - if (this.category === 'installed') { - return apps.filter(app => app.installed); - } - if (this.category === 'enabled') { - return apps.filter(app => app.active && app.installed); - } - if (this.category === 'disabled') { - return apps.filter(app => !app.active && app.installed); - } - if (this.category === 'app-bundles') { - return apps.filter(app => app.bundles); - } - if (this.category === 'updates') { - return apps.filter(app => app.update); - } - if (this.category === 'supported') { - // For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription - return apps.filter(app => app.level === 300); - } - if (this.category === 'featured') { - // An app level of `200` will be set for apps featured on the app store - return apps.filter(app => app.level === 200); - } - - // filter app store categories - return apps.filter(app => { - return app.appstore && app.category !== undefined && (app.category === this.category || app.category.indexOf(this.category) > -1); - }); - }, - bundles() { - return this.$store.getters.getAppBundles.filter(bundle => this.bundleApps(bundle.id).length > 0); - }, - bundleApps() { - return function (bundle) { - return this.$store.getters.getAllApps.filter(app => { - return app.bundleIds !== undefined && app.bundleIds.includes(bundle); - }); - }; - }, - searchApps() { - if (this.search === '') { - return []; - } - return this.$store.getters.getAllApps.filter(app => { - if (app.name.toLowerCase().search(this.search.toLowerCase()) !== -1) { - return !this.apps.find(_app => _app.id === app.id); - } - return false; - }); - }, - useAppStoreView() { - return !this.useListView && !this.useBundleView; - }, - useListView() { - return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured' || this.category === 'supported'; - }, - useBundleView() { - return this.category === 'app-bundles'; - }, - allBundlesEnabled() { - return id => { - return this.bundleApps(id).filter(app => !app.active).length === 0; - }; - }, - bundleToggleText() { - return id => { - if (this.allBundlesEnabled(id)) { - return t('settings', 'Disable all'); - } - return t('settings', 'Download and enable all'); - }; - } - }, - beforeDestroy() { - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.search', this.setSearch); - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.reset', this.resetSearch); - }, - mounted() { - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.search', this.setSearch); - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.reset', this.resetSearch); - }, - methods: { - setSearch(_ref) { - let { - query - } = _ref; - this.search = query; - }, - resetSearch() { - this.search = ''; - }, - toggleBundle(id) { - if (this.allBundlesEnabled(id)) { - return this.disableBundle(id); - } - return this.enableBundle(id); - }, - enableBundle(id) { - const apps = this.bundleApps(id).map(app => app.id); - this.$store.dispatch('enableApp', { - appId: apps, - groups: [] - }).catch(error => { - console.error(error); - OC.Notification.show(error); - }); - }, - disableBundle(id) { - const apps = this.bundleApps(id).map(app => app.id); - this.$store.dispatch('disableApp', { - appId: apps, - groups: [] - }).catch(error => { - OC.Notification.show(error); - }); - }, - updateAll() { - const limit = (0,p_limit__WEBPACK_IMPORTED_MODULE_2__["default"])(1); - this.apps.filter(app => app.update).map(app => limit(() => this.$store.dispatch('updateApp', { - appId: app.id - }))); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": -/*!**************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! - \**************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); -/* harmony import */ var _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); -/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); -/* harmony import */ var _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SvgFilterMixin.vue */ "./apps/settings/src/components/SvgFilterMixin.vue"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppItem', - components: { - AppLevelBadge: _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__["default"], - AppScore: _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__["default"] - }, - mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__["default"], _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__["default"]], - props: { - app: { - type: Object, - required: true - }, - category: { - type: String, - required: true - }, - listView: { - type: Boolean, - default: true - }, - useBundleView: { - type: Boolean, - default: false - }, - headers: { - type: String, - default: null - }, - inline: { - type: Boolean, - default: false - } - }, - data() { - return { - isSelected: false, - scrolled: false, - screenshotLoaded: false - }; - }, - computed: { - hasRating() { - return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5; - }, - dataItemTag() { - return this.listView ? 'td' : 'div'; - }, - withSidebar() { - return !!this.$route.params.id; - } - }, - watch: { - '$route.params.id'(id) { - this.isSelected = this.app.id === id; - } - }, - mounted() { - this.isSelected = this.app.id === this.$route.params.id; - if (this.app.releases && this.app.screenshot) { - const image = new Image(); - image.onload = () => { - this.screenshotLoaded = true; - }; - image.src = this.app.screenshot; - } - }, - watchers: {}, - methods: { - prefix(prefix, content) { - return prefix + '_' + content; - }, - getDataItemHeaders(columnName) { - return this.useBundleView ? [this.headers, columnName].join(' ') : null; - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": -/*!****************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! - \****************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); -/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppDetailsTab', - components: { - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], - NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__["default"] - }, - mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__["default"]], - props: { - app: { - type: Object, - required: true - } - }, - setup() { - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_6__.useAppsStore)(); - return { - store, - mdiBug: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiBug, - mdiFeatureSearch: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiFeatureSearch, - mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiStar, - mdiTextBox: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTextBox, - mdiTooltipQuestion: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTooltipQuestion - }; - }, - data() { - return { - groupCheckedAppsData: false - }; - }, - computed: { - lastModified() { - var _map$sort$at, _this$app$appstoreDat, _this$app$appstoreDat2; - return (_map$sort$at = ((_this$app$appstoreDat = (_this$app$appstoreDat2 = this.app.appstoreData) === null || _this$app$appstoreDat2 === void 0 ? void 0 : _this$app$appstoreDat2.releases) !== null && _this$app$appstoreDat !== void 0 ? _this$app$appstoreDat : []).map(_ref => { - let { - lastModified - } = _ref; - return Date.parse(lastModified); - }).sort().at(0)) !== null && _map$sort$at !== void 0 ? _map$sort$at : null; - }, - /** - * App authors as comma separated string - */ - appAuthors() { - console.warn(this.app); - if (!this.app) { - return ''; - } - const authorName = xmlNode => { - if (xmlNode['@value']) { - // Complex node (with email or homepage attribute) - return xmlNode['@value']; - } - // Simple text node - return xmlNode; - }; - const authors = Array.isArray(this.app.author) ? this.app.author.map(authorName) : [authorName(this.app.author)]; - return authors.sort((a, b) => a.split(' ').at(-1).localeCompare(b.split(' ').at(-1))).join(', '); - }, - appstoreUrl() { - return "https://apps.nextcloud.com/apps/".concat(this.app.id); - }, - /** - * Further external resources (e.g. website) - */ - externalResources() { - const resources = []; - if (!this.app.internal) { - resources.push({ - id: 'appstore', - href: this.appstoreUrl, - label: t('settings', 'View in store') - }); - } - if (this.app.website) { - resources.push({ - id: 'website', - href: this.app.website, - label: t('settings', 'Visit website') - }); - } - if (this.app.documentation) { - if (this.app.documentation.user) { - resources.push({ - id: 'doc-user', - href: this.app.documentation.user, - label: t('settings', 'Usage documentation') - }); - } - if (this.app.documentation.admin) { - resources.push({ - id: 'doc-admin', - href: this.app.documentation.admin, - label: t('settings', 'Admin documentation') - }); - } - if (this.app.documentation.developer) { - resources.push({ - id: 'doc-developer', - href: this.app.documentation.developer, - label: t('settings', 'Developer documentation') - }); - } - } - return resources; - }, - appCategories() { - return [this.app.category].flat().map(id => { - var _this$store$getCatego, _this$store$getCatego2; - return (_this$store$getCatego = (_this$store$getCatego2 = this.store.getCategoryById(id)) === null || _this$store$getCatego2 === void 0 ? void 0 : _this$store$getCatego2.displayName) !== null && _this$store$getCatego !== void 0 ? _this$store$getCatego : id; - }).join(', '); - }, - rateAppUrl() { - return "".concat(this.appstoreUrl, "#comments"); - }, - appGroups() { - return this.app.groups.map(group => { - return { - id: group, - name: group - }; - }); - }, - groups() { - return this.$store.getters.getGroups.filter(group => group.id !== 'disabled').sort((a, b) => a.name.localeCompare(b.name)); - } - }, - mounted() { - if (this.app.groups.length > 0) { - this.groupCheckedAppsData = true; - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": -/*!*******************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! - \*******************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ "./node_modules/marked/lib/marked.esm.js"); -/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); -/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'Markdown', - props: { - text: { - type: String, - default: '' - }, - minHeading: { - type: Number, - default: 1 - } - }, - computed: { - renderMarkdown() { - const renderer = new marked__WEBPACK_IMPORTED_MODULE_0__.marked.Renderer(); - renderer.link = function (href, title, text) { - let prot; - try { - prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase(); - } catch (e) { - return ''; - } - if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) { - return ''; - } - let out = ''; - return out; - }; - renderer.heading = (text, level) => { - level = Math.min(6, level + (this.minHeading - 1)); - return "").concat(text, ""); - }; - renderer.image = function (href, title, text) { - if (text) { - return text; - } - return title; - }; - renderer.blockquote = function (quote) { - return quote; - }; - return dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize((0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.text.trim(), { - renderer, - gfm: false, - highlight: false, - tables: false, - breaks: false, - pedantic: false, - sanitize: true, - smartLists: true, - smartypants: false - }), { - SAFE_FOR_JQUERY: true, - ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote'] - }); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": -/*!*************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! - \*************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'SvgFilterMixin', - data() { - return { - filterId: '' - }; - }, - computed: { - filterUrl() { - return "url(#".concat(this.filterId, ")"); - } - }, - mounted() { - this.filterId = 'invertIconApps-' + Math.random().toString(36).substring(2); - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c("div", { - attrs: { - id: "app-content-inner" - } - }, [_c("div", { - staticClass: "apps-list", - class: { - "apps-list--list-view": _vm.useBundleView || _vm.useListView, - "apps-list--store-view": _vm.useAppStoreView - }, - attrs: { - id: "apps-list" - } - }, [_vm.useListView ? [_vm.showUpdateAll ? _c("div", { - staticClass: "apps-list__toolbar" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.n("settings", "%n app has an update available", "%n apps have an update available", _vm.counter)) + "\n\t\t\t\t"), _vm.showUpdateAll ? _c("NcButton", { - attrs: { - id: "app-list-update-all", - type: "primary" - }, - on: { - click: _vm.updateAll - } - }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.n("settings", "Update", "Update all", _vm.counter)) + "\n\t\t\t\t")]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), !_vm.showUpdateAll ? _c("div", { - staticClass: "apps-list__toolbar" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "All apps are up-to-date.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _c("TransitionGroup", { - staticClass: "apps-list__list-container", - attrs: { - name: "apps-list", - tag: "table" - } - }, [_c("tr", { - key: "app-list-view-header" - }, [_c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.apps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category - } - }); - })], 2)] : _vm._e(), _vm._v(" "), _vm.useBundleView ? _c("table", { - staticClass: "apps-list__list-container" - }, [_c("tr", { - key: "app-list-view-header" - }, [_c("th", { - attrs: { - id: "app-table-col-icon" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-name" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-version" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-level" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-actions" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.bundles, function (bundle) { - return [_c("tr", { - key: bundle.id - }, [_c("th", { - attrs: { - id: "app-table-rowgroup-".concat(bundle.id), - colspan: "5", - scope: "rowgroup" - } - }, [_c("div", { - staticClass: "apps-list__bundle-heading" - }, [_c("span", { - staticClass: "apps-list__bundle-header" - }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(bundle.name) + "\n\t\t\t\t\t\t\t")]), _vm._v(" "), _c("NcButton", { - attrs: { - type: "secondary" - }, - on: { - click: function ($event) { - return _vm.toggleBundle(bundle.id); - } - } - }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(_vm.t("settings", _vm.bundleToggleText(bundle.id))) + "\n\t\t\t\t\t\t\t")])], 1)])]), _vm._v(" "), _vm._l(_vm.bundleApps(bundle.id), function (app) { - return _c("AppItem", { - key: bundle.id + app.id, - attrs: { - "use-bundle-view": true, - headers: "app-table-rowgroup-".concat(bundle.id), - app: app, - category: _vm.category - } - }); - })]; - })], 2) : _vm._e(), _vm._v(" "), _vm.useAppStoreView ? _c("ul", { - staticClass: "apps-list__store-container" - }, _vm._l(_vm.apps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category, - "list-view": false - } - }); - }), 1) : _vm._e()], 2), _vm._v(" "), _c("div", { - staticClass: "apps-list apps-list--list-view", - attrs: { - id: "apps-list-search" - } - }, [_c("div", { - staticClass: "apps-list__list-container" - }, [_vm.search !== "" && _vm.searchApps.length > 0 ? _c("table", { - staticClass: "apps-list__list-container" - }, [_c("caption", { - staticClass: "apps-list__bundle-header" - }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("settings", "Results from other categories")) + "\n\t\t\t\t")]), _vm._v(" "), _c("tr", { - key: "app-list-view-header" - }, [_c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.searchApps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category - } - }); - })], 2) : _vm._e()])]), _vm._v(" "), _vm.search !== "" && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0 ? _c("div", { - staticClass: "emptycontent emptycontent-search", - attrs: { - id: "apps-list-empty" - } - }, [_c("div", { - staticClass: "icon-settings-dark", - attrs: { - id: "app-list-empty-icon" - } - }), _vm._v(" "), _c("h2", [_vm._v(_vm._s(_vm.t("settings", "No apps found for your version")))])]) : _vm._e()]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": -/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! - \*************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c(_vm.listView ? "tr" : _vm.inline ? "article" : "li", { - tag: "component", - staticClass: "app-item", - class: { - "app-item--list-view": _vm.listView, - "app-item--store-view": !_vm.listView, - "app-item--selected": _vm.isSelected, - "app-item--with-sidebar": _vm.withSidebar - } - }, [_c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-image app-image-icon", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-icon") - } - }, [_vm.listView && !_vm.app.preview || !_vm.listView && !_vm.screenshotLoaded ? _c("div", { - staticClass: "icon-settings-dark" - }) : _vm.listView && _vm.app.preview ? _c("svg", { - attrs: { - width: "32", - height: "32", - viewBox: "0 0 32 32" - } - }, [_c("image", { - staticClass: "app-icon", - attrs: { - x: "0", - y: "0", - width: "32", - height: "32", - preserveAspectRatio: "xMinYMin meet", - "xlink:href": _vm.app.preview - } - })]) : _vm._e(), _vm._v(" "), !_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded ? _c("img", { - attrs: { - src: _vm.app.screenshot, - alt: "" - } - }) : _vm._e()]), _vm._v(" "), _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-name", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-name") - } - }, [_c("router-link", { - staticClass: "app-name--link", - attrs: { - to: { - name: "apps-details", - params: { - category: _vm.category, - id: _vm.app.id - } - }, - "aria-label": _vm.t("settings", "Show details for {appName} app", { - appName: _vm.app.name - }) - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.name) + "\n\t\t")])], 1), _vm._v(" "), !_vm.listView ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-summary", - attrs: { - headers: _vm.getDataItemHeaders("app-version") - } - }, [_vm._v("\n\t\t" + _vm._s(_vm.app.summary) + "\n\t")]) : _vm._e(), _vm._v(" "), _vm.listView ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-version", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-version") - } - }, [_vm.app.version ? _c("span", [_vm._v(_vm._s(_vm.app.version))]) : _vm.app.appstoreData.releases[0].version ? _c("span", [_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]) : _vm._e()]) : _vm._e(), _vm._v(" "), _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-level", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-level") - } - }, [_c("AppLevelBadge", { - attrs: { - level: _vm.app.level - } - }), _vm._v(" "), _vm.hasRating && !_vm.listView ? _c("AppScore", { - attrs: { - score: _vm.app.score - } - }) : _vm._e()], 1), _vm._v(" "), !_vm.inline ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-actions", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-actions") - } - }, [_vm.app.error ? _c("div", { - staticClass: "warning" - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.error) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.isLoading ? _c("div", { - staticClass: "icon icon-loading-small" - }) : _vm._e(), _vm._v(" "), _vm.app.update ? _c("NcButton", { - attrs: { - type: "primary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.update(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Update to {update}", { - update: _vm.app.update - })) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("NcButton", { - staticClass: "uninstall", - attrs: { - type: "tertiary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.remove(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Remove")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("NcButton", { - attrs: { - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.disable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Disable")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("NcButton", { - attrs: { - title: _vm.enableButtonTooltip, - "aria-label": _vm.enableButtonTooltip, - type: "primary", - disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.enable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.enableButtonText) + "\n\t\t")]) : !_vm.app.active ? _c("NcButton", { - attrs: { - title: _vm.forceEnableButtonTooltip, - "aria-label": _vm.forceEnableButtonTooltip, - type: "secondary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.forceEnable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.forceEnableButtonText) + "\n\t\t")]) : _vm._e()], 1) : _vm._e()], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.isSupported || _setup.isFeatured ? _c("span", { - staticClass: "app-level-badge", - class: { - "app-level-badge--supported": _setup.isSupported - }, - attrs: { - title: _setup.badgeTitle - } - }, [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.badgeIcon, - size: 20, - inline: "" - } - }), _vm._v("\n\t" + _vm._s(_setup.badgeText) + "\n")], 1) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": -/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! - \**************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("span", { - staticClass: "app-score__wrapper", - attrs: { - role: "img", - "aria-label": _vm.title, - title: _vm.title - } - }, [_vm._l(_vm.fullStars, function (index) { - return _c("NcIconSvgWrapper", { - key: "full-star-".concat(index), - attrs: { - path: _vm.mdiStar, - inline: "" - } - }); - }), _vm._v(" "), _vm.hasHalfStar ? _c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiStarHalfFull, - inline: "" - } - }) : _vm._e(), _vm._v(" "), _vm._l(_vm.emptyStars, function (index) { - return _c("NcIconSvgWrapper", { - key: "empty-star-".concat(index), - attrs: { - path: _vm.mdiStarOutline, - inline: "" - } - }); - })], 2); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("div", { - staticClass: "app-discover" - }, [_setup.hasError ? _c(_setup.NcEmptyContent, { - attrs: { - name: _setup.t("settings", "Nothing to show"), - description: _setup.t("settings", "Could not load section content from app store.") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiEyeOff, - size: 64 - } - })]; - }, - proxy: true - }], null, false, 638098482) - }) : _setup.elements.length === 0 ? _c(_setup.NcEmptyContent, { - attrs: { - name: _setup.t("settings", "Loading"), - description: _setup.t("settings", "Fetching the latest news…") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcLoadingIcon, { - attrs: { - size: 64 - } - })]; - }, - proxy: true - }]) - }) : _vm._l(_setup.elements, function (entry, index) { - var _entry$id; - return _c(_setup.getComponent(entry.type), _vm._b({ - key: (_entry$id = entry.id) !== null && _entry$id !== void 0 ? _entry$id : index, - tag: "component" - }, "component", entry, false)); - })], 2); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppSidebarTab, { - attrs: { - id: "desc", - name: _setup.t("settings", "Description"), - order: 0 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiTextShort - } - })]; - }, - proxy: true - }]) - }, [_vm._v(" "), _c("div", { - staticClass: "app-description" - }, [_c(_setup.Markdown, { - attrs: { - text: _vm.app.description, - "min-heading": 4 - } - })], 1)]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm$app$bugs, _vm$app$bugs2, _vm$app$appstoreData; - var _vm = this, - _c = _vm._self._c; - return _c("NcAppSidebarTab", { - attrs: { - id: "details", - name: _vm.t("settings", "Details"), - order: 1 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiTextBox - } - })]; - }, - proxy: true - }]) - }, [_vm._v(" "), _c("div", { - staticClass: "app-details" - }, [_c("div", { - staticClass: "app-details__actions" - }, [_vm.app.active && _vm.canLimitToGroups(_vm.app) ? _c("div", { - staticClass: "app-details__actions-groups" - }, [_c("input", { - directives: [{ - name: "model", - rawName: "v-model", - value: _vm.groupCheckedAppsData, - expression: "groupCheckedAppsData" - }], - staticClass: "groups-enable__checkbox checkbox", - attrs: { - id: "groups_enable_".concat(_vm.app.id), - type: "checkbox" - }, - domProps: { - value: _vm.app.id, - checked: Array.isArray(_vm.groupCheckedAppsData) ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1 : _vm.groupCheckedAppsData - }, - on: { - change: [function ($event) { - var $$a = _vm.groupCheckedAppsData, - $$el = $event.target, - $$c = $$el.checked ? true : false; - if (Array.isArray($$a)) { - var $$v = _vm.app.id, - $$i = _vm._i($$a, $$v); - if ($$el.checked) { - $$i < 0 && (_vm.groupCheckedAppsData = $$a.concat([$$v])); - } else { - $$i > -1 && (_vm.groupCheckedAppsData = $$a.slice(0, $$i).concat($$a.slice($$i + 1))); - } - } else { - _vm.groupCheckedAppsData = $$c; - } - }, _vm.setGroupLimit] - } - }), _vm._v(" "), _c("label", { - attrs: { - for: "groups_enable_".concat(_vm.app.id) - } - }, [_vm._v(_vm._s(_vm.t("settings", "Limit to groups")))]), _vm._v(" "), _c("input", { - staticClass: "group_select", - attrs: { - type: "hidden", - title: _vm.t("settings", "All"), - value: "" - } - }), _vm._v(" "), _c("br"), _vm._v(" "), _c("label", { - attrs: { - for: "limitToGroups" - } - }, [_c("span", [_vm._v(_vm._s(_vm.t("settings", "Limit app usage to groups")))])]), _vm._v(" "), _vm.isLimitedToGroups(_vm.app) ? _c("NcSelect", { - attrs: { - "input-id": "limitToGroups", - options: _vm.groups, - value: _vm.appGroups, - limit: 5, - label: "name", - multiple: true, - "close-on-select": false - }, - on: { - "option:selected": _vm.addGroupLimitation, - "option:deselected": _vm.removeGroupLimitation, - search: _vm.asyncFindGroup - } - }, [_c("span", { - attrs: { - slot: "noResult" - }, - slot: "noResult" - }, [_vm._v(_vm._s(_vm.t("settings", "No results")))])]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__actions-manage" - }, [_vm.app.update ? _c("input", { - staticClass: "update primary", - attrs: { - type: "button", - value: _vm.t("settings", "Update to {version}", { - version: _vm.app.update - }), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.update(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("input", { - staticClass: "uninstall", - attrs: { - type: "button", - value: _vm.t("settings", "Remove"), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.remove(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("input", { - staticClass: "enable", - attrs: { - type: "button", - value: _vm.t("settings", "Disable"), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.disable(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("input", { - staticClass: "enable primary", - attrs: { - title: _vm.enableButtonTooltip, - "aria-label": _vm.enableButtonTooltip, - type: "button", - value: _vm.enableButtonText, - disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.enable(_vm.app.id); - } - } - }) : !_vm.app.active && !_vm.app.canInstall ? _c("input", { - staticClass: "enable force", - attrs: { - title: _vm.forceEnableButtonTooltip, - "aria-label": _vm.forceEnableButtonTooltip, - type: "button", - value: _vm.forceEnableButtonText, - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.forceEnable(_vm.app.id); - } - } - }) : _vm._e()])]), _vm._v(" "), _c("ul", { - staticClass: "app-details__dependencies" - }, [_vm.app.missingMinOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no minimum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.missingMaxOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no maximum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.canInstall ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app cannot be installed because the following dependencies are not fulfilled:")) + "\n\t\t\t\t"), _c("ul", { - staticClass: "missing-dependencies" - }, _vm._l(_vm.app.missingDependencies, function (dep, index) { - return _c("li", { - key: index - }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(dep) + "\n\t\t\t\t\t")]); - }), 0)]) : _vm._e()]), _vm._v(" "), _vm.lastModified ? _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Latest updated")) + "\n\t\t\t")]), _vm._v(" "), _c("NcDateTime", { - attrs: { - timestamp: _vm.lastModified - } - })], 1) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Author")) + "\n\t\t\t")]), _vm._v(" "), _c("p", { - staticClass: "app-details__authors" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appAuthors) + "\n\t\t\t")])]), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Categories")) + "\n\t\t\t")]), _vm._v(" "), _c("p", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appCategories) + "\n\t\t\t")])]), _vm._v(" "), _vm.externalResources.length > 0 ? _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Resources")))]), _vm._v(" "), _c("ul", { - staticClass: "app-details__documentation", - attrs: { - "aria-label": _vm.t("settings", "Documentation") - } - }, _vm._l(_vm.externalResources, function (resource) { - return _c("li", { - key: resource.id - }, [_c("a", { - staticClass: "appslink", - attrs: { - href: resource.href, - target: "_blank", - rel: "noreferrer noopener" - } - }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(resource.label) + " ↗\n\t\t\t\t\t")])]); - }), 0)]) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Interact")))]), _vm._v(" "), _c("div", { - staticClass: "app-details__interact" - }, [_c("NcButton", { - attrs: { - disabled: !_vm.app.bugs, - href: (_vm$app$bugs = _vm.app.bugs) !== null && _vm$app$bugs !== void 0 ? _vm$app$bugs : "#", - "aria-label": _vm.t("settings", "Report a bug"), - title: _vm.t("settings", "Report a bug") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiBug - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c("NcButton", { - attrs: { - disabled: !_vm.app.bugs, - href: (_vm$app$bugs2 = _vm.app.bugs) !== null && _vm$app$bugs2 !== void 0 ? _vm$app$bugs2 : "#", - "aria-label": _vm.t("settings", "Request feature"), - title: _vm.t("settings", "Request feature") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiFeatureSearch - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), (_vm$app$appstoreData = _vm.app.appstoreData) !== null && _vm$app$appstoreData !== void 0 && _vm$app$appstoreData.discussion ? _c("NcButton", { - attrs: { - href: _vm.app.appstoreData.discussion, - "aria-label": _vm.t("settings", "Ask questions or discuss"), - title: _vm.t("settings", "Ask questions or discuss") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiTooltipQuestion - } - })]; - }, - proxy: true - }], null, false, 1288192462) - }) : _vm._e(), _vm._v(" "), !_vm.app.internal ? _c("NcButton", { - attrs: { - href: _vm.rateAppUrl, - "aria-label": _vm.t("settings", "Rate the app"), - title: _vm.t("settings", "Rate") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiStar - } - })]; - }, - proxy: true - }], null, false, 422450625) - }) : _vm._e()], 1)])])]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.hasChangelog ? _c(_setup.NcAppSidebarTab, { - attrs: { - id: "changelog", - name: _setup.t("settings", "Changelog"), - order: 2 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiClockFast, - size: 24 - } - })]; - }, - proxy: true - }], null, false, 1849836872) - }, [_vm._v(" "), _vm._l(_vm.app.releases, function (release) { - return _c("div", { - key: release.version, - staticClass: "app-sidebar-tabs__release" - }, [_c("h2", [_vm._v(_vm._s(release.version))]), _vm._v(" "), _c(_setup.Markdown, { - staticClass: "app-sidebar-tabs__release-text", - attrs: { - text: _setup.createChangelogFromRelease(release) - } - })], 1); - })], 2) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": -/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! - \******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c("div", { - staticClass: "settings-markdown", - domProps: { - innerHTML: _vm._s(_vm.renderMarkdown) - } - }); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": -/*!*************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! - \*************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppContent, { - staticClass: "app-settings-content", - attrs: { - "page-heading": _setup.appStoreLabel - } - }, [_c("h2", { - staticClass: "app-settings-content__label", - domProps: { - textContent: _vm._s(_setup.viewLabel) - } - }), _vm._v(" "), _setup.currentCategory === "discover" ? _c(_setup.AppStoreDiscoverSection) : _setup.isLoading ? _c(_setup.NcEmptyContent, { - staticClass: "empty-content__loading", - attrs: { - name: _setup.t("settings", "Loading app list") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcLoadingIcon, { - attrs: { - size: 64 - } - })]; - }, - proxy: true - }]) - }) : _c(_setup.AppList, { - attrs: { - category: _setup.currentCategory - } - })], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": -/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! - \***********************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppNavigation, { - attrs: { - "aria-label": _setup.t("settings", "Apps") - }, - scopedSlots: _vm._u([{ - key: "list", - fn: function () { - return [_c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-discover", - to: { - name: "apps-category", - params: { - category: "discover" - } - }, - name: _setup.APPS_SECTION_ENUM.discover - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.discover - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-installed", - to: { - name: "apps-category", - params: { - category: "installed" - } - }, - name: _setup.APPS_SECTION_ENUM.installed - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.installed - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-enabled", - to: { - name: "apps-category", - params: { - category: "enabled" - } - }, - name: _setup.APPS_SECTION_ENUM.enabled - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.enabled - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-disabled", - to: { - name: "apps-category", - params: { - category: "disabled" - } - }, - name: _setup.APPS_SECTION_ENUM.disabled - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.disabled - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _setup.updateCount > 0 ? _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-updates", - to: { - name: "apps-category", - params: { - category: "updates" - } - }, - name: _setup.APPS_SECTION_ENUM.updates - }, - scopedSlots: _vm._u([{ - key: "counter", - fn: function () { - return [_c(_setup.NcCounterBubble, [_vm._v(_vm._s(_setup.updateCount))])]; - }, - proxy: true - }, { - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.updates - } - })]; - }, - proxy: true - }], null, false, 2824895104) - }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-your-bundles", - to: { - name: "apps-category", - params: { - category: "app-bundles" - } - }, - name: _setup.APPS_SECTION_ENUM["app-bundles"] - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.bundles - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationSpacer), _vm._v(" "), _setup.appstoreEnabled && _setup.categoriesLoading ? _c("li", { - staticClass: "categories--loading" - }, [_c(_setup.NcLoadingIcon, { - attrs: { - size: 20, - "aria-label": _setup.t("settings", "Loading categories") - } - })], 1) : _setup.appstoreEnabled && !_setup.categoriesLoading ? [_setup.isSubscribed ? _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-supported", - to: { - name: "apps-category", - params: { - category: "supported" - } - }, - name: _setup.APPS_SECTION_ENUM.supported - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.supported - } - })]; - }, - proxy: true - }], null, false, 613663011) - }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-featured", - to: { - name: "apps-category", - params: { - category: "featured" - } - }, - name: _setup.APPS_SECTION_ENUM.featured - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.featured - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _vm._l(_setup.categories, function (category) { - return _c(_setup.NcAppNavigationItem, { - key: category.id, - attrs: { - id: "app-category-".concat(category.id), - name: category.displayName, - to: { - name: "apps-category", - params: { - category: category.id - } - } - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: category.icon - } - })]; - }, - proxy: true - }], null, true) - }); - })] : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-developer-docs", - name: _setup.t("settings", "Developer documentation ↗"), - href: _setup.developerDocsUrl - } - })]; - }, - proxy: true - }]) - }); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": -/*!********************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! - \********************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.showSidebar ? _c(_setup.NcAppSidebar, { - staticClass: "app-sidebar", - class: { - "app-sidebar--with-screenshot": _setup.hasScreenshot - }, - attrs: { - active: _setup.activeTab, - background: _setup.hasScreenshot ? _setup.app.screenshot : undefined, - compact: !_setup.hasScreenshot, - name: _setup.app.name, - title: _setup.app.name, - subname: _setup.licenseText, - subtitle: _setup.licenseText - }, - on: { - "update:active": function ($event) { - _setup.activeTab = $event; - }, - close: _setup.hideAppDetails - }, - scopedSlots: _vm._u([!_setup.hasScreenshot ? { - key: "header", - fn: function () { - var _setup$appIcon; - return [_c(_setup.NcIconSvgWrapper, { - staticClass: "app-sidebar__fallback-icon", - attrs: { - svg: (_setup$appIcon = _setup.appIcon) !== null && _setup$appIcon !== void 0 ? _setup$appIcon : "", - size: 64 - } - })]; - }, - proxy: true - } : null, { - key: "description", - fn: function () { - return [_c("div", { - staticClass: "app-sidebar__badges" - }, [_c(_setup.AppLevelBadge, { - attrs: { - level: _setup.app.level - } - }), _vm._v(" "), _setup.hasRating ? _c(_setup.AppScore, { - attrs: { - score: _setup.rating - } - }) : _vm._e()], 1)]; - }, - proxy: true - }], null, true) - }, [_vm._v(" "), _vm._v(" "), _c(_setup.AppDescriptionTab, { - attrs: { - app: _setup.app - } - }), _vm._v(" "), _c(_setup.AppDetailsTab, { - attrs: { - app: _setup.app - } - }), _vm._v(" "), _c(_setup.AppReleasesTab, { - attrs: { - app: _setup.app - } - })], 1) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.apps-list[data-v-6d1e92a4] { - display: flex; - flex-wrap: wrap; - align-content: flex-start; -} -.apps-list--move[data-v-6d1e92a4] { - transition: transform 1s; -} -.apps-list #app-list-update-all[data-v-6d1e92a4] { - margin-left: 10px; -} -.apps-list__toolbar[data-v-6d1e92a4] { - height: 60px; - padding: 8px; - padding-left: 60px; - width: 100%; - background-color: var(--color-main-background); - position: sticky; - top: 0; - z-index: 1; - display: flex; - align-items: center; -} -.apps-list--list-view[data-v-6d1e92a4] { - margin-bottom: 100px; - position: relative; -} -.apps-list__list-container[data-v-6d1e92a4] { - width: 100%; -} -.apps-list__store-container[data-v-6d1e92a4] { - display: flex; - flex-wrap: wrap; -} -.apps-list__bundle-heading[data-v-6d1e92a4] { - display: flex; - align-items: center; - margin: 20px 10px 20px 0; -} -.apps-list__bundle-header[data-v-6d1e92a4] { - margin: 0 10px 0 50px; - font-weight: bold; - font-size: 20px; - line-height: 30px; - color: var(--color-text-light); -} -#apps-list-search .app-item h2[data-v-6d1e92a4] { - margin-bottom: 0; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `/** - * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -.app-item[data-v-429da85a] { - position: relative; -} -.app-item[data-v-429da85a]:hover { - background-color: var(--color-background-dark); -} -.app-item--list-view[data-v-429da85a] { - --app-item-padding: calc(var(--default-grid-baseline) * 2); - --app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2); - /* hide app version and level on narrower screens */ - /* Hide actions on a small screen. Click on app opens fill-screen sidebar with the buttons */ -} -.app-item--list-view.app-item--selected[data-v-429da85a] { - background-color: var(--color-background-dark); -} -.app-item--list-view > *[data-v-429da85a] { - vertical-align: middle; - border-bottom: 1px solid var(--color-border); - padding: var(--app-item-padding); - height: var(--app-item-height); -} -.app-item--list-view .app-image[data-v-429da85a] { - width: var(--default-clickable-area); - height: auto; - text-align: right; -} -.app-item--list-view .app-image-icon svg[data-v-429da85a], -.app-item--list-view .app-image-icon .icon-settings-dark[data-v-429da85a] { - margin-top: 5px; - width: 20px; - height: 20px; - opacity: 0.5; - background-size: cover; - display: inline-block; -} -.app-item--list-view .app-name[data-v-429da85a] { - padding: 0 var(--app-item-padding); -} -.app-item--list-view .app-name--link[data-v-429da85a] { - height: var(--app-item-height); - display: flex; - align-items: center; -} -.app-item--list-view .app-name--link[data-v-429da85a]::after { - content: ""; - position: absolute; - left: 0; - right: 0; - height: var(--app-item-height); -} -.app-item--list-view .app-actions[data-v-429da85a] { - display: flex; - gap: var(--app-item-padding); - flex-wrap: wrap; - justify-content: end; -} -.app-item--list-view .app-actions .icon-loading-small[data-v-429da85a] { - display: inline-block; - top: 4px; - margin-right: 10px; -} -@media only screen and (max-width: 900px) { -.app-item--list-view .app-version[data-v-429da85a], - .app-item--list-view .app-level[data-v-429da85a] { - display: none; -} -} -@media only screen and (max-width: 512px) { -.app-item--list-view .app-actions[data-v-429da85a] { - display: none; -} -} -.app-item--store-view[data-v-429da85a] { - padding: 30px; -} -.app-item--store-view .app-image-icon .icon-settings-dark[data-v-429da85a] { - width: 100%; - height: 150px; - background-size: 45px; - opacity: 0.5; -} -.app-item--store-view .app-image-icon svg[data-v-429da85a] { - position: absolute; - bottom: 43px; - /* position halfway vertically */ - width: 64px; - height: 64px; - opacity: 0.1; -} -.app-item--store-view .app-name[data-v-429da85a] { - margin: 5px 0; -} -.app-item--store-view .app-name--link[data-v-429da85a]::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -.app-item--store-view .app-actions[data-v-429da85a] { - margin: 10px 0; -} -@media only screen and (min-width: 1601px) { -.app-item--store-view[data-v-429da85a] { - width: 25%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 33%; -} -} -@media only screen and (max-width: 1600px) { -.app-item--store-view[data-v-429da85a] { - width: 25%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 33%; -} -} -@media only screen and (max-width: 1400px) { -.app-item--store-view[data-v-429da85a] { - width: 33%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 50%; -} -} -@media only screen and (max-width: 900px) { -.app-item--store-view[data-v-429da85a] { - width: 50%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 100%; -} -} -@media only screen and (max-width: 1024px) { -.app-item--store-view[data-v-429da85a] { - width: 50%; -} -} -@media only screen and (max-width: 480px) { -.app-item--store-view[data-v-429da85a] { - width: 100%; -} -} -.app-icon[data-v-429da85a] { - filter: var(--background-invert-if-bright); -} -.app-image[data-v-429da85a] { - position: relative; - height: 150px; - opacity: 1; - overflow: hidden; -} -.app-image img[data-v-429da85a] { - width: 100%; -} -.app-version[data-v-429da85a] { - color: var(--color-text-maxcontrast); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-level-badge[data-v-dbef4182] { - color: var(--color-text-maxcontrast); - background-color: transparent; - border: 1px solid var(--color-text-maxcontrast); - border-radius: var(--border-radius); - display: flex; - flex-direction: row; - gap: 6px; - padding: 3px 6px; - width: fit-content; -} -.app-level-badge--supported[data-v-dbef4182] { - border-color: var(--color-success); - color: var(--color-success); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-discover[data-v-2c2ea092] { - max-width: 1008px; /* 900px + 2x 54px padding for the carousel controls */ - margin-inline: auto; - padding-inline: 54px; - /* Padding required to make last element not bound to the bottom */ - padding-block-end: var(--default-clickable-area, 44px); - display: flex; - flex-direction: column; - gap: var(--default-clickable-area, 44px); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-description[data-v-645c86d4] { - padding: 12px; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-details[data-v-564443e0] { - padding: 20px; -} -.app-details__actions-manage[data-v-564443e0] { - display: flex; -} -.app-details__actions-manage input[data-v-564443e0] { - flex: 0 1 auto; - min-width: 0; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.app-details__authors[data-v-564443e0] { - color: var(--color-text-maxcontrast); -} -.app-details__section[data-v-564443e0] { - margin-top: 15px; -} -.app-details__section h4[data-v-564443e0] { - font-size: 16px; - font-weight: bold; - margin-block-end: 5px; -} -.app-details__interact[data-v-564443e0] { - display: flex; - flex-direction: row; - flex-wrap: wrap; - gap: 12px; -} -.app-details__documentation a[data-v-564443e0] { - text-decoration: underline; -} -.app-details__documentation li[data-v-564443e0] { - padding-inline-start: 20px; -} -.app-details__documentation li[data-v-564443e0]::before { - width: 5px; - height: 5px; - border-radius: 100%; - background-color: var(--color-main-text); - content: ""; - float: inline-start; - margin-inline-start: -13px; - position: relative; - top: 10px; -} -.force[data-v-564443e0] { - color: var(--color-error); - border-color: var(--color-error); - background: var(--color-main-background); -} -.force[data-v-564443e0]:hover, -.force[data-v-564443e0]:active { - color: var(--color-main-background); - border-color: var(--color-error) !important; - background: var(--color-error); -} -.missing-dependencies[data-v-564443e0] { - list-style: initial; - list-style-type: initial; - list-style-position: inside; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar-tabs__release h2[data-v-2c452a5c] { - border-bottom: 1px solid var(--color-border); - font-size: 24px; -} -.app-sidebar-tabs__release-text[data-v-2c452a5c] h3 { - font-size: 20px; -} -.app-sidebar-tabs__release-text[data-v-2c452a5c] h4 { - font-size: 17px; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.settings-markdown[data-v-11f4a1b0] h1, -.settings-markdown[data-v-11f4a1b0] h2, -.settings-markdown[data-v-11f4a1b0] h3, -.settings-markdown[data-v-11f4a1b0] h4, -.settings-markdown[data-v-11f4a1b0] h5, -.settings-markdown[data-v-11f4a1b0] h6 { - font-weight: 600; - line-height: 120%; - margin-top: 24px; - margin-bottom: 12px; - color: var(--color-main-text); -} -.settings-markdown[data-v-11f4a1b0] h1 { - font-size: 36px; - margin-top: 48px; -} -.settings-markdown[data-v-11f4a1b0] h2 { - font-size: 28px; - margin-top: 48px; -} -.settings-markdown[data-v-11f4a1b0] h3 { - font-size: 24px; -} -.settings-markdown[data-v-11f4a1b0] h4 { - font-size: 21px; -} -.settings-markdown[data-v-11f4a1b0] h5 { - font-size: 17px; -} -.settings-markdown[data-v-11f4a1b0] h6 { - font-size: var(--default-font-size); -} -.settings-markdown[data-v-11f4a1b0] pre { - white-space: pre; - overflow-x: auto; - background-color: var(--color-background-dark); - border-radius: var(--border-radius); - padding: 1em 1.3em; - margin-bottom: 1em; -} -.settings-markdown[data-v-11f4a1b0] p code { - background-color: var(--color-background-dark); - border-radius: var(--border-radius); - padding: 0.1em 0.3em; -} -.settings-markdown[data-v-11f4a1b0] li { - position: relative; -} -.settings-markdown[data-v-11f4a1b0] ul, .settings-markdown[data-v-11f4a1b0] ol { - padding-left: 10px; - margin-left: 10px; -} -.settings-markdown[data-v-11f4a1b0] ul li { - list-style-type: disc; -} -.settings-markdown[data-v-11f4a1b0] ul > li > ul > li { - list-style-type: circle; -} -.settings-markdown[data-v-11f4a1b0] ul > li > ul > li ul li { - list-style-type: square; -} -.settings-markdown[data-v-11f4a1b0] blockquote { - padding-left: 1em; - border-left: 4px solid var(--color-primary-element); - color: var(--color-text-maxcontrast); - margin-left: 0; - margin-right: 0; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--with-screenshot[data-v-a38ee2fa] .app-sidebar-header__figure { - background-size: cover; -} -.app-sidebar__fallback-icon[data-v-a38ee2fa] { - width: 100%; - height: 100%; -} -.app-sidebar__badges[data-v-a38ee2fa] { - display: flex; - flex-direction: row; - gap: 12px; -} -.app-sidebar__version[data-v-a38ee2fa] { - color: var(--color-text-maxcontrast); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -.app-score__wrapper[data-v-0ecce4fc] { - display: inline-flex; - color: var(--color-favorite, #a08b00); -> *[data-v-0ecce4fc] { - vertical-align: text-bottom; -} -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \****************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -.empty-content__loading[data-v-6f6912c9] { - height: 100%; -} -.app-settings-content__label[data-v-6f6912c9] { - margin-block-start: var(--app-navigation-padding); - margin-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2); - min-height: var(--default-clickable-area); - line-height: var(--default-clickable-area); - vertical-align: center; -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \**************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -/* The categories-loading indicator */ -.categories--loading[data-v-0208f5bd] { - flex: 1; - display: flex; - align-items: center; - justify-content: center; -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue": -/*!**************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); -/* harmony import */ var _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "6d1e92a4", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue": -/*!**********************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); -/* harmony import */ var _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppItem.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "429da85a", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppItem.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue": -/*!****************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); -/* harmony import */ var _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "dbef4182", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppLevelBadge.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue": -/*!***********************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); -/* harmony import */ var _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppScore.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); -/* harmony import */ var _AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "0ecce4fc", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppScore.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue": -/*!***********************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "2c2ea092", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue": -/*!****************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "645c86d4", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue": -/*!************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); -/* harmony import */ var _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "564443e0", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue": -/*!*************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); -/* harmony import */ var _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "2c452a5c", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue": -/*!***************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); -/* harmony import */ var _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&lang=js */ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); -/* harmony import */ var _Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "11f4a1b0", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/Markdown.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/SvgFilterMixin.vue": -/*!*********************************************************!*\ - !*** ./apps/settings/src/components/SvgFilterMixin.vue ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SvgFilterMixin.vue?vue&type=script&lang=js */ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); -var render, staticRenderFns -; - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__["default"])( - _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"], - render, - staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/SvgFilterMixin.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue": -/*!**********************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); -/* harmony import */ var _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "6f6912c9", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStore.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue": -/*!********************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "0208f5bd", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStoreNavigation.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue": -/*!*****************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "a38ee2fa", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStoreSidebar.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": -/*!***************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": -/*!***********************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": -/*!**********************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": -/*!***************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! - \***************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": -/*!************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! - \************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": -/*!*********************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": -/*!*******************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! - \*******************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": -/*!****************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": -/*!**************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": -/*!**********************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! - \**********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": -/*!************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": -/*!***************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": -/*!*********************************************************************************!*\ - !*** ./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": -/*!********************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": -/*!****************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": -/*!**********************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! - \**********************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": -/*!*****************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! - \*****************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": -/*!*****************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! - \*****************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": -/*!**********************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": -/*!******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! - \******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": -/*!*********************************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": -/*!****************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": -/*!**************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": -/*!***********************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!***********************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \***********************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!*************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \*************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!********************************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \********************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!*************************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \*************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!*********************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \*********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!**********************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \**********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!************************************************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!**************************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \**************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!******************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \******************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!****************************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs": -/*!**********************************************************************!*\ - !*** ./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs ***! - \**********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__.N) -/* harmony export */ }); -/* harmony import */ var _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/NcAppSidebar-CqER6-dl.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-CqER6-dl.mjs"); - - - - -/***/ }), - -/***/ "./node_modules/p-limit/index.js": -/*!***************************************!*\ - !*** ./node_modules/p-limit/index.js ***! - \***************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pLimit) -/* harmony export */ }); -/* harmony import */ var yocto_queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yocto-queue */ "./node_modules/yocto-queue/index.js"); - -function pLimit(concurrency) { - if (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) { - throw new TypeError('Expected `concurrency` to be a number from 1 and up'); - } - const queue = new yocto_queue__WEBPACK_IMPORTED_MODULE_0__["default"](); - let activeCount = 0; - const next = () => { - activeCount--; - if (queue.size > 0) { - queue.dequeue()(); - } - }; - const run = async (fn, resolve, args) => { - activeCount++; - const result = (async () => fn(...args))(); - resolve(result); - try { - await result; - } catch {} - next(); - }; - const enqueue = (fn, resolve, args) => { - queue.enqueue(run.bind(undefined, fn, resolve, args)); - (async () => { - // This function needs to wait until the next microtask before comparing - // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously - // when the run function is dequeued and called. The comparison in the if-statement - // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. - await Promise.resolve(); - if (activeCount < concurrency && queue.size > 0) { - queue.dequeue()(); - } - })(); - }; - const generator = function (fn) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - return new Promise(resolve => { - enqueue(fn, resolve, args); - }); - }; - Object.defineProperties(generator, { - activeCount: { - get: () => activeCount - }, - pendingCount: { - get: () => queue.size - }, - clearQueue: { - value: () => { - queue.clear(); - } - } - }); - return generator; -} - -/***/ }), - -/***/ "./node_modules/yocto-queue/index.js": -/*!*******************************************!*\ - !*** ./node_modules/yocto-queue/index.js ***! - \*******************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Queue) -/* harmony export */ }); -let _Symbol$iterator; -function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } -function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } -function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } -function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } -function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } -function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } -function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/* -How it works: -`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value. -*/ - -class Node { - constructor(value) { - _defineProperty(this, "value", void 0); - _defineProperty(this, "next", void 0); - this.value = value; - } -} -var _head = /*#__PURE__*/new WeakMap(); -var _tail = /*#__PURE__*/new WeakMap(); -var _size = /*#__PURE__*/new WeakMap(); -_Symbol$iterator = Symbol.iterator; -class Queue { - constructor() { - _classPrivateFieldInitSpec(this, _head, { - writable: true, - value: void 0 - }); - _classPrivateFieldInitSpec(this, _tail, { - writable: true, - value: void 0 - }); - _classPrivateFieldInitSpec(this, _size, { - writable: true, - value: void 0 - }); - this.clear(); - } - enqueue(value) { - var _this$size, _this$size2; - const node = new Node(value); - if (_classPrivateFieldGet(this, _head)) { - _classPrivateFieldGet(this, _tail).next = node; - _classPrivateFieldSet(this, _tail, node); - } else { - _classPrivateFieldSet(this, _head, node); - _classPrivateFieldSet(this, _tail, node); - } - _classPrivateFieldSet(this, _size, (_this$size = _classPrivateFieldGet(this, _size), _this$size2 = _this$size++, _this$size)), _this$size2; - } - dequeue() { - var _this$size3, _this$size4; - const current = _classPrivateFieldGet(this, _head); - if (!current) { - return; - } - _classPrivateFieldSet(this, _head, _classPrivateFieldGet(this, _head).next); - _classPrivateFieldSet(this, _size, (_this$size3 = _classPrivateFieldGet(this, _size), _this$size4 = _this$size3--, _this$size3)), _this$size4; - return current.value; - } - clear() { - _classPrivateFieldSet(this, _head, undefined); - _classPrivateFieldSet(this, _tail, undefined); - _classPrivateFieldSet(this, _size, 0); - } - get size() { - return _classPrivateFieldGet(this, _size); - } - *[_Symbol$iterator]() { - let current = _classPrivateFieldGet(this, _head); - while (current) { - yield current.value; - current = current.next; - } - } -} - -/***/ }), - -/***/ "./node_modules/vue-router/composables.mjs": -/*!*************************************************!*\ - !*** ./node_modules/vue-router/composables.mjs ***! - \*************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isSameRouteLocationParams: () => (/* binding */ isSameRouteLocationParams), -/* harmony export */ onBeforeRouteLeave: () => (/* binding */ onBeforeRouteLeave), -/* harmony export */ onBeforeRouteUpdate: () => (/* binding */ onBeforeRouteUpdate), -/* harmony export */ useLink: () => (/* binding */ useLink), -/* harmony export */ useRoute: () => (/* binding */ useRoute), -/* harmony export */ useRouter: () => (/* binding */ useRouter) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/*! - * vue-router v3.6.5 - * (c) 2022 Evan You - * @license MIT - */ - - -// dev only warn if no current instance - -function throwNoCurrentInstance (method) { - if (!(0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)()) { - throw new Error( - ("[vue-router]: Missing current instance. " + method + "() must be called inside